sootsim 0.1.131 → 0.1.133
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cli/bin.js +3 -3
- package/dist-cli/chunks/{agent-E2VVCGQU.js → agent-HUV6ZDVC.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-33VFUNED.js → agent-wrapper-DWQ4YJ2L.js} +2 -2
- package/dist-cli/chunks/{app-fonts-3L2XX7Y7.js → app-fonts-KZU5WKNH.js} +2 -2
- package/dist-cli/chunks/{assert-IWNIHSQZ.js → assert-O6MCNH6B.js} +2 -2
- package/dist-cli/chunks/auto-bootstrap-LTOQSXRM.js +2 -0
- package/dist-cli/chunks/beta-Y2OJHTRQ.js +2 -0
- package/dist-cli/chunks/{chunk-NBV6N5JG.js → chunk-2NV5VDY3.js} +2 -2
- package/dist-cli/chunks/{chunk-CIDY56TT.js → chunk-2OST4PMS.js} +2 -2
- package/dist-cli/chunks/{chunk-WMMBJ6EZ.js → chunk-4CQXBMKU.js} +1 -1
- package/dist-cli/chunks/{chunk-U6ZEGWUP.js → chunk-7BCTUWOM.js} +2 -2
- package/dist-cli/chunks/chunk-7SYFZZK3.js +2 -0
- package/dist-cli/chunks/{chunk-7FOWPTRL.js → chunk-A34CFM2J.js} +1 -1
- package/dist-cli/chunks/chunk-AEYD4ODQ.js +1 -0
- package/dist-cli/chunks/{chunk-BG5XSXNN.js → chunk-AKIYNT56.js} +1 -1
- package/dist-cli/chunks/{chunk-CRRUICMV.js → chunk-BC357P2N.js} +2 -2
- package/dist-cli/chunks/{chunk-54UKEUZT.js → chunk-BHPSNVNR.js} +3 -3
- package/dist-cli/chunks/chunk-D3OLBBEO.js +1 -0
- package/dist-cli/chunks/{chunk-M3EAG7DW.js → chunk-DYNVMRON.js} +2 -2
- package/dist-cli/chunks/{chunk-WVXACDTN.js → chunk-ESQVUOW2.js} +2 -2
- package/dist-cli/chunks/{chunk-JB2XTOTE.js → chunk-FJRIG6HG.js} +2 -2
- package/dist-cli/chunks/chunk-FXB2ETM3.js +4 -0
- package/dist-cli/chunks/{chunk-CTJ2JTGG.js → chunk-G4OBKVUY.js} +1 -1
- package/dist-cli/chunks/{chunk-SL3QE2ZH.js → chunk-GCNZ32Y7.js} +2 -2
- package/dist-cli/chunks/{chunk-APVJC2UU.js → chunk-GDHDUANQ.js} +2 -2
- package/dist-cli/chunks/{chunk-DII4JH4V.js → chunk-GMHBZDQA.js} +1 -1
- package/dist-cli/chunks/{chunk-DHAAKK5S.js → chunk-HEOJB2Q7.js} +2 -2
- package/dist-cli/chunks/{chunk-WCLVBJP6.js → chunk-HSNSCKU6.js} +2 -2
- package/dist-cli/chunks/{chunk-S2HUCQ2V.js → chunk-IMG7XQRR.js} +2 -2
- package/dist-cli/chunks/{chunk-T3EWCDR6.js → chunk-KFN2YKGC.js} +1 -1
- package/dist-cli/chunks/{chunk-F5KSHD45.js → chunk-KHC77NFP.js} +3 -3
- package/dist-cli/chunks/{chunk-CUISMI5W.js → chunk-KUTTVAMM.js} +1 -1
- package/dist-cli/chunks/chunk-LK6Y3IGB.js +64 -0
- package/dist-cli/chunks/{chunk-J6LN6U7I.js → chunk-MTXMNE75.js} +1 -1
- package/dist-cli/chunks/{chunk-34474744.js → chunk-NNRWRRI5.js} +3 -3
- package/dist-cli/chunks/{chunk-UDR5W52Q.js → chunk-OO3C2GYN.js} +2 -2
- package/dist-cli/chunks/{chunk-ENZN7H6M.js → chunk-PZSY7LCJ.js} +1 -1
- package/dist-cli/chunks/{chunk-LN2EUFKP.js → chunk-Q3GCZEPC.js} +1 -1
- package/dist-cli/chunks/{chunk-7SHQYZAV.js → chunk-QGPM7UTZ.js} +1 -1
- package/dist-cli/chunks/{chunk-WBH7RWVG.js → chunk-R4PCQVBM.js} +2 -2
- package/dist-cli/chunks/{chunk-LTEPSJWI.js → chunk-ROINTL2P.js} +2 -2
- package/dist-cli/chunks/chunk-RPQCGJI7.js +5 -0
- package/dist-cli/chunks/{chunk-ENEBFN4F.js → chunk-SKF4RZDK.js} +2 -2
- package/dist-cli/chunks/{chunk-SIHVPRJ5.js → chunk-THJDQ2EB.js} +1 -1
- package/dist-cli/chunks/{chunk-CTZWPA6E.js → chunk-TTCMDOP6.js} +2 -2
- package/dist-cli/chunks/{chunk-GU4JWEE2.js → chunk-UJBMEBQF.js} +1 -1
- package/dist-cli/chunks/{chunk-NF6TBFVQ.js → chunk-VO3QIOCT.js} +1 -1
- package/dist-cli/chunks/{chunk-72F7IBXI.js → chunk-VZB6MROZ.js} +2 -2
- package/dist-cli/chunks/{chunk-Y6P7ZGST.js → chunk-XEGM2NRW.js} +2 -2
- package/dist-cli/chunks/{chunk-LTDKALGE.js → chunk-YL3KKAZR.js} +1 -1
- package/dist-cli/chunks/chunk-YP4W6KI5.js +1 -0
- package/dist-cli/chunks/chunk-YZVZA6IX.js +2 -0
- package/dist-cli/chunks/cli-version-RQJHNNYX.js +2 -0
- package/dist-cli/chunks/{compat-G7MILF5C.js → compat-3BWLNHPY.js} +3 -3
- package/dist-cli/chunks/{config-EK2MX5TM.js → config-H7YEVE5J.js} +2 -2
- package/dist-cli/chunks/control-ZFU3T2LE.js +2 -0
- package/dist-cli/chunks/{cpu-profile-WQLZZH22.js → cpu-profile-XYCDA5GM.js} +2 -2
- package/dist-cli/chunks/{daemon-D667VAR5.js → daemon-TBN5MRVC.js} +2 -2
- package/dist-cli/chunks/{debug-J6KCXN3Y.js → debug-2WAJZ4C7.js} +3 -3
- package/dist-cli/chunks/demo-app-registry-JXOXYWFT.js +2 -0
- package/dist-cli/chunks/{detox-TVIZT3LO.js → detox-JLJPKRA3.js} +2 -2
- package/dist-cli/chunks/{device-BI4WKSGV.js → device-WPWC2KSY.js} +2 -2
- package/dist-cli/chunks/{diagnose-ACPZLWXQ.js → diagnose-PYBIEZFD.js} +2 -2
- package/dist-cli/chunks/drivers-XPCQOVAR.js +2 -0
- package/dist-cli/chunks/{electron-ZD5PU6TI.js → electron-ZW7YMV37.js} +3 -3
- package/dist-cli/chunks/flow-SWXVIYST.js +2 -0
- package/dist-cli/chunks/help-HAITGXVU.js +2 -0
- package/dist-cli/chunks/{hints-2VDMGSC5.js → hints-3YQNXM27.js} +2 -2
- package/dist-cli/chunks/{home-paths-VO4BR5BK.js → home-paths-SBGRHOZC.js} +2 -2
- package/dist-cli/chunks/{inspect-RM6DGHRB.js → inspect-YXTS4PR6.js} +3 -3
- package/dist-cli/chunks/install-VFUIM3QH.js +2 -0
- package/dist-cli/chunks/{install-desktop-FRPHDKRC.js → install-desktop-27SPMPUV.js} +3 -3
- package/dist-cli/chunks/{keys-WUOPL5VX.js → keys-Y7OJXBGI.js} +2 -2
- package/dist-cli/chunks/{launch-SAVHAJ6N.js → launch-OUG2GFLO.js} +3 -3
- package/dist-cli/chunks/{login-7MA4OPGV.js → login-XXJQHPWA.js} +4 -4
- package/dist-cli/chunks/{logout-YL5XHMYM.js → logout-FHJ26UTW.js} +2 -2
- package/dist-cli/chunks/{maestro-LCOVHJ7D.js → maestro-P4ZVR2I4.js} +2 -2
- package/dist-cli/chunks/{preview-BIKZNTRD.js → preview-6ONBLQBI.js} +2 -2
- package/dist-cli/chunks/{profile-KKIOWCDH.js → profile-LQOEBIPK.js} +2 -2
- package/dist-cli/chunks/{react-UJA6V4RC.js → react-R4KJVWDA.js} +2 -2
- package/dist-cli/chunks/{record-ACTA66DL.js → record-OBJJDTFN.js} +2 -2
- package/dist-cli/chunks/runtime-6JVXVZ4K.js +2 -0
- package/dist-cli/chunks/{runtime-delivery-Z7YPY56X.js → runtime-delivery-LEU6ABXJ.js} +2 -2
- package/dist-cli/chunks/{screenshot-6CUMBC6A.js → screenshot-AKU27ZTJ.js} +2 -2
- package/dist-cli/chunks/{screenshot-mode-YNBFDLFN.js → screenshot-mode-XPJM2SRF.js} +2 -2
- package/dist-cli/chunks/{screenshots-QVOIWNG6.js → screenshots-SJY4LH2Q.js} +2 -2
- package/dist-cli/chunks/{server-YNEOBB5D.js → server-2SSM3BKA.js} +3 -3
- package/dist-cli/chunks/setup-repo-X6WRLPI5.js +2 -0
- package/dist-cli/chunks/{skills-CH3QSSBF.js → skills-C7ZVO6AF.js} +2 -2
- package/dist-cli/chunks/{start-RYCAWIQ7.js → start-5BFFCFOT.js} +4 -4
- package/dist-cli/chunks/store-5FCKCDEL.js +2 -0
- package/dist-cli/chunks/telemetry-N6DCFUGB.js +2 -0
- package/dist-cli/chunks/{test-37ZDD753.js → test-5YTOB2K7.js} +3 -3
- package/dist-cli/chunks/{three-mode-BSY6KVQM.js → three-mode-ZTVDFRRN.js} +2 -2
- package/dist-cli/chunks/{timeline-ZD3TGYAF.js → timeline-ZSHW5COY.js} +2 -2
- package/dist-cli/chunks/{upgrade-UOAM4Q35.js → upgrade-DU2VLCLD.js} +2 -2
- package/dist-cli/chunks/upload-QLV4POAH.js +2 -0
- package/dist-cli/chunks/{version-O3YK6QEA.js → version-G7MFHWDO.js} +2 -2
- package/dist-cli/chunks/web-66TKNXN5.js +2 -0
- package/dist-cli/chunks/{what-happened-OXU5NEZK.js → what-happened-ZYPPAPQM.js} +2 -2
- package/dist-cli/chunks/{whoami-3OH4BMEA.js → whoami-U4JDM3X4.js} +2 -2
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +1 -1
- package/dist-lib/attached-projects.cjs +825 -23
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +1 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +443 -429
- package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/demo-app-registry.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +24 -19
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/src/attached-projects.ts +1 -1
- package/dist-cli/chunks/auto-bootstrap-HVFQYW3W.js +0 -2
- package/dist-cli/chunks/beta-DTH53ZBB.js +0 -2
- package/dist-cli/chunks/chunk-3RAF5I5P.js +0 -1
- package/dist-cli/chunks/chunk-HGKXZJYM.js +0 -67
- package/dist-cli/chunks/chunk-LCFEK3M3.js +0 -2
- package/dist-cli/chunks/chunk-MAWBNHA7.js +0 -4
- package/dist-cli/chunks/chunk-NKLWLNTN.js +0 -2
- package/dist-cli/chunks/chunk-QXDMTVKI.js +0 -1
- package/dist-cli/chunks/chunk-SN35VFLV.js +0 -1
- package/dist-cli/chunks/cli-version-XAA6XJ3E.js +0 -2
- package/dist-cli/chunks/control-7D5EKP3M.js +0 -2
- package/dist-cli/chunks/drivers-NVAOF3WK.js +0 -2
- package/dist-cli/chunks/flow-TL6WIR4C.js +0 -2
- package/dist-cli/chunks/help-42HSJPZ5.js +0 -2
- package/dist-cli/chunks/install-WEVANG74.js +0 -2
- package/dist-cli/chunks/runtime-ZPITJAAY.js +0 -2
- package/dist-cli/chunks/setup-repo-HCDKAHBY.js +0 -2
- package/dist-cli/chunks/store-32NRKG33.js +0 -2
- package/dist-cli/chunks/telemetry-HIY3SXVC.js +0 -2
- package/dist-cli/chunks/upload-RVUDLEEB.js +0 -2
- package/dist-cli/chunks/web-LAT537VP.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.133 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -7,6 +7,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
7
7
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
8
|
var __getProtoOf = Object.getPrototypeOf;
|
|
9
9
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __esm = (fn, res) => function __init() {
|
|
11
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
12
|
+
};
|
|
10
13
|
var __export = (target, all) => {
|
|
11
14
|
for (var name in all)
|
|
12
15
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -29,77 +32,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
29
32
|
));
|
|
30
33
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
31
34
|
|
|
32
|
-
// src/host/bridge-host.ts
|
|
33
|
-
var bridge_host_exports = {};
|
|
34
|
-
__export(bridge_host_exports, {
|
|
35
|
-
SootSimBridgeHost: () => SootSimBridgeHost,
|
|
36
|
-
injectSharedConfigIntoHtml: () => injectSharedConfigIntoHtml
|
|
37
|
-
});
|
|
38
|
-
module.exports = __toCommonJS(bridge_host_exports);
|
|
39
|
-
var import_child_process4 = require("child_process");
|
|
40
|
-
var import_fs3 = __toESM(require("fs"), 1);
|
|
41
|
-
var import_http3 = require("http");
|
|
42
|
-
var import_path3 = __toESM(require("path"), 1);
|
|
43
|
-
var import_ws2 = require("ws");
|
|
44
|
-
|
|
45
|
-
// scripts/dev-server-scanner.ts
|
|
46
|
-
var import_child_process = require("child_process");
|
|
47
|
-
var import_http = __toESM(require("http"), 1);
|
|
48
|
-
var import_net = __toESM(require("net"), 1);
|
|
49
|
-
var import_util = require("util");
|
|
50
|
-
|
|
51
|
-
// src/config.ts
|
|
52
|
-
var SOOTSIM_CONFIG_QUERY_PARAM = "sootsimConfig";
|
|
53
|
-
function hasOwnKeys(value) {
|
|
54
|
-
return !!value && Object.keys(value).length > 0;
|
|
55
|
-
}
|
|
56
|
-
function hasSootSimConfig(config) {
|
|
57
|
-
if (!config) return false;
|
|
58
|
-
return hasOwnKeys(config.modules) || hasOwnKeys(config.turboModules) || hasOwnKeys(config.nativeModules) || hasOwnKeys(config.env) || hasOwnKeys(config.settings) || hasOwnKeys(config.initialState);
|
|
59
|
-
}
|
|
60
|
-
function applySootSimConfigToUrl(url, config) {
|
|
61
|
-
const parsed = new URL(url);
|
|
62
|
-
if (hasSootSimConfig(config)) {
|
|
63
|
-
parsed.searchParams.set(SOOTSIM_CONFIG_QUERY_PARAM, JSON.stringify(config));
|
|
64
|
-
} else {
|
|
65
|
-
parsed.searchParams.delete(SOOTSIM_CONFIG_QUERY_PARAM);
|
|
66
|
-
}
|
|
67
|
-
return parsed.toString();
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// src/native-dev-bundle-url.ts
|
|
71
|
-
function isAbsoluteHttpUrl(url) {
|
|
72
|
-
return /^https?:\/\//i.test(url);
|
|
73
|
-
}
|
|
74
|
-
function isNativeDevBundlePath(pathname) {
|
|
75
|
-
return pathname.endsWith(".bundle");
|
|
76
|
-
}
|
|
77
|
-
function applyPreviewProdBundle(parsed) {
|
|
78
|
-
if (!process.env.SOOTSIM_PREVIEW_PROD_BUNDLE) return;
|
|
79
|
-
parsed.searchParams.set("dev", "false");
|
|
80
|
-
parsed.searchParams.set("minify", "true");
|
|
81
|
-
if (parsed.searchParams.has("hot")) parsed.searchParams.set("hot", "false");
|
|
82
|
-
}
|
|
83
|
-
function normalizeNativeDevBundleUrl(bundleUrl) {
|
|
84
|
-
try {
|
|
85
|
-
const isAbsolute = isAbsoluteHttpUrl(bundleUrl);
|
|
86
|
-
const parsed = new URL(bundleUrl, "http://soot.local");
|
|
87
|
-
parsed.pathname = parsed.pathname.replace(/\.\.bundle$/, ".bundle");
|
|
88
|
-
if (!isNativeDevBundlePath(parsed.pathname)) return bundleUrl;
|
|
89
|
-
parsed.searchParams.delete("transform.bytecode");
|
|
90
|
-
applyPreviewProdBundle(parsed);
|
|
91
|
-
if (isAbsolute) return parsed.toString();
|
|
92
|
-
return `${parsed.pathname}${parsed.search}${parsed.hash}`;
|
|
93
|
-
} catch {
|
|
94
|
-
return bundleUrl;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
35
|
// scripts/demo-app-registry.ts
|
|
99
|
-
var
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
36
|
+
var demo_app_registry_exports = {};
|
|
37
|
+
__export(demo_app_registry_exports, {
|
|
38
|
+
APPS: () => APPS
|
|
39
|
+
});
|
|
103
40
|
function findWorkspaceRoot(startDir) {
|
|
104
41
|
let dir = startDir;
|
|
105
42
|
while (true) {
|
|
@@ -131,50 +68,6 @@ function resolveWorkspaceScriptPath(workspaceRelativePath, packageRelativePath)
|
|
|
131
68
|
}
|
|
132
69
|
return candidates[0] ?? (0, import_node_path.resolve)(process.cwd(), workspaceRelativePath);
|
|
133
70
|
}
|
|
134
|
-
var getExpensifyProxyScript = () => resolveWorkspaceScriptPath(
|
|
135
|
-
"packages/sootsim-engine/scripts/expensify-web-proxy.ts",
|
|
136
|
-
"scripts/expensify-web-proxy.ts"
|
|
137
|
-
);
|
|
138
|
-
var getRainbowMetadataProxyScript = () => resolveWorkspaceScriptPath(
|
|
139
|
-
"packages/sootsim-engine/scripts/rainbow-metadata-proxy.ts",
|
|
140
|
-
"scripts/rainbow-metadata-proxy.ts"
|
|
141
|
-
);
|
|
142
|
-
var getMattermostRNUtilsNativeModule = () => resolveWorkspaceScriptPath(
|
|
143
|
-
"packages/compat/src/stubs/mattermost-rnutils-native.ts",
|
|
144
|
-
"../compat/src/stubs/mattermost-rnutils-native.ts"
|
|
145
|
-
);
|
|
146
|
-
var getMattermostKeychainNativeModule = () => resolveWorkspaceScriptPath(
|
|
147
|
-
"packages/compat/src/stubs/native-seams/react-native-keychain-manager.ts",
|
|
148
|
-
"../compat/src/stubs/native-seams/react-native-keychain-manager.ts"
|
|
149
|
-
);
|
|
150
|
-
var getMattermostNetworkClientNativeModule = () => resolveWorkspaceScriptPath(
|
|
151
|
-
"packages/compat/src/stubs/mattermost-network-client-native.ts",
|
|
152
|
-
"../compat/src/stubs/mattermost-network-client-native.ts"
|
|
153
|
-
);
|
|
154
|
-
var getMattermostPreviewServerScript = () => resolveWorkspaceScriptPath(
|
|
155
|
-
"packages/sootsim-engine/scripts/mattermost-preview-server.ts",
|
|
156
|
-
"scripts/mattermost-preview-server.ts"
|
|
157
|
-
);
|
|
158
|
-
var EXPENSIFY_NATIVE_PROXY_ENV = {
|
|
159
|
-
USE_NGROK: "true",
|
|
160
|
-
NGROK_URL: "http://localhost:9000/",
|
|
161
|
-
SECURE_NGROK_URL: "http://localhost:9000/"
|
|
162
|
-
};
|
|
163
|
-
var MATTERMOST_DIR = (0, import_node_path.join)(HOME, "github/mattermost-mobile");
|
|
164
|
-
var UNISWAP_REPO_DIR = (0, import_node_path.join)(HOME, "github/uniswap-interface");
|
|
165
|
-
var UNISWAP_APP_DIR = (0, import_node_path.join)(UNISWAP_REPO_DIR, "apps/mobile");
|
|
166
|
-
var UNISWAP_ENV_LOCAL_FILE = (0, import_node_path.join)(UNISWAP_REPO_DIR, ".env.defaults.local");
|
|
167
|
-
var UNISWAP_PLACEHOLDER = "stored-in-.env.local";
|
|
168
|
-
var UNISWAP_DEMO_ENV_MARKER = "# sootsim demo env overrides";
|
|
169
|
-
var UNISWAP_FORCE_UPGRADE_HOOK_FILE = (0, import_node_path.join)(
|
|
170
|
-
UNISWAP_REPO_DIR,
|
|
171
|
-
"packages/uniswap/src/features/forceUpgrade/hooks/useForceUpgradeStatus.ts"
|
|
172
|
-
);
|
|
173
|
-
var UNISWAP_FORCE_UPGRADE_NOTIFICATION_FILE = (0, import_node_path.join)(
|
|
174
|
-
UNISWAP_REPO_DIR,
|
|
175
|
-
"apps/mobile/src/notification-service/data-sources/createForceUpgradeNotificationDataSource.ts"
|
|
176
|
-
);
|
|
177
|
-
var UNISWAP_FORCE_UPGRADE_PATCH_MARKER = "SOOTSIM_DEMO_DISABLE_FORCE_UPGRADE";
|
|
178
71
|
function parseEnvFile(filePath) {
|
|
179
72
|
if (!(0, import_node_fs.existsSync)(filePath)) return {};
|
|
180
73
|
const env = {};
|
|
@@ -316,23 +209,6 @@ function ensureUniswapForceUpgradePatched() {
|
|
|
316
209
|
notificationLegacyPatch
|
|
317
210
|
);
|
|
318
211
|
}
|
|
319
|
-
var JOPLIN_DIR = (0, import_node_path.join)(HOME, "github/joplin");
|
|
320
|
-
var JOPLIN_APP_DIR = (0, import_node_path.join)(JOPLIN_DIR, "packages/app-mobile");
|
|
321
|
-
var JOPLIN_WATCH_ROOTS = [
|
|
322
|
-
"packages/lib",
|
|
323
|
-
"packages/renderer",
|
|
324
|
-
"packages/turndown",
|
|
325
|
-
"packages/turndown-plugin-gfm",
|
|
326
|
-
"packages/editor",
|
|
327
|
-
"packages/tools",
|
|
328
|
-
"packages/utils",
|
|
329
|
-
"packages/fork-htmlparser2",
|
|
330
|
-
"packages/fork-uslug",
|
|
331
|
-
"packages/fork-sax",
|
|
332
|
-
"packages/htmlpack",
|
|
333
|
-
"packages/react-native-saf-x",
|
|
334
|
-
"packages/react-native-alarm-notification"
|
|
335
|
-
];
|
|
336
212
|
function ensureJoplinWatchmanConfigs() {
|
|
337
213
|
if (!(0, import_node_fs.existsSync)(JOPLIN_DIR)) return;
|
|
338
214
|
for (const rel of JOPLIN_WATCH_ROOTS) {
|
|
@@ -342,11 +218,6 @@ function ensureJoplinWatchmanConfigs() {
|
|
|
342
218
|
if (!(0, import_node_fs.existsSync)(cfg)) (0, import_node_fs.writeFileSync)(cfg, "{}\n");
|
|
343
219
|
}
|
|
344
220
|
}
|
|
345
|
-
var JOPLIN_BUILD_SENTINELS = [
|
|
346
|
-
"packages/lib/models/Setting.js",
|
|
347
|
-
"packages/turndown/lib/turndown.cjs.js",
|
|
348
|
-
"packages/app-mobile/pluginAssets/index.js"
|
|
349
|
-
];
|
|
350
221
|
function ensureJoplinBuilt() {
|
|
351
222
|
if (!(0, import_node_fs.existsSync)(JOPLIN_DIR)) return;
|
|
352
223
|
const missing = JOPLIN_BUILD_SENTINELS.filter(
|
|
@@ -368,30 +239,6 @@ function ensureJoplinBuilt() {
|
|
|
368
239
|
);
|
|
369
240
|
}
|
|
370
241
|
}
|
|
371
|
-
var RAINBOW_DIR = (0, import_node_path.join)(HOME, "github/rainbow");
|
|
372
|
-
var RAINBOW_GRAPHQL_DIR = (0, import_node_path.join)(RAINBOW_DIR, "src/graphql");
|
|
373
|
-
var RAINBOW_GRAPHQL_CONFIG_FILE = (0, import_node_path.join)(RAINBOW_GRAPHQL_DIR, "config.js");
|
|
374
|
-
var RAINBOW_NETWORKS_FILE = (0, import_node_path.join)(RAINBOW_DIR, "src/references/networks.json");
|
|
375
|
-
var RAINBOW_METADATA_BASE_URL = "https://metadata.p.rainbow.me";
|
|
376
|
-
var RAINBOW_METADATA_PROXY_PORT = 9011;
|
|
377
|
-
var RAINBOW_DEMO_METADATA_BASE_URL = `http://127.0.0.1:${RAINBOW_METADATA_PROXY_PORT}`;
|
|
378
|
-
var RAINBOW_PUBLIC_ENS_GRAPHQL_URL = "https://api.thegraph.com/subgraphs/name/ensdomains/ens";
|
|
379
|
-
var RAINBOW_DEMO_QUOTE_SIGNER = "0x0000000000000000000000000000000000000000";
|
|
380
|
-
var RAINBOW_DEMO_RELAY_URL = "https://relay.rainbow.me";
|
|
381
|
-
var RAINBOW_DEMO_MASTER_KEY = "sootsim-rainbow-demo-master-key-do-not-use-for-real-wallets";
|
|
382
|
-
var RAINBOW_DEMO_RPC_PROXY_BASE_URL = "https://rpc.rainbow.me/v1";
|
|
383
|
-
var RAINBOW_DEMO_RPC_API_KEY = "";
|
|
384
|
-
var RAINBOW_DEMO_PUBLIC_RPC_URLS = {
|
|
385
|
-
"1": "https://ethereum-rpc.publicnode.com"
|
|
386
|
-
};
|
|
387
|
-
var RAINBOW_DEMO_SERVICE_API_KEY = "sootsim-rainbow-demo-api-key";
|
|
388
|
-
var RAINBOW_DEMO_SECURE_WALLET_HASH_KEY = "0x736f6f7473696d2d7261696e626f772d64656d6f2d686173682d6b6579000000";
|
|
389
|
-
var RAINBOW_DEMO_WALLETCONNECT_PROJECT_ID = "00000000000000000000000000000000";
|
|
390
|
-
var RAINBOW_GRAPHQL_SENTINELS = [
|
|
391
|
-
"src/graphql/__generated__/ens.ts",
|
|
392
|
-
"src/graphql/__generated__/metadata.ts",
|
|
393
|
-
"src/graphql/__generated__/metadataPOST.ts"
|
|
394
|
-
];
|
|
395
242
|
function runRainbowSetupCommand(command, cwd) {
|
|
396
243
|
const { execSync } = require("node:child_process");
|
|
397
244
|
execSync(command, {
|
|
@@ -525,10 +372,6 @@ function ensureRainbowSetup() {
|
|
|
525
372
|
}
|
|
526
373
|
ensureRainbowDemoNetworks();
|
|
527
374
|
}
|
|
528
|
-
var ARTSY_DIR = (0, import_node_path.join)(HOME, "github/eigen");
|
|
529
|
-
var ARTSY_KEYS_FILE = (0, import_node_path.join)(ARTSY_DIR, "keys.shared.json");
|
|
530
|
-
var ARTSY_METAFLAGS_FILE = (0, import_node_path.join)(ARTSY_DIR, "metaflags.json");
|
|
531
|
-
var ARTSY_RELAY_SENTINEL = (0, import_node_path.join)(ARTSY_DIR, "src/__generated__/.relay-complete");
|
|
532
375
|
function readArtsyKeysPayload() {
|
|
533
376
|
if (!(0, import_node_fs.existsSync)(ARTSY_KEYS_FILE)) return void 0;
|
|
534
377
|
try {
|
|
@@ -607,284 +450,455 @@ function ensureArtsySetup() {
|
|
|
607
450
|
(0, import_node_fs.writeFileSync)(ARTSY_RELAY_SENTINEL, "");
|
|
608
451
|
}
|
|
609
452
|
}
|
|
610
|
-
var
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
453
|
+
var import_node_fs, import_node_os, import_node_path, HOME, getExpensifyProxyScript, getRainbowMetadataProxyScript, getMattermostRNUtilsNativeModule, getMattermostKeychainNativeModule, getMattermostNetworkClientNativeModule, getMattermostPreviewServerScript, EXPENSIFY_NATIVE_PROXY_ENV, MATTERMOST_DIR, UNISWAP_REPO_DIR, UNISWAP_APP_DIR, UNISWAP_ENV_LOCAL_FILE, UNISWAP_PLACEHOLDER, UNISWAP_DEMO_ENV_MARKER, UNISWAP_FORCE_UPGRADE_HOOK_FILE, UNISWAP_FORCE_UPGRADE_NOTIFICATION_FILE, UNISWAP_FORCE_UPGRADE_PATCH_MARKER, JOPLIN_DIR, JOPLIN_APP_DIR, JOPLIN_WATCH_ROOTS, JOPLIN_BUILD_SENTINELS, RAINBOW_DIR, RAINBOW_GRAPHQL_DIR, RAINBOW_GRAPHQL_CONFIG_FILE, RAINBOW_NETWORKS_FILE, RAINBOW_METADATA_BASE_URL, RAINBOW_METADATA_PROXY_PORT, RAINBOW_DEMO_METADATA_BASE_URL, RAINBOW_PUBLIC_ENS_GRAPHQL_URL, RAINBOW_DEMO_QUOTE_SIGNER, RAINBOW_DEMO_RELAY_URL, RAINBOW_DEMO_MASTER_KEY, RAINBOW_DEMO_RPC_PROXY_BASE_URL, RAINBOW_DEMO_RPC_API_KEY, RAINBOW_DEMO_PUBLIC_RPC_URLS, RAINBOW_DEMO_SERVICE_API_KEY, RAINBOW_DEMO_SECURE_WALLET_HASH_KEY, RAINBOW_DEMO_WALLETCONNECT_PROJECT_ID, RAINBOW_GRAPHQL_SENTINELS, ARTSY_DIR, ARTSY_KEYS_FILE, ARTSY_METAFLAGS_FILE, ARTSY_RELAY_SENTINEL, APPS;
|
|
454
|
+
var init_demo_app_registry = __esm({
|
|
455
|
+
"scripts/demo-app-registry.ts"() {
|
|
456
|
+
"use strict";
|
|
457
|
+
import_node_fs = require("node:fs");
|
|
458
|
+
import_node_os = require("node:os");
|
|
459
|
+
import_node_path = require("node:path");
|
|
460
|
+
HOME = (0, import_node_os.homedir)();
|
|
461
|
+
getExpensifyProxyScript = () => resolveWorkspaceScriptPath(
|
|
462
|
+
"packages/sootsim-engine/scripts/expensify-web-proxy.ts",
|
|
463
|
+
"scripts/expensify-web-proxy.ts"
|
|
464
|
+
);
|
|
465
|
+
getRainbowMetadataProxyScript = () => resolveWorkspaceScriptPath(
|
|
466
|
+
"packages/sootsim-engine/scripts/rainbow-metadata-proxy.ts",
|
|
467
|
+
"scripts/rainbow-metadata-proxy.ts"
|
|
468
|
+
);
|
|
469
|
+
getMattermostRNUtilsNativeModule = () => resolveWorkspaceScriptPath(
|
|
470
|
+
"packages/compat/src/stubs/mattermost-rnutils-native.ts",
|
|
471
|
+
"../compat/src/stubs/mattermost-rnutils-native.ts"
|
|
472
|
+
);
|
|
473
|
+
getMattermostKeychainNativeModule = () => resolveWorkspaceScriptPath(
|
|
474
|
+
"packages/compat/src/stubs/native-seams/react-native-keychain-manager.ts",
|
|
475
|
+
"../compat/src/stubs/native-seams/react-native-keychain-manager.ts"
|
|
476
|
+
);
|
|
477
|
+
getMattermostNetworkClientNativeModule = () => resolveWorkspaceScriptPath(
|
|
478
|
+
"packages/compat/src/stubs/mattermost-network-client-native.ts",
|
|
479
|
+
"../compat/src/stubs/mattermost-network-client-native.ts"
|
|
480
|
+
);
|
|
481
|
+
getMattermostPreviewServerScript = () => resolveWorkspaceScriptPath(
|
|
482
|
+
"packages/sootsim-engine/scripts/mattermost-preview-server.ts",
|
|
483
|
+
"scripts/mattermost-preview-server.ts"
|
|
484
|
+
);
|
|
485
|
+
EXPENSIFY_NATIVE_PROXY_ENV = {
|
|
486
|
+
USE_NGROK: "true",
|
|
487
|
+
NGROK_URL: "http://localhost:9000/",
|
|
488
|
+
SECURE_NGROK_URL: "http://localhost:9000/"
|
|
489
|
+
};
|
|
490
|
+
MATTERMOST_DIR = (0, import_node_path.join)(HOME, "github/mattermost-mobile");
|
|
491
|
+
UNISWAP_REPO_DIR = (0, import_node_path.join)(HOME, "github/uniswap-interface");
|
|
492
|
+
UNISWAP_APP_DIR = (0, import_node_path.join)(UNISWAP_REPO_DIR, "apps/mobile");
|
|
493
|
+
UNISWAP_ENV_LOCAL_FILE = (0, import_node_path.join)(UNISWAP_REPO_DIR, ".env.defaults.local");
|
|
494
|
+
UNISWAP_PLACEHOLDER = "stored-in-.env.local";
|
|
495
|
+
UNISWAP_DEMO_ENV_MARKER = "# sootsim demo env overrides";
|
|
496
|
+
UNISWAP_FORCE_UPGRADE_HOOK_FILE = (0, import_node_path.join)(
|
|
497
|
+
UNISWAP_REPO_DIR,
|
|
498
|
+
"packages/uniswap/src/features/forceUpgrade/hooks/useForceUpgradeStatus.ts"
|
|
499
|
+
);
|
|
500
|
+
UNISWAP_FORCE_UPGRADE_NOTIFICATION_FILE = (0, import_node_path.join)(
|
|
501
|
+
UNISWAP_REPO_DIR,
|
|
502
|
+
"apps/mobile/src/notification-service/data-sources/createForceUpgradeNotificationDataSource.ts"
|
|
503
|
+
);
|
|
504
|
+
UNISWAP_FORCE_UPGRADE_PATCH_MARKER = "SOOTSIM_DEMO_DISABLE_FORCE_UPGRADE";
|
|
505
|
+
JOPLIN_DIR = (0, import_node_path.join)(HOME, "github/joplin");
|
|
506
|
+
JOPLIN_APP_DIR = (0, import_node_path.join)(JOPLIN_DIR, "packages/app-mobile");
|
|
507
|
+
JOPLIN_WATCH_ROOTS = [
|
|
508
|
+
"packages/lib",
|
|
509
|
+
"packages/renderer",
|
|
510
|
+
"packages/turndown",
|
|
511
|
+
"packages/turndown-plugin-gfm",
|
|
512
|
+
"packages/editor",
|
|
513
|
+
"packages/tools",
|
|
514
|
+
"packages/utils",
|
|
515
|
+
"packages/fork-htmlparser2",
|
|
516
|
+
"packages/fork-uslug",
|
|
517
|
+
"packages/fork-sax",
|
|
518
|
+
"packages/htmlpack",
|
|
519
|
+
"packages/react-native-saf-x",
|
|
520
|
+
"packages/react-native-alarm-notification"
|
|
521
|
+
];
|
|
522
|
+
JOPLIN_BUILD_SENTINELS = [
|
|
523
|
+
"packages/lib/models/Setting.js",
|
|
524
|
+
"packages/turndown/lib/turndown.cjs.js",
|
|
525
|
+
"packages/app-mobile/pluginAssets/index.js"
|
|
526
|
+
];
|
|
527
|
+
RAINBOW_DIR = (0, import_node_path.join)(HOME, "github/rainbow");
|
|
528
|
+
RAINBOW_GRAPHQL_DIR = (0, import_node_path.join)(RAINBOW_DIR, "src/graphql");
|
|
529
|
+
RAINBOW_GRAPHQL_CONFIG_FILE = (0, import_node_path.join)(RAINBOW_GRAPHQL_DIR, "config.js");
|
|
530
|
+
RAINBOW_NETWORKS_FILE = (0, import_node_path.join)(RAINBOW_DIR, "src/references/networks.json");
|
|
531
|
+
RAINBOW_METADATA_BASE_URL = "https://metadata.p.rainbow.me";
|
|
532
|
+
RAINBOW_METADATA_PROXY_PORT = 9011;
|
|
533
|
+
RAINBOW_DEMO_METADATA_BASE_URL = `http://127.0.0.1:${RAINBOW_METADATA_PROXY_PORT}`;
|
|
534
|
+
RAINBOW_PUBLIC_ENS_GRAPHQL_URL = "https://api.thegraph.com/subgraphs/name/ensdomains/ens";
|
|
535
|
+
RAINBOW_DEMO_QUOTE_SIGNER = "0x0000000000000000000000000000000000000000";
|
|
536
|
+
RAINBOW_DEMO_RELAY_URL = "https://relay.rainbow.me";
|
|
537
|
+
RAINBOW_DEMO_MASTER_KEY = "sootsim-rainbow-demo-master-key-do-not-use-for-real-wallets";
|
|
538
|
+
RAINBOW_DEMO_RPC_PROXY_BASE_URL = "https://rpc.rainbow.me/v1";
|
|
539
|
+
RAINBOW_DEMO_RPC_API_KEY = "";
|
|
540
|
+
RAINBOW_DEMO_PUBLIC_RPC_URLS = {
|
|
541
|
+
"1": "https://ethereum-rpc.publicnode.com"
|
|
542
|
+
};
|
|
543
|
+
RAINBOW_DEMO_SERVICE_API_KEY = "sootsim-rainbow-demo-api-key";
|
|
544
|
+
RAINBOW_DEMO_SECURE_WALLET_HASH_KEY = "0x736f6f7473696d2d7261696e626f772d64656d6f2d686173682d6b6579000000";
|
|
545
|
+
RAINBOW_DEMO_WALLETCONNECT_PROJECT_ID = "00000000000000000000000000000000";
|
|
546
|
+
RAINBOW_GRAPHQL_SENTINELS = [
|
|
547
|
+
"src/graphql/__generated__/ens.ts",
|
|
548
|
+
"src/graphql/__generated__/metadata.ts",
|
|
549
|
+
"src/graphql/__generated__/metadataPOST.ts"
|
|
550
|
+
];
|
|
551
|
+
ARTSY_DIR = (0, import_node_path.join)(HOME, "github/eigen");
|
|
552
|
+
ARTSY_KEYS_FILE = (0, import_node_path.join)(ARTSY_DIR, "keys.shared.json");
|
|
553
|
+
ARTSY_METAFLAGS_FILE = (0, import_node_path.join)(ARTSY_DIR, "metaflags.json");
|
|
554
|
+
ARTSY_RELAY_SENTINEL = (0, import_node_path.join)(ARTSY_DIR, "src/__generated__/.relay-complete");
|
|
555
|
+
APPS = [
|
|
694
556
|
{
|
|
695
|
-
name: "
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
557
|
+
name: "bluesky",
|
|
558
|
+
label: "Bluesky",
|
|
559
|
+
dir: (0, import_node_path.join)(HOME, "github/bluesky"),
|
|
560
|
+
preferredPort: 8082,
|
|
561
|
+
framework: "expo",
|
|
562
|
+
command: (p) => ({ cmd: `npx expo start --port ${p}` }),
|
|
563
|
+
credentials: {
|
|
564
|
+
envVars: ["SOOTSIM_BLUESKY_PASSWORD"],
|
|
565
|
+
known: { HANDLE: "natew.bsky.social" }
|
|
566
|
+
}
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
name: "3pc",
|
|
570
|
+
label: "3PunchConvo",
|
|
571
|
+
dir: (0, import_node_path.join)(HOME, "lightstrike-labs/three-punch-convo-app/apps/one"),
|
|
572
|
+
preferredPort: 8081,
|
|
573
|
+
framework: "one",
|
|
574
|
+
command: (p) => ({ cmd: "npx one dev", env: { ONE_PORT: String(p) } })
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
name: "uniswap",
|
|
578
|
+
label: "Uniswap",
|
|
579
|
+
dir: UNISWAP_APP_DIR,
|
|
580
|
+
preferredPort: 8085,
|
|
581
|
+
framework: "expo",
|
|
582
|
+
prepare: () => {
|
|
583
|
+
ensureUniswapDemoEnvLocal();
|
|
584
|
+
ensureUniswapForceUpgradePatched();
|
|
585
|
+
},
|
|
586
|
+
command: (p) => ({
|
|
587
|
+
cmd: `npx expo start --clear --port ${p}`,
|
|
588
|
+
// prefer the real local mobile env when present, otherwise fall back
|
|
589
|
+
// to Uniswap's checked-in public web RPC settings so demo boots cleanly.
|
|
590
|
+
env: resolveUniswapDemoEnv()
|
|
701
591
|
})
|
|
702
|
-
}
|
|
703
|
-
],
|
|
704
|
-
command: (p) => ({
|
|
705
|
-
cmd: `fnm exec --using=20.20.0 npx rock start --port ${p} --no-interactive`,
|
|
706
|
-
env: EXPENSIFY_NATIVE_PROXY_ENV
|
|
707
|
-
})
|
|
708
|
-
},
|
|
709
|
-
{
|
|
710
|
-
name: "artsy",
|
|
711
|
-
label: "Artsy",
|
|
712
|
-
dir: ARTSY_DIR,
|
|
713
|
-
preferredPort: 8088,
|
|
714
|
-
framework: "expo",
|
|
715
|
-
runtimeConfig: resolveArtsyRuntimeConfig(),
|
|
716
|
-
prepare: () => {
|
|
717
|
-
ensureArtsySetup();
|
|
718
|
-
},
|
|
719
|
-
command: (p) => ({
|
|
720
|
-
// eigen's `yarn start` wraps `react-native start` with a relay watcher
|
|
721
|
-
// via concurrently; for the demo we run relay once in prepare and
|
|
722
|
-
// invoke the metro server directly so --port is respected.
|
|
723
|
-
cmd: `npx react-native start --port ${p}`
|
|
724
|
-
}),
|
|
725
|
-
credentials: {
|
|
726
|
-
envVars: ["SOOTSIM_ARTSY_EMAIL", "SOOTSIM_ARTSY_PASSWORD"],
|
|
727
|
-
note: "auto-login reuses Artsy\u2019s built-in Maestro launch-arguments hook"
|
|
728
|
-
}
|
|
729
|
-
},
|
|
730
|
-
{
|
|
731
|
-
name: "rainbow",
|
|
732
|
-
label: "Rainbow",
|
|
733
|
-
dir: RAINBOW_DIR,
|
|
734
|
-
preferredPort: 8089,
|
|
735
|
-
framework: "rock",
|
|
736
|
-
sidecars: [
|
|
592
|
+
},
|
|
737
593
|
{
|
|
738
|
-
name: "
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
594
|
+
name: "takeout",
|
|
595
|
+
label: "Takeout",
|
|
596
|
+
dir: (0, import_node_path.join)(HOME, "takeout"),
|
|
597
|
+
preferredPort: 8086,
|
|
598
|
+
framework: "one",
|
|
599
|
+
// takeout needs more than Metro for the demo to actually work: better-auth
|
|
600
|
+
// (login), zero-cache (sync), and a postgres for both. `bun lite` brings
|
|
601
|
+
// up the orez-backed stack (PG + zero + s3 in one binary) plus the One
|
|
602
|
+
// dev server. takeout's env system shifts every port (web, pg, zero,
|
|
603
|
+
// minio) uniformly by PORT_OFFSET, so we derive offset = port - 8081
|
|
604
|
+
// (the base web port) to keep all backend ports clear of the default
|
|
605
|
+
// dev stack while pinning One to the demo slot. OREZ_DATA_DIR is isolated
|
|
606
|
+
// to a per-demo path so we don't fight a soot dev orez that may already
|
|
607
|
+
// be holding pglite locks on ~/takeout/.orez (soot can attach takeout as
|
|
608
|
+
// a project and spin up its own orez against the same data dir).
|
|
609
|
+
readyTimeoutMs: 24e4,
|
|
610
|
+
managedPorts: (p) => {
|
|
611
|
+
const offset = p - 8081;
|
|
612
|
+
return [5433 + offset, 4848 + offset, 9200 + offset];
|
|
613
|
+
},
|
|
614
|
+
command: (p) => ({
|
|
615
|
+
cmd: "bun lite:demo",
|
|
743
616
|
env: {
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
617
|
+
TAKEOUT_ENV_MODE: "development",
|
|
618
|
+
PORT_OFFSET: String(p - 8081),
|
|
619
|
+
OREZ_DATA_DIR: `${HOME}/.cache/sootsim-demo/takeout-orez`,
|
|
620
|
+
VITE_DEMO_MODE: "1",
|
|
621
|
+
ZERO_APP_ID: "takeout",
|
|
622
|
+
ZERO_APP_PUBLICATIONS: "zero_takeout",
|
|
623
|
+
ZERO_CVR_MAX_CONNS: "4",
|
|
624
|
+
ZERO_NUM_SYNC_WORKERS: "2",
|
|
625
|
+
ZERO_UPSTREAM_MAX_CONNS: "8"
|
|
747
626
|
}
|
|
748
627
|
})
|
|
749
|
-
}
|
|
750
|
-
],
|
|
751
|
-
prepare: () => {
|
|
752
|
-
ensureRainbowSetup();
|
|
753
|
-
},
|
|
754
|
-
command: (p) => ({
|
|
755
|
-
cmd: `fnm exec --using=22 yarn start --port ${p} --reset-cache`,
|
|
756
|
-
env: resolveRainbowDemoEnv()
|
|
757
|
-
}),
|
|
758
|
-
credentials: {
|
|
759
|
-
envVars: ["RAINBOW_TEST_WALLET"],
|
|
760
|
-
optionalEnvVars: [
|
|
761
|
-
"RAINBOW_WALLETCONNECT_PROJECT_ID",
|
|
762
|
-
"WC_PROJECT_ID",
|
|
763
|
-
"IMGIX_DOMAIN",
|
|
764
|
-
"IMGIX_TOKEN"
|
|
765
|
-
],
|
|
766
|
-
note: "launcher supplies demo encryption, public mainnet RPC, and a placeholder WalletConnect project id; use only a public throwaway mnemonic for RAINBOW_TEST_WALLET"
|
|
767
|
-
}
|
|
768
|
-
},
|
|
769
|
-
{
|
|
770
|
-
name: "rocket-chat",
|
|
771
|
-
label: "Rocket.Chat",
|
|
772
|
-
dir: (0, import_node_path.join)(HOME, "github/Rocket.Chat.ReactNative"),
|
|
773
|
-
preferredPort: 8093,
|
|
774
|
-
framework: "expo",
|
|
775
|
-
command: (p) => ({
|
|
776
|
-
cmd: `npx react-native start --port ${p}`,
|
|
777
|
-
env: { RUNNING_E2E_TESTS: "true" }
|
|
778
|
-
}),
|
|
779
|
-
credentials: {
|
|
780
|
-
envVars: [
|
|
781
|
-
"ROCKET_CHAT_DEMO_SERVER",
|
|
782
|
-
"ROCKET_CHAT_DEMO_USERNAME",
|
|
783
|
-
"ROCKET_CHAT_DEMO_PASSWORD"
|
|
784
|
-
],
|
|
785
|
-
known: { SERVER: "https://mobile.qa.rocket.chat" },
|
|
786
|
-
note: "use packages/sootsim-engine/scripts/rocket-chat-demo-auth.ts to create/login a disposable QA user and print the rocketchat://auth deep link"
|
|
787
|
-
}
|
|
788
|
-
},
|
|
789
|
-
{
|
|
790
|
-
name: "mattermost",
|
|
791
|
-
label: "Mattermost",
|
|
792
|
-
dir: MATTERMOST_DIR,
|
|
793
|
-
preferredPort: 8090,
|
|
794
|
-
framework: "expo",
|
|
795
|
-
sidecars: [
|
|
628
|
+
},
|
|
796
629
|
{
|
|
797
|
-
name: "
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
630
|
+
name: "expensify",
|
|
631
|
+
label: "Expensify",
|
|
632
|
+
dir: (0, import_node_path.join)(HOME, "github/expensify"),
|
|
633
|
+
preferredPort: 8087,
|
|
634
|
+
framework: "rock",
|
|
635
|
+
runtimeConfig: {
|
|
636
|
+
env: EXPENSIFY_NATIVE_PROXY_ENV
|
|
637
|
+
},
|
|
638
|
+
sidecars: [
|
|
639
|
+
{
|
|
640
|
+
name: "web-proxy",
|
|
641
|
+
port: 9e3,
|
|
642
|
+
readyPath: "/api/Ping",
|
|
643
|
+
command: () => ({
|
|
644
|
+
cmd: `bun ${JSON.stringify(getExpensifyProxyScript())}`,
|
|
645
|
+
env: EXPENSIFY_NATIVE_PROXY_ENV
|
|
646
|
+
})
|
|
647
|
+
}
|
|
648
|
+
],
|
|
649
|
+
command: (p) => ({
|
|
650
|
+
cmd: `fnm exec --using=20.20.0 npx rock start --port ${p} --no-interactive`,
|
|
651
|
+
env: EXPENSIFY_NATIVE_PROXY_ENV
|
|
802
652
|
})
|
|
803
|
-
}
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
"
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
name: "artsy",
|
|
656
|
+
label: "Artsy",
|
|
657
|
+
dir: ARTSY_DIR,
|
|
658
|
+
preferredPort: 8088,
|
|
659
|
+
framework: "expo",
|
|
660
|
+
runtimeConfig: resolveArtsyRuntimeConfig(),
|
|
661
|
+
prepare: () => {
|
|
662
|
+
ensureArtsySetup();
|
|
663
|
+
},
|
|
664
|
+
command: (p) => ({
|
|
665
|
+
// eigen's `yarn start` wraps `react-native start` with a relay watcher
|
|
666
|
+
// via concurrently; for the demo we run relay once in prepare and
|
|
667
|
+
// invoke the metro server directly so --port is respected.
|
|
668
|
+
cmd: `npx react-native start --port ${p}`
|
|
669
|
+
}),
|
|
670
|
+
credentials: {
|
|
671
|
+
envVars: ["SOOTSIM_ARTSY_EMAIL", "SOOTSIM_ARTSY_PASSWORD"],
|
|
672
|
+
note: "auto-login reuses Artsy\u2019s built-in Maestro launch-arguments hook"
|
|
673
|
+
}
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
name: "rainbow",
|
|
677
|
+
label: "Rainbow",
|
|
678
|
+
dir: RAINBOW_DIR,
|
|
679
|
+
preferredPort: 8089,
|
|
680
|
+
framework: "rock",
|
|
681
|
+
sidecars: [
|
|
682
|
+
{
|
|
683
|
+
name: "metadata-proxy",
|
|
684
|
+
port: RAINBOW_METADATA_PROXY_PORT,
|
|
685
|
+
readyPath: "/health",
|
|
686
|
+
command: () => ({
|
|
687
|
+
cmd: `bun ${JSON.stringify(getRainbowMetadataProxyScript())}`,
|
|
688
|
+
env: {
|
|
689
|
+
PORT: String(RAINBOW_METADATA_PROXY_PORT),
|
|
690
|
+
RAINBOW_PUBLIC_RPC_URLS: JSON.stringify(RAINBOW_DEMO_PUBLIC_RPC_URLS),
|
|
691
|
+
RAINBOW_UPSTREAM_METADATA_BASE_URL: RAINBOW_METADATA_BASE_URL
|
|
692
|
+
}
|
|
693
|
+
})
|
|
838
694
|
}
|
|
695
|
+
],
|
|
696
|
+
prepare: () => {
|
|
697
|
+
ensureRainbowSetup();
|
|
698
|
+
},
|
|
699
|
+
command: (p) => ({
|
|
700
|
+
cmd: `fnm exec --using=22 yarn start --port ${p} --reset-cache`,
|
|
701
|
+
env: resolveRainbowDemoEnv()
|
|
702
|
+
}),
|
|
703
|
+
credentials: {
|
|
704
|
+
envVars: ["RAINBOW_TEST_WALLET"],
|
|
705
|
+
optionalEnvVars: [
|
|
706
|
+
"RAINBOW_WALLETCONNECT_PROJECT_ID",
|
|
707
|
+
"WC_PROJECT_ID",
|
|
708
|
+
"IMGIX_DOMAIN",
|
|
709
|
+
"IMGIX_TOKEN"
|
|
710
|
+
],
|
|
711
|
+
note: "launcher supplies demo encryption, public mainnet RPC, and a placeholder WalletConnect project id; use only a public throwaway mnemonic for RAINBOW_TEST_WALLET"
|
|
839
712
|
}
|
|
840
713
|
},
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
714
|
+
{
|
|
715
|
+
name: "rocket-chat",
|
|
716
|
+
label: "Rocket.Chat",
|
|
717
|
+
dir: (0, import_node_path.join)(HOME, "github/Rocket.Chat.ReactNative"),
|
|
718
|
+
preferredPort: 8093,
|
|
719
|
+
framework: "expo",
|
|
720
|
+
command: (p) => ({
|
|
721
|
+
cmd: `npx react-native start --port ${p}`,
|
|
722
|
+
env: { RUNNING_E2E_TESTS: "true" }
|
|
723
|
+
}),
|
|
724
|
+
credentials: {
|
|
725
|
+
envVars: [
|
|
726
|
+
"ROCKET_CHAT_DEMO_SERVER",
|
|
727
|
+
"ROCKET_CHAT_DEMO_USERNAME",
|
|
728
|
+
"ROCKET_CHAT_DEMO_PASSWORD"
|
|
729
|
+
],
|
|
730
|
+
known: { SERVER: "https://mobile.qa.rocket.chat" },
|
|
731
|
+
note: "use packages/sootsim-engine/scripts/rocket-chat-demo-auth.ts to create/login a disposable QA user and print the rocketchat://auth deep link"
|
|
732
|
+
}
|
|
857
733
|
},
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
734
|
+
{
|
|
735
|
+
name: "mattermost",
|
|
736
|
+
label: "Mattermost",
|
|
737
|
+
dir: MATTERMOST_DIR,
|
|
738
|
+
preferredPort: 8090,
|
|
739
|
+
framework: "expo",
|
|
740
|
+
sidecars: [
|
|
741
|
+
{
|
|
742
|
+
name: "preview-server",
|
|
743
|
+
port: 8065,
|
|
744
|
+
readyPath: "/api/v4/system/ping",
|
|
745
|
+
command: () => ({
|
|
746
|
+
cmd: `bun ${JSON.stringify(getMattermostPreviewServerScript())}`
|
|
747
|
+
})
|
|
748
|
+
}
|
|
749
|
+
],
|
|
750
|
+
runtimeConfig: {
|
|
751
|
+
modules: {
|
|
752
|
+
// mattermost patches react-native-keychain's JS entry in its own
|
|
753
|
+
// repo; run that package and provide only the native manager seam.
|
|
754
|
+
"react-native-keychain": false,
|
|
755
|
+
"dist/assets/config.json": {
|
|
756
|
+
inline: {
|
|
757
|
+
AuthUrlScheme: "mmauth://",
|
|
758
|
+
AuthUrlSchemeDev: "mmauthbeta://",
|
|
759
|
+
DefaultServerUrl: "http://localhost:8065",
|
|
760
|
+
DefaultServerName: "Mattermost Demo",
|
|
761
|
+
TestServerUrl: "http://localhost:8065",
|
|
762
|
+
AutoSelectServerUrl: true,
|
|
763
|
+
WebsiteURL: "https://mattermost.com",
|
|
764
|
+
ServerNoticeURL: "https://github.com/mattermost/mattermost-server/blob/master/NOTICE.txt",
|
|
765
|
+
MobileNoticeURL: "https://github.com/mattermost/mattermost-mobile/blob/master/NOTICE.txt",
|
|
766
|
+
RudderApiKey: "",
|
|
767
|
+
SentryEnabled: false,
|
|
768
|
+
SentryDsnIos: "",
|
|
769
|
+
SentryDsnAndroid: "",
|
|
770
|
+
SentryOptions: {
|
|
771
|
+
deactivateStacktraceMerging: true,
|
|
772
|
+
autoBreadcrumbs: {
|
|
773
|
+
xhr: false,
|
|
774
|
+
console: true
|
|
775
|
+
},
|
|
776
|
+
severityLevelFilter: ["fatal"]
|
|
777
|
+
},
|
|
778
|
+
ShowReview: false,
|
|
779
|
+
ShowOnboarding: false,
|
|
780
|
+
ExperimentalNormalizeMarkdownLinks: false,
|
|
781
|
+
CustomRequestHeaders: {},
|
|
782
|
+
CollectNetworkMetrics: false
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
},
|
|
786
|
+
nativeModules: {
|
|
787
|
+
RNKeychainManager: { file: getMattermostKeychainNativeModule() },
|
|
788
|
+
RNUtils: { file: getMattermostRNUtilsNativeModule() },
|
|
789
|
+
GenericClient: { file: getMattermostNetworkClientNativeModule() },
|
|
790
|
+
ApiClient: { file: getMattermostNetworkClientNativeModule() },
|
|
791
|
+
WebSocketClient: { file: getMattermostNetworkClientNativeModule() }
|
|
792
|
+
}
|
|
793
|
+
},
|
|
794
|
+
command: (p) => ({
|
|
795
|
+
cmd: `npx react-native start --host 127.0.0.1 --port ${p}`
|
|
796
|
+
}),
|
|
797
|
+
credentials: {
|
|
798
|
+
known: {
|
|
799
|
+
SERVER: "http://localhost:8065",
|
|
800
|
+
USERNAME: "demo",
|
|
801
|
+
PASSWORD: "DemoPassword1!"
|
|
802
|
+
},
|
|
803
|
+
note: "local mattermost-preview seeded through the real REST API; no signup or OTP needed"
|
|
804
|
+
}
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
name: "joplin",
|
|
808
|
+
label: "Joplin",
|
|
809
|
+
dir: JOPLIN_APP_DIR,
|
|
810
|
+
preferredPort: 8084,
|
|
811
|
+
framework: "expo",
|
|
812
|
+
// joplin is local-first: sync.target defaults to 0 ("None") and the
|
|
813
|
+
// mobile startup runs WelcomeUtils.install() on first launch, which
|
|
814
|
+
// seeds a "Welcome!" folder + welcome notes. no login or external
|
|
815
|
+
// credentials are needed for a usable demo — just boot it. tenant
|
|
816
|
+
// bedrock SQLite (via react-native-sqlite-storage stub) carries the
|
|
817
|
+
// seeded notes across reloads.
|
|
818
|
+
prepare: () => {
|
|
819
|
+
ensureJoplinWatchmanConfigs();
|
|
820
|
+
ensureJoplinBuilt();
|
|
821
|
+
},
|
|
822
|
+
command: (p) => ({
|
|
823
|
+
cmd: `npx expo start --port ${p}`,
|
|
824
|
+
env: { BROWSERSLIST_IGNORE_OLD_DATA: "true" }
|
|
825
|
+
}),
|
|
826
|
+
credentials: {
|
|
827
|
+
note: "no login required \u2014 sync.target=0 (None), seed via WelcomeUtils"
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
];
|
|
884
831
|
}
|
|
885
|
-
|
|
832
|
+
});
|
|
833
|
+
|
|
834
|
+
// src/host/bridge-host.ts
|
|
835
|
+
var bridge_host_exports = {};
|
|
836
|
+
__export(bridge_host_exports, {
|
|
837
|
+
SootSimBridgeHost: () => SootSimBridgeHost,
|
|
838
|
+
injectSharedConfigIntoHtml: () => injectSharedConfigIntoHtml
|
|
839
|
+
});
|
|
840
|
+
module.exports = __toCommonJS(bridge_host_exports);
|
|
841
|
+
var import_child_process4 = require("child_process");
|
|
842
|
+
var import_fs3 = __toESM(require("fs"), 1);
|
|
843
|
+
var import_http3 = require("http");
|
|
844
|
+
var import_path3 = __toESM(require("path"), 1);
|
|
845
|
+
var import_ws2 = require("ws");
|
|
846
|
+
|
|
847
|
+
// scripts/dev-server-scanner.ts
|
|
848
|
+
var import_child_process = require("child_process");
|
|
849
|
+
var import_http = __toESM(require("http"), 1);
|
|
850
|
+
var import_net = __toESM(require("net"), 1);
|
|
851
|
+
var import_util = require("util");
|
|
852
|
+
|
|
853
|
+
// src/config.ts
|
|
854
|
+
var SOOTSIM_CONFIG_QUERY_PARAM = "sootsimConfig";
|
|
855
|
+
function hasOwnKeys(value) {
|
|
856
|
+
return !!value && Object.keys(value).length > 0;
|
|
857
|
+
}
|
|
858
|
+
function hasSootSimConfig(config) {
|
|
859
|
+
if (!config) return false;
|
|
860
|
+
return hasOwnKeys(config.modules) || hasOwnKeys(config.turboModules) || hasOwnKeys(config.nativeModules) || hasOwnKeys(config.env) || hasOwnKeys(config.settings) || hasOwnKeys(config.initialState);
|
|
861
|
+
}
|
|
862
|
+
function applySootSimConfigToUrl(url, config) {
|
|
863
|
+
const parsed = new URL(url);
|
|
864
|
+
if (hasSootSimConfig(config)) {
|
|
865
|
+
parsed.searchParams.set(SOOTSIM_CONFIG_QUERY_PARAM, JSON.stringify(config));
|
|
866
|
+
} else {
|
|
867
|
+
parsed.searchParams.delete(SOOTSIM_CONFIG_QUERY_PARAM);
|
|
868
|
+
}
|
|
869
|
+
return parsed.toString();
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
// src/native-dev-bundle-url.ts
|
|
873
|
+
function isAbsoluteHttpUrl(url) {
|
|
874
|
+
return /^https?:\/\//i.test(url);
|
|
875
|
+
}
|
|
876
|
+
function isNativeDevBundlePath(pathname) {
|
|
877
|
+
return pathname.endsWith(".bundle");
|
|
878
|
+
}
|
|
879
|
+
function applyPreviewProdBundle(parsed) {
|
|
880
|
+
if (!process.env.SOOTSIM_PREVIEW_PROD_BUNDLE) return;
|
|
881
|
+
parsed.searchParams.set("dev", "false");
|
|
882
|
+
parsed.searchParams.set("minify", "true");
|
|
883
|
+
if (parsed.searchParams.has("hot")) parsed.searchParams.set("hot", "false");
|
|
884
|
+
}
|
|
885
|
+
function normalizeNativeDevBundleUrl(bundleUrl) {
|
|
886
|
+
try {
|
|
887
|
+
const isAbsolute = isAbsoluteHttpUrl(bundleUrl);
|
|
888
|
+
const parsed = new URL(bundleUrl, "http://soot.local");
|
|
889
|
+
parsed.pathname = parsed.pathname.replace(/\.\.bundle$/, ".bundle");
|
|
890
|
+
if (!isNativeDevBundlePath(parsed.pathname)) return bundleUrl;
|
|
891
|
+
parsed.searchParams.delete("transform.bytecode");
|
|
892
|
+
applyPreviewProdBundle(parsed);
|
|
893
|
+
if (isAbsolute) return parsed.toString();
|
|
894
|
+
return `${parsed.pathname}${parsed.search}${parsed.hash}`;
|
|
895
|
+
} catch {
|
|
896
|
+
return bundleUrl;
|
|
897
|
+
}
|
|
898
|
+
}
|
|
886
899
|
|
|
887
900
|
// scripts/dev-server-scanner.ts
|
|
901
|
+
init_demo_app_registry();
|
|
888
902
|
var execP = (0, import_util.promisify)(import_child_process.exec);
|
|
889
903
|
var TIMEOUT_MS = 250;
|
|
890
904
|
var MANIFEST_TIMEOUT_MS = 1500;
|
|
@@ -1956,7 +1970,7 @@ async function seedFromDemoAppRegistry() {
|
|
|
1956
1970
|
if (existing.length > 0) return;
|
|
1957
1971
|
let APPS2;
|
|
1958
1972
|
try {
|
|
1959
|
-
const mod = await
|
|
1973
|
+
const mod = await Promise.resolve().then(() => (init_demo_app_registry(), demo_app_registry_exports));
|
|
1960
1974
|
APPS2 = mod.APPS;
|
|
1961
1975
|
} catch (err) {
|
|
1962
1976
|
console.warn(
|