Compare commits
	
		
			9 Commits
		
	
	
		
			v0.0.20.1
			...
			221f276c4b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 221f276c4b | |||
| 24cec21465 | |||
| 9f71ec6194 | |||
| bb36afc390 | |||
| b53bf0ff64 | |||
| 3ebc6f2436 | |||
| 2eef6778a6 | |||
| 81fabec810 | |||
| dc6e7924b5 | 
@@ -15,5 +15,6 @@ jobs:
 | 
				
			|||||||
          submodules: true
 | 
					          submodules: true
 | 
				
			||||||
      - run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
 | 
					      - run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
 | 
				
			||||||
      - run: echo "🖥️ The workflow is now ready to test your code on the runner."
 | 
					      - run: echo "🖥️ The workflow is now ready to test your code on the runner."
 | 
				
			||||||
 | 
					      - run: sudo apt update && sudo apt install -y mingw-w64
 | 
				
			||||||
      - run: make all -j`nproc`
 | 
					      - run: make all -j`nproc`
 | 
				
			||||||
      - run: echo "🍏 This job's status is ${{ job.status }}."
 | 
					      - run: echo "🍏 This job's status is ${{ job.status }}."
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@
 | 
				
			|||||||
MAKEFLAGS += --warn-undefined-variables
 | 
					MAKEFLAGS += --warn-undefined-variables
 | 
				
			||||||
MAKEFLAGS += --no-builtin-rules
 | 
					MAKEFLAGS += --no-builtin-rules
 | 
				
			||||||
 | 
					
 | 
				
			||||||
VERSION_CODE := 22
 | 
					VERSION_CODE := 23
 | 
				
			||||||
VERSION_NUMBER := 0.0.21-wip
 | 
					VERSION_NUMBER := 0.0.21-wip
 | 
				
			||||||
VERSION_NAME := Psst.  Look behind you.
 | 
					VERSION_NAME := Psst.  Look behind you.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -63,7 +63,11 @@ ANDROID_MIN_SDK_VERSION := 24
 | 
				
			|||||||
ANDROID_TARGET_SDK_VERSION := 34
 | 
					ANDROID_TARGET_SDK_VERSION := 34
 | 
				
			||||||
ANDROID_BUILD_TOOLS := $(ANDROID_SDK)/build-tools/34.0.0
 | 
					ANDROID_BUILD_TOOLS := $(ANDROID_SDK)/build-tools/34.0.0
 | 
				
			||||||
ANDROID_PLATFORM := $(ANDROID_SDK)/platforms/android-$(ANDROID_TARGET_SDK_VERSION)
 | 
					ANDROID_PLATFORM := $(ANDROID_SDK)/platforms/android-$(ANDROID_TARGET_SDK_VERSION)
 | 
				
			||||||
 | 
					ifneq "$(wildcard $(ANDROID_SDK)/ndk/27.0.12077973/.)" ""
 | 
				
			||||||
 | 
					ANDROID_NDK ?= $(ANDROID_SDK)/ndk/27.0.12077973
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
ANDROID_NDK ?= $(ANDROID_SDK)/ndk/26.2.11394342
 | 
					ANDROID_NDK ?= $(ANDROID_SDK)/ndk/26.2.11394342
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ANDROID_ARMV7A_TARGETS := \
 | 
					ANDROID_ARMV7A_TARGETS := \
 | 
				
			||||||
	out/androiddebug-armv7a/tildefriends \
 | 
						out/androiddebug-armv7a/tildefriends \
 | 
				
			||||||
@@ -914,7 +918,7 @@ fetchdeps:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ANDROID_DEPS := deps/openssl/android/arm64-v8a/usr/local/lib/libssl.a
 | 
					ANDROID_DEPS := deps/openssl/android/arm64-v8a/usr/local/lib/libssl.a
 | 
				
			||||||
$(ANDROID_DEPS):
 | 
					$(ANDROID_DEPS):
 | 
				
			||||||
	+@tools/ssl-android
 | 
						+@ANDROID_NDK_ROOT=$(ANDROID_NDK) tools/ssl-android
 | 
				
			||||||
$(filter $(BUILD_DIR)/android%,$(APP_OBJS)): | $(ANDROID_DEPS)
 | 
					$(filter $(BUILD_DIR)/android%,$(APP_OBJS)): | $(ANDROID_DEPS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(HAVE_WIN),1)
 | 
					ifeq ($(HAVE_WIN),1)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"type": "tildefriends-app",
 | 
						"type": "tildefriends-app",
 | 
				
			||||||
	"emoji": "🐌",
 | 
						"emoji": "🐌",
 | 
				
			||||||
	"previous": "&TqpkOAi38Oi6gW6guh95KIvWY2M/vjBE8NLLNHK+M00=.sha256"
 | 
						"previous": "&2xK//SIpjFb0+uT5I7MSAGJ3d1FKuI/rlzhcCQd3NME=.sha256"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -538,7 +538,7 @@ class TfComposeElement extends LitElement {
 | 
				
			|||||||
							id="edit"
 | 
												id="edit"
 | 
				
			||||||
							@input=${this.input}
 | 
												@input=${this.input}
 | 
				
			||||||
							@paste=${this.paste}
 | 
												@paste=${this.paste}
 | 
				
			||||||
							contenteditable
 | 
												contenteditable="plaintext-only"
 | 
				
			||||||
							.innerText=${live(draft.text ?? '')}
 | 
												.innerText=${live(draft.text ?? '')}
 | 
				
			||||||
						></span>
 | 
											></span>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -211,10 +211,6 @@ async function socket(request, response, client) {
 | 
				
			|||||||
				if (process && process.timeout > 0) {
 | 
									if (process && process.timeout > 0) {
 | 
				
			||||||
					setTimeout(ping, process.timeout);
 | 
										setTimeout(ping, process.timeout);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			} else if (message.action == 'enableStats') {
 | 
					 | 
				
			||||||
				if (process) {
 | 
					 | 
				
			||||||
					core.enableStats(process, message.enabled);
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			} else if (message.action == 'resetPermission') {
 | 
								} else if (message.action == 'resetPermission') {
 | 
				
			||||||
				if (process) {
 | 
									if (process) {
 | 
				
			||||||
					process.resetPermission(message.permission);
 | 
										process.resetPermission(message.permission);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1274,7 +1274,6 @@ function _receive_websocket_message(message) {
 | 
				
			|||||||
		document.getElementById('viewPane').style.display = message.edit_only
 | 
							document.getElementById('viewPane').style.display = message.edit_only
 | 
				
			||||||
			? 'none'
 | 
								? 'none'
 | 
				
			||||||
			: 'flex';
 | 
								: 'flex';
 | 
				
			||||||
		send({action: 'enableStats', enabled: true});
 | 
					 | 
				
			||||||
	} else if (message && message.action == 'ping') {
 | 
						} else if (message && message.action == 'ping') {
 | 
				
			||||||
		send({action: 'pong'});
 | 
							send({action: 'pong'});
 | 
				
			||||||
	} else if (message && message.action == 'stats') {
 | 
						} else if (message && message.action == 'stats') {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										53
									
								
								core/core.js
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								core/core.js
									
									
									
									
									
								
							@@ -8,10 +8,6 @@ let gStatsTimer = false;
 | 
				
			|||||||
const k_content_security_policy =
 | 
					const k_content_security_policy =
 | 
				
			||||||
	'sandbox allow-downloads allow-top-navigation-by-user-activation';
 | 
						'sandbox allow-downloads allow-top-navigation-by-user-activation';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let k_static_files = [
 | 
					 | 
				
			||||||
	{uri: '/', path: 'index.html', type: 'text/html; charset=UTF-8'},
 | 
					 | 
				
			||||||
];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const k_global_settings = {
 | 
					const k_global_settings = {
 | 
				
			||||||
	index: {
 | 
						index: {
 | 
				
			||||||
		type: 'string',
 | 
							type: 'string',
 | 
				
			||||||
@@ -290,7 +286,6 @@ async function getProcessBlob(blobId, key, options) {
 | 
				
			|||||||
			process.lastActive = Date.now();
 | 
								process.lastActive = Date.now();
 | 
				
			||||||
			process.lastPing = null;
 | 
								process.lastPing = null;
 | 
				
			||||||
			process.timeout = options.timeout;
 | 
								process.timeout = options.timeout;
 | 
				
			||||||
			process.stats = false;
 | 
					 | 
				
			||||||
			process.ready = new Promise(function (resolve, reject) {
 | 
								process.ready = new Promise(function (resolve, reject) {
 | 
				
			||||||
				resolveReady = resolve;
 | 
									resolveReady = resolve;
 | 
				
			||||||
				rejectReady = reject;
 | 
									rejectReady = reject;
 | 
				
			||||||
@@ -782,6 +777,10 @@ async function getProcessBlob(blobId, key, options) {
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
			await process.task.execute({name: appSourceName, source: appSource});
 | 
								await process.task.execute({name: appSourceName, source: appSource});
 | 
				
			||||||
			resolveReady(process);
 | 
								resolveReady(process);
 | 
				
			||||||
 | 
								if (!gStatsTimer) {
 | 
				
			||||||
 | 
									gStatsTimer = true;
 | 
				
			||||||
 | 
									sendStats();
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		} catch (error) {
 | 
							} catch (error) {
 | 
				
			||||||
			if (process.app) {
 | 
								if (process.app) {
 | 
				
			||||||
				if (process?.task?.onError) {
 | 
									if (process?.task?.onError) {
 | 
				
			||||||
@@ -918,34 +917,6 @@ async function useAppHandler(
 | 
				
			|||||||
 * @returns
 | 
					 * @returns
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
async function blobHandler(request, response, blobId, uri) {
 | 
					async function blobHandler(request, response, blobId, uri) {
 | 
				
			||||||
	// TODO(tasiaiso): break this down ?
 | 
					 | 
				
			||||||
	for (let i in k_static_files) {
 | 
					 | 
				
			||||||
		if (uri === k_static_files[i].uri && k_static_files[i].path) {
 | 
					 | 
				
			||||||
			let stat = await File.stat('core/' + k_static_files[i].path);
 | 
					 | 
				
			||||||
			let id = `${stat.mtime}_${stat.size}`;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			if (request.headers['if-none-match'] === '"' + id + '"') {
 | 
					 | 
				
			||||||
				response.writeHead(304, {'Content-Length': '0'});
 | 
					 | 
				
			||||||
				response.end();
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				let data = await File.readFile('core/' + k_static_files[i].path);
 | 
					 | 
				
			||||||
				response.writeHead(
 | 
					 | 
				
			||||||
					200,
 | 
					 | 
				
			||||||
					Object.assign(
 | 
					 | 
				
			||||||
						{
 | 
					 | 
				
			||||||
							'Content-Type': k_static_files[i].type,
 | 
					 | 
				
			||||||
							'Content-Length': data.byteLength,
 | 
					 | 
				
			||||||
							etag: '"' + id + '"',
 | 
					 | 
				
			||||||
						},
 | 
					 | 
				
			||||||
						k_static_files[i].headers || {}
 | 
					 | 
				
			||||||
					)
 | 
					 | 
				
			||||||
				);
 | 
					 | 
				
			||||||
				response.end(data);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			return;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (!uri) {
 | 
						if (!uri) {
 | 
				
			||||||
		response.writeHead(303, {
 | 
							response.writeHead(303, {
 | 
				
			||||||
			Location:
 | 
								Location:
 | 
				
			||||||
@@ -1232,7 +1203,7 @@ async function loadSettings() {
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
function sendStats() {
 | 
					function sendStats() {
 | 
				
			||||||
	let apps = Object.values(gProcesses)
 | 
						let apps = Object.values(gProcesses)
 | 
				
			||||||
		.filter((process) => process.app && process.stats)
 | 
							.filter((process) => process.app)
 | 
				
			||||||
		.map((process) => process.app);
 | 
							.map((process) => process.app);
 | 
				
			||||||
	if (apps.length) {
 | 
						if (apps.length) {
 | 
				
			||||||
		let stats = getStats();
 | 
							let stats = getStats();
 | 
				
			||||||
@@ -1245,19 +1216,6 @@ function sendStats() {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * TODOC
 | 
					 | 
				
			||||||
 * @param {*} process
 | 
					 | 
				
			||||||
 * @param {*} enabled
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
function enableStats(process, enabled) {
 | 
					 | 
				
			||||||
	process.stats = enabled;
 | 
					 | 
				
			||||||
	if (!gStatsTimer) {
 | 
					 | 
				
			||||||
		gStatsTimer = true;
 | 
					 | 
				
			||||||
		sendStats();
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * TODOC
 | 
					 * TODOC
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@@ -1374,7 +1332,6 @@ function storePermission(user, packageOwner, packageName, permission, allow) {
 | 
				
			|||||||
export {
 | 
					export {
 | 
				
			||||||
	gGlobalSettings as globalSettings,
 | 
						gGlobalSettings as globalSettings,
 | 
				
			||||||
	setGlobalSettings,
 | 
						setGlobalSettings,
 | 
				
			||||||
	enableStats,
 | 
					 | 
				
			||||||
	invoke,
 | 
						invoke,
 | 
				
			||||||
	getSessionProcessBlob,
 | 
						getSessionProcessBlob,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,7 +29,10 @@
 | 
				
			|||||||
			<div class="w3-container">
 | 
								<div class="w3-container">
 | 
				
			||||||
				<div class="w3-panel w3-red w3-padding w3-card-4">
 | 
									<div class="w3-panel w3-red w3-padding w3-card-4">
 | 
				
			||||||
					<h1>TildeFriends requires JavaScript.</h1>
 | 
										<h1>TildeFriends requires JavaScript.</h1>
 | 
				
			||||||
					<p>It looks like JavaScript is disabled or unsupported.  This isn't going to work.</p>
 | 
										<p>
 | 
				
			||||||
 | 
											It looks like JavaScript is disabled or unsupported. This isn't
 | 
				
			||||||
 | 
											going to work.
 | 
				
			||||||
 | 
										</p>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</noscript>
 | 
							</noscript>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								deps/codemirror/cm6.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/codemirror/cm6.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										181
									
								
								deps/codemirror_src/package-lock.json
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										181
									
								
								deps/codemirror_src/package-lock.json
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -19,9 +19,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@codemirror/autocomplete": {
 | 
					    "node_modules/@codemirror/autocomplete": {
 | 
				
			||||||
      "version": "6.16.2",
 | 
					      "version": "6.17.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.16.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.17.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-MjfDrHy0gHKlPWsvSsikhO1+BOh+eBHNgfH1OXs1+DAf30IonQldgMM3kxLDTG9ktE7kDLaA1j/l7KMPA4KNfw==",
 | 
					      "integrity": "sha512-fdfj6e6ZxZf8yrkMHUSJJir7OJkHkZKaOZGzLWIYp2PZ3jd+d+UjG8zVPqJF6d3bKxkhvXTPan/UZ1t7Bqm0gA==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@codemirror/language": "^6.0.0",
 | 
					        "@codemirror/language": "^6.0.0",
 | 
				
			||||||
        "@codemirror/state": "^6.0.0",
 | 
					        "@codemirror/state": "^6.0.0",
 | 
				
			||||||
@@ -111,9 +111,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@codemirror/lint": {
 | 
					    "node_modules/@codemirror/lint": {
 | 
				
			||||||
      "version": "6.8.0",
 | 
					      "version": "6.8.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-lsFofvaw0lnPRJlQylNsC4IRt/1lI4OD/yYslrSGVndOJfStc58v+8p9dgGiD90ktOfL7OhBWns1ZETYgz0EJA==",
 | 
					      "integrity": "sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@codemirror/state": "^6.0.0",
 | 
					        "@codemirror/state": "^6.0.0",
 | 
				
			||||||
        "@codemirror/view": "^6.0.0",
 | 
					        "@codemirror/view": "^6.0.0",
 | 
				
			||||||
@@ -147,9 +147,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@codemirror/view": {
 | 
					    "node_modules/@codemirror/view": {
 | 
				
			||||||
      "version": "6.28.1",
 | 
					      "version": "6.28.6",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.28.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.28.6.tgz",
 | 
				
			||||||
      "integrity": "sha512-BUWr+zCJpMkA/u69HlJmR+YkV4yPpM81HeMkOMZuwFa8iM5uJdEPKAs1icIRZKkKmy0Ub1x9/G3PQLTXdpBxrQ==",
 | 
					      "integrity": "sha512-bhwB1AZ6zU4M3dNKm8Aa2BXwj5mWDqE9IWpqxYKJoLCnx+AcwcMuLO01tLWgc1mx4vT1IVYVqx86YoqUsATrqQ==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@codemirror/state": "^6.4.0",
 | 
					        "@codemirror/state": "^6.4.0",
 | 
				
			||||||
        "style-mod": "^4.1.0",
 | 
					        "style-mod": "^4.1.0",
 | 
				
			||||||
@@ -199,9 +199,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@jridgewell/sourcemap-codec": {
 | 
					    "node_modules/@jridgewell/sourcemap-codec": {
 | 
				
			||||||
      "version": "1.4.15",
 | 
					      "version": "1.5.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
 | 
					      "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@jridgewell/trace-mapping": {
 | 
					    "node_modules/@jridgewell/trace-mapping": {
 | 
				
			||||||
@@ -343,9 +343,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-android-arm-eabi": {
 | 
					    "node_modules/@rollup/rollup-android-arm-eabi": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==",
 | 
					      "integrity": "sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "arm"
 | 
					        "arm"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -355,9 +355,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-android-arm64": {
 | 
					    "node_modules/@rollup/rollup-android-arm64": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==",
 | 
					      "integrity": "sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "arm64"
 | 
					        "arm64"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -367,9 +367,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-darwin-arm64": {
 | 
					    "node_modules/@rollup/rollup-darwin-arm64": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==",
 | 
					      "integrity": "sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "arm64"
 | 
					        "arm64"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -379,9 +379,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-darwin-x64": {
 | 
					    "node_modules/@rollup/rollup-darwin-x64": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==",
 | 
					      "integrity": "sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "x64"
 | 
					        "x64"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -391,9 +391,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
 | 
					    "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==",
 | 
					      "integrity": "sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "arm"
 | 
					        "arm"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -403,9 +403,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-linux-arm-musleabihf": {
 | 
					    "node_modules/@rollup/rollup-linux-arm-musleabihf": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==",
 | 
					      "integrity": "sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "arm"
 | 
					        "arm"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -415,9 +415,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-linux-arm64-gnu": {
 | 
					    "node_modules/@rollup/rollup-linux-arm64-gnu": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==",
 | 
					      "integrity": "sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "arm64"
 | 
					        "arm64"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -427,9 +427,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-linux-arm64-musl": {
 | 
					    "node_modules/@rollup/rollup-linux-arm64-musl": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==",
 | 
					      "integrity": "sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "arm64"
 | 
					        "arm64"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -439,9 +439,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
 | 
					    "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==",
 | 
					      "integrity": "sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "ppc64"
 | 
					        "ppc64"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -451,9 +451,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-linux-riscv64-gnu": {
 | 
					    "node_modules/@rollup/rollup-linux-riscv64-gnu": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==",
 | 
					      "integrity": "sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "riscv64"
 | 
					        "riscv64"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -463,9 +463,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-linux-s390x-gnu": {
 | 
					    "node_modules/@rollup/rollup-linux-s390x-gnu": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==",
 | 
					      "integrity": "sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "s390x"
 | 
					        "s390x"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -475,9 +475,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-linux-x64-gnu": {
 | 
					    "node_modules/@rollup/rollup-linux-x64-gnu": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==",
 | 
					      "integrity": "sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "x64"
 | 
					        "x64"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -487,9 +487,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-linux-x64-musl": {
 | 
					    "node_modules/@rollup/rollup-linux-x64-musl": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==",
 | 
					      "integrity": "sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "x64"
 | 
					        "x64"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -499,9 +499,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-win32-arm64-msvc": {
 | 
					    "node_modules/@rollup/rollup-win32-arm64-msvc": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==",
 | 
					      "integrity": "sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "arm64"
 | 
					        "arm64"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -511,9 +511,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-win32-ia32-msvc": {
 | 
					    "node_modules/@rollup/rollup-win32-ia32-msvc": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==",
 | 
					      "integrity": "sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "ia32"
 | 
					        "ia32"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -523,9 +523,9 @@
 | 
				
			|||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rollup/rollup-win32-x64-msvc": {
 | 
					    "node_modules/@rollup/rollup-win32-x64-msvc": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==",
 | 
					      "integrity": "sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==",
 | 
				
			||||||
      "cpu": [
 | 
					      "cpu": [
 | 
				
			||||||
        "x64"
 | 
					        "x64"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -545,9 +545,9 @@
 | 
				
			|||||||
      "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q=="
 | 
					      "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/acorn": {
 | 
					    "node_modules/acorn": {
 | 
				
			||||||
      "version": "8.12.0",
 | 
					      "version": "8.12.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
 | 
					      "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "bin": {
 | 
					      "bin": {
 | 
				
			||||||
        "acorn": "bin/acorn"
 | 
					        "acorn": "bin/acorn"
 | 
				
			||||||
@@ -658,11 +658,14 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/is-core-module": {
 | 
					    "node_modules/is-core-module": {
 | 
				
			||||||
      "version": "2.13.1",
 | 
					      "version": "2.15.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
 | 
					      "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "hasown": "^2.0.0"
 | 
					        "hasown": "^2.0.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 0.4"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "funding": {
 | 
					      "funding": {
 | 
				
			||||||
        "url": "https://github.com/sponsors/ljharb"
 | 
					        "url": "https://github.com/sponsors/ljharb"
 | 
				
			||||||
@@ -715,9 +718,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/rollup": {
 | 
					    "node_modules/rollup": {
 | 
				
			||||||
      "version": "4.18.0",
 | 
					      "version": "4.19.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==",
 | 
					      "integrity": "sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@types/estree": "1.0.5"
 | 
					        "@types/estree": "1.0.5"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@@ -729,22 +732,22 @@
 | 
				
			|||||||
        "npm": ">=8.0.0"
 | 
					        "npm": ">=8.0.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "optionalDependencies": {
 | 
					      "optionalDependencies": {
 | 
				
			||||||
        "@rollup/rollup-android-arm-eabi": "4.18.0",
 | 
					        "@rollup/rollup-android-arm-eabi": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-android-arm64": "4.18.0",
 | 
					        "@rollup/rollup-android-arm64": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-darwin-arm64": "4.18.0",
 | 
					        "@rollup/rollup-darwin-arm64": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-darwin-x64": "4.18.0",
 | 
					        "@rollup/rollup-darwin-x64": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-linux-arm-gnueabihf": "4.18.0",
 | 
					        "@rollup/rollup-linux-arm-gnueabihf": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-linux-arm-musleabihf": "4.18.0",
 | 
					        "@rollup/rollup-linux-arm-musleabihf": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-linux-arm64-gnu": "4.18.0",
 | 
					        "@rollup/rollup-linux-arm64-gnu": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-linux-arm64-musl": "4.18.0",
 | 
					        "@rollup/rollup-linux-arm64-musl": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0",
 | 
					        "@rollup/rollup-linux-powerpc64le-gnu": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-linux-riscv64-gnu": "4.18.0",
 | 
					        "@rollup/rollup-linux-riscv64-gnu": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-linux-s390x-gnu": "4.18.0",
 | 
					        "@rollup/rollup-linux-s390x-gnu": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-linux-x64-gnu": "4.18.0",
 | 
					        "@rollup/rollup-linux-x64-gnu": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-linux-x64-musl": "4.18.0",
 | 
					        "@rollup/rollup-linux-x64-musl": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-win32-arm64-msvc": "4.18.0",
 | 
					        "@rollup/rollup-win32-arm64-msvc": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-win32-ia32-msvc": "4.18.0",
 | 
					        "@rollup/rollup-win32-ia32-msvc": "4.19.0",
 | 
				
			||||||
        "@rollup/rollup-win32-x64-msvc": "4.18.0",
 | 
					        "@rollup/rollup-win32-x64-msvc": "4.19.0",
 | 
				
			||||||
        "fsevents": "~2.3.2"
 | 
					        "fsevents": "~2.3.2"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@@ -819,9 +822,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/terser": {
 | 
					    "node_modules/terser": {
 | 
				
			||||||
      "version": "5.31.1",
 | 
					      "version": "5.31.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.3.tgz",
 | 
				
			||||||
      "integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==",
 | 
					      "integrity": "sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@jridgewell/source-map": "^0.3.3",
 | 
					        "@jridgewell/source-map": "^0.3.3",
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								deps/libbacktrace
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										2
									
								
								deps/libbacktrace
									
									
									
									
										vendored
									
									
								
							 Submodule deps/libbacktrace updated: 11427f31a6...7e2b7da3d6
									
								
							@@ -1,9 +1,7 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 | 
					<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 | 
				
			||||||
	package="com.unprompted.tildefriends"
 | 
						package="com.unprompted.tildefriends"
 | 
				
			||||||
	android:versionCode="22"
 | 
					 | 
				
			||||||
	android:versionName="0.0.21-wip">
 | 
						android:versionName="0.0.21-wip">
 | 
				
			||||||
	<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="34"/>
 | 
					 | 
				
			||||||
	<uses-permission android:name="android.permission.INTERNET"/>
 | 
						<uses-permission android:name="android.permission.INTERNET"/>
 | 
				
			||||||
	<application
 | 
						<application
 | 
				
			||||||
		android:label="Tilde Friends"
 | 
							android:label="Tilde Friends"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -905,14 +905,23 @@ static void _httpd_endpoint_static(tf_http_request_t* request)
 | 
				
			|||||||
	const char* file_path = NULL;
 | 
						const char* file_path = NULL;
 | 
				
			||||||
	for (int i = 0; i < tf_countof(k_map) && !after; i++)
 | 
						for (int i = 0; i < tf_countof(k_map) && !after; i++)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		after = _after(request->path, k_map[i][0]);
 | 
							const char* next_after = _after(request->path, k_map[i][0]);
 | 
				
			||||||
		file_path = k_map[i][1];
 | 
							if (next_after)
 | 
				
			||||||
		is_core = is_core || (after && i == 0);
 | 
							{
 | 
				
			||||||
 | 
								after = next_after;
 | 
				
			||||||
 | 
								file_path = k_map[i][1];
 | 
				
			||||||
 | 
								is_core = after && i == 0;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (strcmp(request->path, "/speedscope/") == 0)
 | 
						if ((!after || !*after) && request->path[strlen(request->path) - 1] == '/')
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		after = "index.html";
 | 
							after = "index.html";
 | 
				
			||||||
 | 
							if (!file_path)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								file_path = "core/";
 | 
				
			||||||
 | 
								is_core = true;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!after || strstr(after, ".."))
 | 
						if (!after || strstr(after, ".."))
 | 
				
			||||||
@@ -1668,6 +1677,7 @@ void tf_httpd_register(JSContext* context)
 | 
				
			|||||||
	tf_http_add_handler(http, "/speedscope/*", _httpd_endpoint_static, NULL, task);
 | 
						tf_http_add_handler(http, "/speedscope/*", _httpd_endpoint_static, NULL, task);
 | 
				
			||||||
	tf_http_add_handler(http, "/static/*", _httpd_endpoint_static, NULL, task);
 | 
						tf_http_add_handler(http, "/static/*", _httpd_endpoint_static, NULL, task);
 | 
				
			||||||
	tf_http_add_handler(http, "/.well-known/*", _httpd_endpoint_static, NULL, task);
 | 
						tf_http_add_handler(http, "/.well-known/*", _httpd_endpoint_static, NULL, task);
 | 
				
			||||||
 | 
						tf_http_add_handler(http, "/~*/*/", _httpd_endpoint_static, NULL, task);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tf_http_add_handler(http, "/robots.txt", _httpd_endpoint_robots_txt, NULL, NULL);
 | 
						tf_http_add_handler(http, "/robots.txt", _httpd_endpoint_robots_txt, NULL, NULL);
 | 
				
			||||||
	tf_http_add_handler(http, "/debug", _httpd_endpoint_debug, NULL, task);
 | 
						tf_http_add_handler(http, "/debug", _httpd_endpoint_debug, NULL, task);
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										19
									
								
								src/main.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								src/main.c
									
									
									
									
									
								
							@@ -794,6 +794,7 @@ static jint _tf_server_main(JNIEnv* env, jobject this_object, jstring files_dir,
 | 
				
			|||||||
	(*env)->ReleaseStringUTFChars(env, apk_path, apk);
 | 
						(*env)->ReleaseStringUTFChars(env, apk_path, apk);
 | 
				
			||||||
	(*env)->ReleaseStringUTFChars(env, out_port_file_path, out_port_file);
 | 
						(*env)->ReleaseStringUTFChars(env, out_port_file_path, out_port_file);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						tf_mem_shutdown();
 | 
				
			||||||
	tf_printf("tf_server_main finished with %d.", result);
 | 
						tf_printf("tf_server_main finished with %d.", result);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	s_jni_env = NULL;
 | 
						s_jni_env = NULL;
 | 
				
			||||||
@@ -818,6 +819,7 @@ static jint _tf_sandbox_main(JNIEnv* env, jobject this_object, int pipe_fd)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	int result = _tf_command_sandbox(NULL, _countof(args), (char**)args);
 | 
						int result = _tf_command_sandbox(NULL, _countof(args), (char**)args);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						tf_mem_shutdown();
 | 
				
			||||||
	tf_printf("tf_sandbox_main finished with %d.", result);
 | 
						tf_printf("tf_sandbox_main finished with %d.", result);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	s_jni_env = NULL;
 | 
						s_jni_env = NULL;
 | 
				
			||||||
@@ -859,21 +861,8 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
int main(int argc, char* argv[])
 | 
					int main(int argc, char* argv[])
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	_startup(argc, argv);
 | 
						tf_printf("Welcome to Tilde Friends.  This is not the way to run on Android.\n");
 | 
				
			||||||
	int result = -1;
 | 
						return EXIT_FAILURE;
 | 
				
			||||||
	if (argc > 1)
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		if (strcmp(argv[1], "run") == 0)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			result = _tf_command_run(argv[0], argc - 1, argv + 1);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		else if (strcmp(argv[1], "sandbox") == 0)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			result = _tf_command_sandbox(argv[0], argc - 1, argv + 1);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	tf_mem_shutdown();
 | 
					 | 
				
			||||||
	return result;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#elif TARGET_OS_IPHONE
 | 
					#elif TARGET_OS_IPHONE
 | 
				
			||||||
void tf_run_thread_start(const char* zip_path)
 | 
					void tf_run_thread_start(const char* zip_path)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user