peachsim 0.1.527 → 0.1.570
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/README.md +26 -26
- package/cli/app-fonts.ts +1 -1
- package/cli/app-splash.ts +1 -1
- package/cli/bin.ts +1 -1
- package/cli/bridge-diagnostics.ts +1 -1
- package/cli/bridge-flow-runner.ts +57 -5
- package/cli/cloud-client.ts +273 -6
- package/cli/cloud-dispatch.ts +22 -2
- package/cli/cloud-session.ts +60 -4
- package/cli/cloud-test-tunnel.ts +354 -0
- package/cli/commands/box/bundle-plane.ts +2 -2
- package/cli/commands/box/checkout-plane.ts +1 -1
- package/cli/commands/box/rnx-command.ts +2 -2
- package/cli/commands/box/search-command.ts +2 -2
- package/cli/commands/box.ts +8 -8
- package/cli/commands/compat.ts +1 -1
- package/cli/commands/control.ts +22 -3
- package/cli/commands/detox.ts +1 -1
- package/cli/commands/device.ts +1 -1
- package/cli/commands/diagnose.ts +1 -1
- package/cli/commands/film.ts +1 -1
- package/cli/commands/flow.ts +60 -3
- package/cli/commands/inspect/actions.ts +1 -1
- package/cli/commands/inspect/core.ts +6 -7
- package/cli/commands/inspect/find.ts +2 -1
- package/cli/commands/inspect/resolve-target.ts +5 -3
- package/cli/commands/inspect/shared.ts +1 -1
- package/cli/commands/inspect/wait-event.ts +1 -1
- package/cli/commands/inspect/wait-selector.ts +15 -4
- package/cli/commands/inspect.ts +19 -14
- package/cli/commands/maestro.ts +464 -43
- package/cli/commands/permissions.ts +1 -1
- package/cli/commands/platform.ts +205 -8
- package/cli/commands/preview.ts +2 -2
- package/cli/commands/record.ts +2 -2
- package/cli/commands/report-issue.ts +2 -2
- package/cli/commands/screenshot-layers.ts +1 -1
- package/cli/commands/screenshot.ts +1 -1
- package/cli/commands/setup.ts +2 -2
- package/cli/commands/test.ts +440 -115
- package/cli/commands/three-mode.ts +1 -1
- package/cli/commands/upload.ts +5 -5
- package/cli/commands/what-happened.ts +1 -1
- package/cli/desktop-companion.ts +3 -3
- package/cli/drivers/playwright-sim-host.ts +2 -2
- package/cli/flow-file.ts +7 -0
- package/cli/flow-live-status.ts +65 -8
- package/cli/help-core.ts +3 -3
- package/cli/hidden-runtime-alias.ts +1 -1
- package/cli/maestro-report.ts +178 -0
- package/cli/main.ts +1 -1
- package/cli/outbound-endpoints.ts +185 -136
- package/cli/parse-args.ts +1 -1
- package/cli/registry.ts +1 -1
- package/cli/resolve-assets.ts +1 -1
- package/cli/run-registry.ts +8 -0
- package/cli/send-to-box.ts +4 -4
- package/cli/ws-bridge.ts +3 -5
- package/detox/expectations.ts +1 -1
- package/detox/gestures.ts +2 -2
- package/detox/index.ts +71 -29
- package/detox/jest-preset.cjs +3 -3
- package/detox/jest-setup-after-env.cjs +1 -1
- package/dist-lib/agent-daemon-client.cjs +2 -2
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +2 -2
- package/dist-lib/attached-projects.cjs +2 -2
- 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/bridge-contract-input.cjs +1 -1
- package/dist-lib/bridge-contract-input.mjs +1 -1
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/capture-contract.cjs +94 -3
- package/dist-lib/capture-contract.mjs +93 -3
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/cloud-contract.cjs +1 -1
- package/dist-lib/cloud-contract.mjs +1 -1
- package/dist-lib/cloud.cjs +2 -2
- package/dist-lib/cloud.mjs +2 -2
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +106 -25
- package/dist-lib/detox/jest-preset.cjs +3 -3
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +137 -61
- package/dist-lib/host/fetch-proxy-handler.cjs +28 -2
- package/dist-lib/host/fetch-proxy-overrides.cjs +33 -3
- package/dist-lib/host/fetch-proxy-overrides.mjs +30 -2
- package/dist-lib/host/replacement-module-handler.cjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +209 -16
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/menu.cjs +2 -2
- package/dist-lib/menu.mjs +2 -2
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +3 -3
- package/dist-lib/metro-production-bundle.mjs +3 -3
- package/dist-lib/metro.cjs +8 -8
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +2 -2
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +31 -15
- package/dist-lib/sdk.cjs +3 -2
- package/dist-lib/sdk.mjs +3 -2
- package/dist-lib/skills.cjs +362 -163
- package/dist-lib/swift-submit.cjs +1 -1
- package/dist-lib/swift-submit.mjs +1 -1
- package/dist-lib/swift.cjs +583 -16
- package/dist-lib/vite.cjs +29 -14
- package/package.json +9 -9
- package/scripts/dev-server-scanner.ts +41 -14
- package/scripts/optional-demo-registry.ts +3 -3
- package/skills/contrast/SKILL.md +9 -9
- package/skills/rnx-debug/SKILL.md +14 -4
- package/skills/rnx-perf/SKILL.md +5 -5
- package/skills/rnx-setup/SKILL.md +11 -11
- package/skills/rnx-test/SKILL.md +11 -11
- package/skills/rnx-visual/SKILL.md +6 -6
- package/src/agent-sessions.ts +3 -3
- package/src/attached-projects.ts +1 -1
- package/src/bridge-contract-input.ts +1 -1
- package/src/bridge-contract.ts +23 -5
- package/src/capture-contract.ts +145 -3
- package/src/config.ts +2 -2
- package/src/connect.ts +2 -2
- package/src/home-paths.ts +3 -3
- package/src/host/bridge-host.ts +2 -2
- package/src/host/fetch-proxy-handler.ts +4 -3
- package/src/host/fetch-proxy-overrides.ts +41 -0
- package/src/host/plane-host.ts +2 -2
- package/src/index.ts +3 -0
- package/src/metro-plugin.ts +4 -4
- package/src/metro-production-bundle.ts +2 -2
- package/src/native-seam-manifest.ts +6 -6
- package/src/public-brand.ts +1 -1
- package/src/rolldown-plugin-swift.ts +8 -5
- package/src/runtime-assets.ts +8 -6
- package/src/screenshots/frame-compose.ts +24 -56
- package/src/screenshots/org-deck.ts +1 -1
- package/src/screenshots/registry.ts +4 -4
- package/src/screenshots/schema.ts +1 -1
- package/src/sdk.ts +2 -2
- package/src/settings-bundle.ts +1 -1
- package/src/sim-client.ts +2 -4
- package/src/skills/builtin/compat-check.ts +1 -1
- package/src/vite-plugin-one.ts +1 -1
- package/src/vite-plugin-swift.ts +11 -6
- package/src/vite-plugin.ts +30 -17
- package/src/worklets-babel.ts +2 -2
|
@@ -133,6 +133,13 @@ export const OUTBOUND_ENDPOINTS: Record<string, OutboundEndpointDeclaration> = {
|
|
|
133
133
|
payload:
|
|
134
134
|
'the Metro JavaScript bundle selected by rnx ios --remote, then structured simulator commands and lifecycle requests',
|
|
135
135
|
},
|
|
136
|
+
tunnel_tool_download: {
|
|
137
|
+
category: 'explicit-user-action',
|
|
138
|
+
destination: 'https://github.com/cloudflare/cloudflared/releases/latest/download/',
|
|
139
|
+
preConsent: false,
|
|
140
|
+
payload:
|
|
141
|
+
'platform and architecture only, carried in the release asset name; fires only for rnx test --cloud with a live dev stack when no cloudflared binary is installed',
|
|
142
|
+
},
|
|
136
143
|
}
|
|
137
144
|
|
|
138
145
|
export interface OutboundCallDeclaration {
|
|
@@ -144,74 +151,97 @@ export interface OutboundCallDeclaration {
|
|
|
144
151
|
// a new fetch, websocket, node HTTP request, or TCP connection has no entry and
|
|
145
152
|
// fails the package test until its destination and consent behavior are declared.
|
|
146
153
|
export const DECLARED_OUTBOUND_CALLS: Record<string, OutboundCallDeclaration> = {
|
|
147
|
-
'packages/
|
|
154
|
+
'packages/peachsim/cli/cloud-client.ts :: fetch :: `${apiOrigin}/v1/boxes`': {
|
|
148
155
|
category: 'rnx_cloud_sim',
|
|
149
156
|
count: 1,
|
|
150
157
|
},
|
|
151
|
-
'packages/
|
|
152
|
-
{ category: 'rnx_cloud_sim', count: 1 },
|
|
153
|
-
// closing a nano-box simulator deletes its box; the local names changed
|
|
154
|
-
// with the close but the destination did not.
|
|
155
|
-
'packages/sootsim/cli/cloud-client.ts :: fetch :: `${session.apiOrigin}/v1/boxes/${encodeURIComponent(boxId)}`':
|
|
158
|
+
'packages/peachsim/cli/cloud-client.ts :: fetch :: `${session.apiOrigin}/v1/sims/${encodeURIComponent()}/claim`':
|
|
156
159
|
{ category: 'rnx_cloud_sim', count: 1 },
|
|
160
|
+
// two call sites delete a box by id: closing a nano-box simulator, and
|
|
161
|
+
// closing a box from a session that is not itself the box. one destination,
|
|
162
|
+
// so one declaration.
|
|
163
|
+
'packages/peachsim/cli/cloud-client.ts :: fetch :: `${session.apiOrigin}/v1/boxes/${encodeURIComponent()}`':
|
|
164
|
+
{ category: 'rnx_cloud_sim', count: 2 },
|
|
157
165
|
// closing an instance simulator deletes it by its own id with its own token.
|
|
158
|
-
'packages/
|
|
166
|
+
'packages/peachsim/cli/cloud-client.ts :: fetch :: `${session.apiOrigin}/v1/sims/${encodeURIComponent()}`':
|
|
167
|
+
{ category: 'rnx_cloud_sim', count: 1 },
|
|
168
|
+
// the box api mirrors the sim api for a micro box: the same destination and
|
|
169
|
+
// the same box token, reached through the session rather than a loose id.
|
|
170
|
+
// driving a box sends each command to its own box.
|
|
171
|
+
'packages/peachsim/cli/cloud-client.ts :: fetch :: `${this.session.apiOrigin}/v1/boxes/${encodeURIComponent()}/commands`':
|
|
172
|
+
{ category: 'rnx_cloud_sim', count: 1 },
|
|
173
|
+
// stopping a box leaves it allocated, unlike the delete above.
|
|
174
|
+
'packages/peachsim/cli/cloud-client.ts :: fetch :: `${session.apiOrigin}/v1/boxes/${encodeURIComponent()}/stop`':
|
|
175
|
+
{ category: 'rnx_cloud_sim', count: 1 },
|
|
176
|
+
// the display grant is polled until the box hands one back; the body is
|
|
177
|
+
// empty, so the request carries no project or app data.
|
|
178
|
+
'packages/peachsim/cli/cloud-client.ts :: fetch :: `${options.apiOrigin}/v1/boxes/${encodeURIComponent()}/display-grant`':
|
|
159
179
|
{ category: 'rnx_cloud_sim', count: 1 },
|
|
160
180
|
// `rnx remote` creates through the instance api and lists what it made.
|
|
161
181
|
// the create carries labels and wait=true in the query; the list filters
|
|
162
182
|
// by the remote label.
|
|
163
|
-
'packages/
|
|
164
|
-
category: 'rnx_cloud_sim',
|
|
165
|
-
count: 1,
|
|
166
|
-
},
|
|
167
|
-
'packages/sootsim/cli/cloud-client.ts :: fetch :: `${apiOrigin}/v1/sims?${selector}`': {
|
|
183
|
+
'packages/peachsim/cli/cloud-client.ts :: fetch :: `${apiOrigin}/v1/sims?${query}`': {
|
|
168
184
|
category: 'rnx_cloud_sim',
|
|
169
185
|
count: 1,
|
|
170
186
|
},
|
|
187
|
+
'packages/peachsim/cli/cloud-client.ts :: fetch :: `${apiOrigin}/v1/sims?${selector}`':
|
|
188
|
+
{
|
|
189
|
+
category: 'rnx_cloud_sim',
|
|
190
|
+
count: 1,
|
|
191
|
+
},
|
|
171
192
|
// rereading one simulator and deleting one by id share the route: the
|
|
172
193
|
// reattach probe reads with either credential and `rnx remote stop`
|
|
173
194
|
// deletes with the account credential.
|
|
174
|
-
'packages/
|
|
195
|
+
'packages/peachsim/cli/cloud-client.ts :: fetch :: `${apiOrigin}/v1/sims/${encodeURIComponent()}`':
|
|
175
196
|
{ category: 'rnx_cloud_sim', count: 2 },
|
|
176
|
-
'packages/
|
|
197
|
+
'packages/peachsim/cli/cloud-client.ts :: fetch :: `${this.session.apiOrigin}/v1/sims/${encodeURIComponent()}/commands`':
|
|
177
198
|
{ category: 'rnx_cloud_sim', count: 1 },
|
|
178
|
-
'packages/
|
|
199
|
+
'packages/peachsim/cli/cloud-client.ts :: fetch :: bundleUrl': {
|
|
179
200
|
category: 'guest_app_network',
|
|
180
201
|
count: 1,
|
|
181
202
|
},
|
|
182
|
-
|
|
203
|
+
// submitting a cloud test job (POST) and cancelling one (DELETE) share
|
|
204
|
+
// the jobs route: one destination, two call sites.
|
|
205
|
+
'packages/peachsim/cli/commands/test.ts :: fetch :: endpoint': {
|
|
183
206
|
category: 'contrast_user_action',
|
|
184
|
-
count:
|
|
207
|
+
count: 3,
|
|
185
208
|
},
|
|
186
|
-
'packages/
|
|
209
|
+
'packages/peachsim/cli/commands/test.ts :: fetch :: pollUrl': {
|
|
187
210
|
category: 'contrast_user_action',
|
|
188
211
|
count: 1,
|
|
189
212
|
},
|
|
213
|
+
// the live-dev-stack publisher fetches a cloudflared binary only when none
|
|
214
|
+
// is installed; the token proxy below it forwards to the user's own
|
|
215
|
+
// loopback dev server and sidecars, never anywhere remote.
|
|
216
|
+
'packages/peachsim/cli/cloud-test-tunnel.ts :: fetch :: `https://github.com/cloudflare/cloudflared/releases/latest/download/${asset}`':
|
|
217
|
+
{ category: 'tunnel_tool_download', count: 1 },
|
|
218
|
+
"packages/peachsim/cli/cloud-test-tunnel.ts :: node-request :: { host: '127.0.0.1', port: selectedPort, path: req.url, method: req.method, headers, }":
|
|
219
|
+
{ category: 'local_development', count: 1 },
|
|
190
220
|
// compiling a project's .swift sources needs a swift toolchain, so the
|
|
191
221
|
// bundler posts them to the app's own /api/swift-compile. it only fires with
|
|
192
222
|
// a compile credential and only for a project that has .swift sources.
|
|
193
|
-
'packages/
|
|
223
|
+
'packages/peachsim/src/swift-submit.ts :: fetch :: url': {
|
|
194
224
|
category: 'swift_compile',
|
|
195
225
|
count: 1,
|
|
196
226
|
},
|
|
197
|
-
'packages/
|
|
227
|
+
'packages/peachsim/src/cloud.ts :: fetch :: url': {
|
|
198
228
|
category: 'rnx_cloud_sim',
|
|
199
229
|
count: 1,
|
|
200
230
|
},
|
|
201
231
|
// maestro's flow `http` API. the url is whatever the flow author wrote, and
|
|
202
232
|
// it is fetched from a child process because that API is synchronous.
|
|
203
|
-
'packages/
|
|
233
|
+
'packages/peachsim/cli/internal-child.ts :: fetch :: request.url': {
|
|
204
234
|
category: 'guest_app_network',
|
|
205
235
|
count: 1,
|
|
206
236
|
},
|
|
207
237
|
// `rnx box create` uploads the checkout to the box service and then talks to
|
|
208
238
|
// it. the destination is whatever the user named; there is no default.
|
|
209
|
-
'packages/
|
|
239
|
+
'packages/peach-cloud-box/src/client.ts :: fetch :: endpointOf(base, name, verb, search)':
|
|
210
240
|
{
|
|
211
241
|
category: 'rnx_cloud_box',
|
|
212
242
|
count: 1,
|
|
213
243
|
},
|
|
214
|
-
'packages/
|
|
244
|
+
'packages/peach-cloud-box/src/client.ts :: websocket :: url': {
|
|
215
245
|
category: 'rnx_cloud_box',
|
|
216
246
|
count: 1,
|
|
217
247
|
},
|
|
@@ -219,38 +249,43 @@ export const DECLARED_OUTBOUND_CALLS: Record<string, OutboundCallDeclaration> =
|
|
|
219
249
|
// the binding routes on path alone and ignores the host, so `browser.invalid`
|
|
220
250
|
// is a placeholder that exists only so URL can parse the search parameters.
|
|
221
251
|
// nothing leaves Cloudflare and no project content is sent.
|
|
222
|
-
'packages/
|
|
252
|
+
'packages/peach-cloud-box/src/browser-run.ts :: fetch :: sessionEndpoint(undefined, { keepAliveMs, includeTargets: true })':
|
|
223
253
|
{ category: 'rnx_cloud_box', count: 1 },
|
|
224
|
-
'packages/
|
|
254
|
+
'packages/peach-cloud-box/src/browser-run.ts :: fetch :: `https://browser.invalid/v1/devtools/browser/${sessionId}/json/list`':
|
|
225
255
|
{ category: 'rnx_cloud_box', count: 1 },
|
|
226
256
|
// twice: closing the session, and the CDP websocket upgrade that navigates a
|
|
227
257
|
// target. both address the same session over the same binding.
|
|
228
|
-
'packages/
|
|
258
|
+
'packages/peach-cloud-box/src/browser-run.ts :: fetch :: `https://browser.invalid/v1/devtools/browser/${sessionId}`':
|
|
229
259
|
{ category: 'rnx_cloud_box', count: 2 },
|
|
230
260
|
// the account's own session meter: starting, listing and heartbeating the
|
|
231
261
|
// session a cloud box is billed against. no project content.
|
|
232
|
-
"packages/
|
|
262
|
+
"packages/peach-cloud-box/src/client.ts :: fetch :: `${options.apiOrigin.replace(/\\/+$/, '')}/api/v1/rnx/sessions${ options.accountId ? `?accountId=${encodeURIComponent()}` : '' }`":
|
|
233
263
|
{ category: 'contrast_user_action', count: 1 },
|
|
234
|
-
'packages/
|
|
264
|
+
'packages/peach-cloud-box/src/client.ts :: fetch :: url': {
|
|
235
265
|
category: 'contrast_user_action',
|
|
236
266
|
count: 1,
|
|
237
267
|
},
|
|
238
268
|
// `rnx box connect` asks the account service which box that ID or name is
|
|
239
269
|
// and for the box's own token. the account is the only thing that knows, so
|
|
240
270
|
// this is the one call that turns a name into an authorized Box reference.
|
|
241
|
-
'packages/
|
|
271
|
+
'packages/peach-cloud-box/src/client.ts :: fetch :: connectUrl': {
|
|
242
272
|
category: 'contrast_user_action',
|
|
243
273
|
count: 1,
|
|
244
274
|
},
|
|
245
|
-
"packages/
|
|
275
|
+
"packages/peach-cloud-box/src/box-do.ts :: fetch :: `${origin}/api/v1/rnx/sessions${serviceAuthorized ? '/internal' : ''}`":
|
|
246
276
|
{ category: 'contrast_user_action', count: 1 },
|
|
247
|
-
"packages/
|
|
277
|
+
"packages/peach-cloud-box/src/box-do.ts :: fetch :: `${origin}/api/v1/rnx/sessions/${ serviceAuthority ? 'internal/' : '' }${encodeURIComponent()}${ accountId ? `?accountId=${encodeURIComponent()}` : '' }`":
|
|
248
278
|
{ category: 'contrast_user_action', count: 1 },
|
|
249
|
-
'packages/
|
|
279
|
+
'packages/peach-cloud-box/src/box-do.ts :: fetch :: `${origin}/api/v1/rnx/sessions/internal/${encodeURIComponent()}`':
|
|
280
|
+
{ category: 'contrast_user_action', count: 1 },
|
|
281
|
+
// stop and delete authorize the caller against the account before any
|
|
282
|
+
// teardown. the account service owns the verdict on a key, its scope and the
|
|
283
|
+
// account it names; no project content is sent.
|
|
284
|
+
'packages/peach-cloud-box/src/box-do.ts :: fetch :: `${origin}/api/v1/rnx/sessions?accountId=${encodeURIComponent()}&kind=box&status=running`':
|
|
250
285
|
{ category: 'contrast_user_action', count: 1 },
|
|
251
286
|
// the Cloudflare Worker forwards the already-authenticated request to the
|
|
252
287
|
// selected Durable Object in the same service.
|
|
253
|
-
'packages/
|
|
288
|
+
'packages/peach-cloud-box/src/worker.ts :: fetch :: request': {
|
|
254
289
|
category: 'same_origin_runtime',
|
|
255
290
|
count: 1,
|
|
256
291
|
},
|
|
@@ -258,7 +293,7 @@ export const DECLARED_OUTBOUND_CALLS: Record<string, OutboundCallDeclaration> =
|
|
|
258
293
|
// this one refuses to guess a port, so it cannot reach anything but a bridge
|
|
259
294
|
// the user's own session is running; see the note on ws-bridge.ts below
|
|
260
295
|
// about splitting these if bridgeWsUrl ever returns a remote endpoint.
|
|
261
|
-
'packages/
|
|
296
|
+
'packages/peachsim/cli/commands/box/plane-share.ts :: websocket :: bridgeWsUrl(port)': {
|
|
262
297
|
category: 'local_development',
|
|
263
298
|
count: 2,
|
|
264
299
|
},
|
|
@@ -266,267 +301,274 @@ export const DECLARED_OUTBOUND_CALLS: Record<string, OutboundCallDeclaration> =
|
|
|
266
301
|
category: 'runtime_delivery',
|
|
267
302
|
count: 2,
|
|
268
303
|
},
|
|
269
|
-
"packages/
|
|
304
|
+
"packages/peachsim/scripts/demo-app-registry.ts :: fetch :: 'http://localhost:1986/'": {
|
|
270
305
|
category: 'local_development',
|
|
271
306
|
count: 1,
|
|
272
307
|
},
|
|
273
|
-
'packages/
|
|
308
|
+
'packages/peachsim/scripts/dev-server-scanner.ts :: http.request :: { hostname, port, path, method, headers }':
|
|
274
309
|
{
|
|
275
310
|
category: 'local_development',
|
|
276
311
|
count: 1,
|
|
277
312
|
},
|
|
278
|
-
'packages/
|
|
313
|
+
'packages/peachsim/scripts/dev-server-scanner.ts :: sock.connect :: port': {
|
|
279
314
|
category: 'local_development',
|
|
280
315
|
count: 1,
|
|
281
316
|
},
|
|
282
|
-
'packages/
|
|
317
|
+
'packages/peachsim/scripts/smoke-cli-binary.ts :: fetch :: `http://127.0.0.1:${port}/healthz`':
|
|
283
318
|
{ category: 'local_development', count: 1 },
|
|
284
319
|
// the binary smoke's replacement-module probe against its own loopback server
|
|
285
|
-
'packages/
|
|
320
|
+
'packages/peachsim/scripts/smoke-cli-binary.ts :: fetch :: url': {
|
|
286
321
|
category: 'local_development',
|
|
287
322
|
count: 1,
|
|
288
323
|
},
|
|
289
|
-
'packages/
|
|
324
|
+
'packages/peach-engine/src/auth/openLogin.ts :: fetch :: `${CONTRAST_ORIGIN}/api/dev-login`':
|
|
290
325
|
{ category: 'contrast_user_action', count: 1 },
|
|
291
|
-
'packages/
|
|
326
|
+
'packages/peach-engine/src/auth/shared-session.ts :: fetch :: `${CONTRAST_ORIGIN}/api/auth/me`':
|
|
292
327
|
{ category: 'contrast_user_action', count: 1 },
|
|
293
|
-
'packages/
|
|
328
|
+
'packages/peach-engine/src/auth/shared-session.ts :: fetch :: `${CONTRAST_ORIGIN}/api/auth/sign-out`':
|
|
294
329
|
{ category: 'contrast_user_action', count: 1 },
|
|
295
|
-
"packages/
|
|
330
|
+
"packages/peach-engine/src/billing/client.ts :: fetch :: apiUrl('/api/sootsim/billing/checkout')":
|
|
296
331
|
{ category: 'contrast_user_action', count: 1 },
|
|
297
|
-
'packages/
|
|
332
|
+
'packages/peach-engine/src/billing/client.ts :: fetch :: apiUrl(path)': {
|
|
298
333
|
category: 'contrast_user_action',
|
|
299
334
|
count: 3,
|
|
300
335
|
},
|
|
301
|
-
'packages/
|
|
336
|
+
'packages/peach-engine/src/demo/demo-share-register.ts :: fetch :: shareUrl': {
|
|
302
337
|
category: 'guest_app_network',
|
|
303
338
|
count: 1,
|
|
304
339
|
},
|
|
305
|
-
'packages/
|
|
340
|
+
'packages/peach-engine/src/engine/android-emoji-font.ts :: fetch :: url': {
|
|
306
341
|
category: 'same_origin_runtime',
|
|
307
342
|
count: 1,
|
|
308
343
|
},
|
|
309
|
-
'packages/
|
|
344
|
+
'packages/peach-engine/src/engine/app-font-loader.ts :: fetch :: manifestFetchUrl(origin)':
|
|
310
345
|
{ category: 'local_development', count: 1 },
|
|
311
|
-
'packages/
|
|
346
|
+
'packages/peach-engine/src/engine/app-font-registry.ts :: fetch :: resolvedUrl': {
|
|
312
347
|
category: 'guest_app_network',
|
|
313
348
|
count: 1,
|
|
314
349
|
},
|
|
315
|
-
'packages/
|
|
350
|
+
'packages/peach-engine/src/engine/config-plugin-splash-loader.ts :: fetch :: manifestFetchUrl(origin)':
|
|
316
351
|
{ category: 'local_development', count: 1 },
|
|
317
|
-
'packages/
|
|
352
|
+
'packages/peach-engine/src/engine/emoji-metrics-font-loader.ts :: fetch :: attemptedBundledUrl':
|
|
318
353
|
{ category: 'same_origin_runtime', count: 1 },
|
|
319
|
-
'packages/
|
|
354
|
+
'packages/peach-engine/src/engine/expo-app-config.ts :: fetch :: manifestFetchUrl(origin)':
|
|
320
355
|
{ category: 'local_development', count: 1 },
|
|
321
|
-
'packages/
|
|
356
|
+
'packages/peach-engine/src/engine/image-loader.ts :: fetch :: resolveImageFetchUri(uri)':
|
|
322
357
|
{ category: 'guest_app_network', count: 1 },
|
|
323
|
-
'packages/
|
|
358
|
+
'packages/peach-engine/src/engine/language-font-loader.ts :: fetch :: url': {
|
|
324
359
|
category: 'same_origin_runtime',
|
|
325
360
|
count: 1,
|
|
326
361
|
},
|
|
327
|
-
'packages/
|
|
362
|
+
'packages/peach-engine/src/engine/lottie-runtime.ts :: fetch :: descriptor.value': {
|
|
328
363
|
category: 'guest_app_network',
|
|
329
364
|
count: 2,
|
|
330
365
|
},
|
|
331
|
-
'packages/
|
|
366
|
+
'packages/peach-engine/src/android/material-symbol-catalog.ts :: fetch :: `${baseUrl}${asset}.json`':
|
|
332
367
|
{
|
|
333
368
|
category: 'same_origin_runtime',
|
|
334
369
|
count: 1,
|
|
335
370
|
},
|
|
336
|
-
'packages/
|
|
371
|
+
'packages/peach-engine/src/ios/sf-symbol-catalog.ts :: fetch :: `${catalogBaseUrl}${asset}.json`':
|
|
372
|
+
{
|
|
373
|
+
category: 'same_origin_runtime',
|
|
374
|
+
count: 1,
|
|
375
|
+
},
|
|
376
|
+
'packages/peach-engine/src/engine/system-font-extras.ts :: fetch :: url': {
|
|
337
377
|
category: 'same_origin_runtime',
|
|
338
378
|
count: 1,
|
|
339
379
|
},
|
|
340
|
-
'packages/
|
|
380
|
+
'packages/peach-engine/src/ExternalApp.tsx :: fetch :: getBundleProxyUrl(devServerUrl)':
|
|
341
381
|
{ category: 'guest_app_network', count: 1 },
|
|
342
|
-
'packages/
|
|
382
|
+
'packages/peach-engine/src/ExternalApp.tsx :: fetch :: requestUrl': {
|
|
343
383
|
category: 'guest_app_network',
|
|
344
384
|
count: 1,
|
|
345
385
|
},
|
|
346
|
-
'packages/
|
|
386
|
+
'packages/peach-engine/src-electron/tray.ts :: client.get :: parsed': {
|
|
347
387
|
category: 'guest_app_network',
|
|
348
388
|
count: 1,
|
|
349
389
|
},
|
|
350
|
-
'packages/
|
|
390
|
+
'packages/peach-engine/src/mcp/ws-bridge.ts :: fetch :: bridgeHealthUrl': {
|
|
351
391
|
category: 'local_development',
|
|
352
392
|
count: 1,
|
|
353
393
|
},
|
|
354
|
-
'packages/
|
|
394
|
+
'packages/peach-engine/src/mcp/ws-bridge.ts :: websocket :: resolveSootsimBridgeWebSocketUrl({ bridgePort, href: window.location.href, })':
|
|
355
395
|
{ category: 'local_development', count: 1 },
|
|
356
|
-
'packages/
|
|
396
|
+
'packages/peach-engine/src/remote-stream/browser-tenant-proxy.ts :: websocket :: this.config.url':
|
|
357
397
|
{ category: 'remote_display_server', count: 1 },
|
|
358
|
-
'packages/
|
|
398
|
+
'packages/peach-engine/src/menu/menuActions.ts :: fetch :: screenshot': {
|
|
359
399
|
category: 'guest_app_network',
|
|
360
400
|
count: 1,
|
|
361
401
|
},
|
|
362
|
-
'packages/
|
|
402
|
+
'packages/peach-engine/src/preview/fetch-recorder.ts :: fetch :: absolute': {
|
|
363
403
|
category: 'guest_app_network',
|
|
364
404
|
count: 2,
|
|
365
405
|
},
|
|
366
406
|
// the path is a parameter so one uploader serves both callers: recordings use
|
|
367
407
|
// /api/preview/upload/{init,finalize} (the default) and `rnx preview` passes
|
|
368
408
|
// /api/v1/previews{,/finalize}. both are first-party contrast endpoints.
|
|
369
|
-
'packages/
|
|
409
|
+
'packages/peach-engine/src/preview/presigned-upload.ts :: fetch :: `${origin}${endpoints.finalize}`':
|
|
370
410
|
{ category: 'contrast_user_action', count: 1 },
|
|
371
|
-
'packages/
|
|
411
|
+
'packages/peach-engine/src/preview/presigned-upload.ts :: fetch :: `${origin}${endpoints.init}`':
|
|
372
412
|
{ category: 'contrast_user_action', count: 1 },
|
|
373
|
-
'packages/
|
|
413
|
+
'packages/peach-engine/src/preview/presigned-upload.ts :: fetch :: job.url': {
|
|
374
414
|
category: 'presigned_upload',
|
|
375
415
|
count: 1,
|
|
376
416
|
},
|
|
377
|
-
'packages/
|
|
417
|
+
'packages/peach-engine/src/preview/warm-bundle-cache.ts :: fetch :: url': {
|
|
378
418
|
category: 'guest_app_network',
|
|
379
419
|
count: 1,
|
|
380
420
|
},
|
|
381
|
-
"packages/
|
|
421
|
+
"packages/peach-engine/src/projects/projects-persistence.ts :: fetch :: '/__sootsim/shared-config'":
|
|
382
422
|
{ category: 'same_origin_runtime', count: 1 },
|
|
383
|
-
'packages/
|
|
423
|
+
'packages/peach-engine/src/react-native/index.ts :: fetch :: resource': {
|
|
384
424
|
category: 'guest_app_network',
|
|
385
425
|
count: 1,
|
|
386
426
|
},
|
|
387
|
-
'packages/
|
|
427
|
+
'packages/peach-engine/src/react-native/Keyboard.ts :: fetch :: url': {
|
|
388
428
|
category: 'guest_app_network',
|
|
389
429
|
count: 1,
|
|
390
430
|
},
|
|
391
|
-
'packages/
|
|
431
|
+
'packages/peach-engine/src/render-worker/canvaskit-shared.ts :: fetch :: fontUrl': {
|
|
392
432
|
category: 'same_origin_runtime',
|
|
393
433
|
count: 1,
|
|
394
434
|
},
|
|
395
|
-
'packages/
|
|
435
|
+
'packages/peach-engine/src/render-worker/canvaskit-shared.ts :: fetch :: pipelineCacheUrl':
|
|
396
436
|
{ category: 'same_origin_runtime', count: 1 },
|
|
397
|
-
'packages/
|
|
437
|
+
'packages/peach-engine/src/render-worker/canvaskit-shared.ts :: fetch :: wasmUrl': {
|
|
398
438
|
category: 'same_origin_runtime',
|
|
399
439
|
count: 1,
|
|
400
440
|
},
|
|
401
441
|
// the cpu simulator iframe document's dedicated worker loads the headless
|
|
402
442
|
// canvaskit wasm and the font and asset manifests from the page's own
|
|
403
443
|
// `/deps-native/engine-assets/` directory.
|
|
404
|
-
'packages/
|
|
444
|
+
'packages/peach-engine/src/headless/browser-tenant-worker.ts :: fetch :: new URL(name, assetBase).href':
|
|
405
445
|
{ category: 'same_origin_runtime', count: 1 },
|
|
406
446
|
// hashes its own delivered script to identify the engine to display clients.
|
|
407
|
-
'packages/
|
|
447
|
+
'packages/peach-engine/src/headless/browser-tenant-worker.ts :: fetch :: workerSourceUrl':
|
|
408
448
|
{ category: 'same_origin_runtime', count: 1 },
|
|
409
449
|
// the tenant build's built-in app chunk prefetch list and the chunk bodies
|
|
410
450
|
// it names, resolved against the worker chunk's own url.
|
|
411
|
-
'packages/
|
|
451
|
+
'packages/peach-engine/src/render-worker/app-in-worker.tsx :: fetch :: listUrl': {
|
|
412
452
|
category: 'same_origin_runtime',
|
|
413
453
|
count: 1,
|
|
414
454
|
},
|
|
415
|
-
'packages/
|
|
455
|
+
'packages/peach-engine/src/render-worker/app-in-worker.tsx :: fetch :: new URL(file, listUrl)':
|
|
416
456
|
{ category: 'same_origin_runtime', count: 1 },
|
|
417
|
-
'packages/
|
|
457
|
+
'packages/peach-engine/src/render-worker/host.ts :: fetch :: msg.fallbackUrl': {
|
|
418
458
|
category: 'guest_app_network',
|
|
419
459
|
count: 1,
|
|
420
460
|
},
|
|
421
|
-
'packages/
|
|
461
|
+
'packages/peach-engine/src/render-worker/video-host.ts :: fetch :: uri': {
|
|
422
462
|
category: 'guest_app_network',
|
|
423
463
|
count: 1,
|
|
424
464
|
},
|
|
425
|
-
'packages/
|
|
465
|
+
'packages/peach-engine/src/render-worker/worker-font-loader.ts :: fetch :: url': {
|
|
426
466
|
category: 'same_origin_runtime',
|
|
427
467
|
count: 1,
|
|
428
468
|
},
|
|
429
|
-
'packages/
|
|
469
|
+
'packages/peach-engine/src/render-worker/worker-handlers/lifecycle.ts :: fetch :: url':
|
|
430
470
|
{ category: 'guest_app_network', count: 1 },
|
|
431
|
-
'packages/
|
|
471
|
+
'packages/peach-engine/src/screenshots/capture-store.ts :: fetch :: cap.dataUrl': {
|
|
432
472
|
category: 'same_origin_runtime',
|
|
433
473
|
count: 1,
|
|
434
474
|
},
|
|
435
|
-
'packages/
|
|
475
|
+
'packages/peach-engine/src/menu/menuActions.ts :: fetch :: `http://127.0.0.1:${port}/__send-to-box`':
|
|
436
476
|
{ category: 'local_development', count: 1 },
|
|
437
|
-
"packages/
|
|
477
|
+
"packages/peach-engine/src/screenshots/capture-store.ts :: fetch :: captureApiUrl(ref, 'grid')":
|
|
438
478
|
{ category: 'contrast_user_action', count: 1 },
|
|
439
|
-
'packages/
|
|
479
|
+
'packages/peach-engine/src/screenshots/capture-store.ts :: fetch :: captureApiUrl(ref, variant)':
|
|
440
480
|
{ category: 'contrast_user_action', count: 1 },
|
|
441
|
-
'packages/
|
|
481
|
+
'packages/peach-engine/src/screenshots/capture-store.ts :: fetch :: captureApiUrl(ref)':
|
|
442
482
|
{ category: 'contrast_user_action', count: 1 },
|
|
443
|
-
"packages/
|
|
483
|
+
"packages/peach-engine/src/server-discovery.ts :: fetch :: '/__server-scan'": {
|
|
444
484
|
category: 'local_development',
|
|
445
485
|
count: 1,
|
|
446
486
|
},
|
|
447
|
-
'packages/
|
|
448
|
-
|
|
449
|
-
|
|
487
|
+
'packages/peach-engine/src/server-discovery.ts :: fetch :: `${gatewayOrigin}/__scan`': {
|
|
488
|
+
category: 'local_development',
|
|
489
|
+
count: 1,
|
|
490
|
+
},
|
|
491
|
+
"packages/peach-engine/src/settings/persistence.ts :: fetch :: '/__sootsim/shared-config'":
|
|
450
492
|
{ category: 'same_origin_runtime', count: 2 },
|
|
451
|
-
'packages/
|
|
493
|
+
'packages/peachsim/cli/app-fonts.ts :: fetch :: `${origin}/`': {
|
|
452
494
|
category: 'local_development',
|
|
453
495
|
count: 1,
|
|
454
496
|
},
|
|
455
|
-
'packages/
|
|
497
|
+
'packages/peachsim/cli/app-fonts.ts :: fetch :: url': {
|
|
456
498
|
category: 'local_development',
|
|
457
499
|
count: 1,
|
|
458
500
|
},
|
|
459
|
-
'packages/
|
|
501
|
+
'packages/peachsim/cli/app-splash.ts :: fetch :: url': {
|
|
460
502
|
category: 'local_development',
|
|
461
503
|
count: 1,
|
|
462
504
|
},
|
|
463
|
-
'packages/
|
|
505
|
+
'packages/peachsim/cli/commands/control.ts :: fetch :: imageUrl': {
|
|
464
506
|
category: 'local_development',
|
|
465
507
|
count: 1,
|
|
466
508
|
},
|
|
467
|
-
'packages/
|
|
509
|
+
'packages/peachsim/cli/commands/control.ts :: fetch :: spec.url': {
|
|
468
510
|
category: 'local_development',
|
|
469
511
|
count: 1,
|
|
470
512
|
},
|
|
471
|
-
'packages/
|
|
513
|
+
'packages/peachsim/cli/commands/control.ts :: websocket :: `ws://127.0.0.1:${port}`': {
|
|
472
514
|
category: 'local_development',
|
|
473
515
|
count: 1,
|
|
474
516
|
},
|
|
475
|
-
'packages/
|
|
517
|
+
'packages/peachsim/cli/commands/cpu-profile.ts :: fetch :: `http://localhost:${cdpPort}/json/list`':
|
|
476
518
|
{ category: 'local_development', count: 1 },
|
|
477
|
-
'packages/
|
|
519
|
+
'packages/peachsim/cli/commands/cpu-profile.ts :: websocket :: wsUrl': {
|
|
478
520
|
category: 'local_development',
|
|
479
521
|
count: 1,
|
|
480
522
|
},
|
|
481
|
-
'packages/
|
|
523
|
+
'packages/peachsim/cli/commands/install-desktop.ts :: fetch :: url': {
|
|
482
524
|
category: 'electron_download',
|
|
483
525
|
count: 1,
|
|
484
526
|
},
|
|
485
|
-
"packages/
|
|
527
|
+
"packages/peachsim/cli/commands/login.ts :: fetch :: `${origin.replace(/\\/$/, '')}/api/dev-login`":
|
|
486
528
|
{ category: 'local_development', count: 1 },
|
|
487
|
-
"packages/
|
|
529
|
+
"packages/peachsim/cli/commands/logout.ts :: fetch :: `${current.origin.replace(/\\/$/, '')}/api/auth/sign-out`":
|
|
488
530
|
{ category: 'contrast_user_action', count: 1 },
|
|
489
|
-
"packages/
|
|
531
|
+
"packages/peachsim/cli/commands/maestro-generate.ts :: fetch :: `${args.origin.replace(/\\/$/, '')}/api/llm`":
|
|
490
532
|
{ category: 'contrast_user_action', count: 1 },
|
|
491
|
-
'packages/
|
|
533
|
+
'packages/peachsim/cli/commands/report-issue.ts :: fetch :: url': {
|
|
492
534
|
category: 'contrast_user_action',
|
|
493
535
|
count: 1,
|
|
494
536
|
},
|
|
495
|
-
'packages/
|
|
537
|
+
'packages/peachsim/cli/commands/runtime.ts :: websocket :: `ws://127.0.0.1:${port}`': {
|
|
496
538
|
category: 'local_development',
|
|
497
539
|
count: 1,
|
|
498
540
|
},
|
|
499
|
-
'packages/
|
|
541
|
+
'packages/peachsim/cli/commands/screenshots-capture.ts :: fetch :: `${apiOrigin}/api/sootsim/screenshot-capture?ref=${encodeURIComponent()}&org=${encodeURIComponent()}`':
|
|
500
542
|
{ category: 'contrast_user_action', count: 1 },
|
|
501
|
-
'packages/
|
|
543
|
+
'packages/peachsim/cli/commands/screenshots-capture.ts :: fetch :: `${apiOrigin}/api/sootsim/screenshot-decks?org=${encodeURIComponent()}&repo=${encodeURIComponent()}`':
|
|
502
544
|
{ category: 'contrast_user_action', count: 1 },
|
|
503
|
-
'packages/
|
|
545
|
+
'packages/peachsim/cli/cli-update.ts :: fetch :: url': {
|
|
504
546
|
category: 'cli_delivery',
|
|
505
547
|
count: 1,
|
|
506
548
|
},
|
|
507
|
-
'packages/
|
|
549
|
+
'packages/peachsim/scripts/publish-cli-binaries.ts :: fetch :: `${url}?sha256=${digest}`':
|
|
508
550
|
{
|
|
509
551
|
category: 'cli_release_publish',
|
|
510
552
|
count: 1,
|
|
511
553
|
},
|
|
512
|
-
'packages/
|
|
554
|
+
'packages/peachsim/scripts/publish-cli-binaries.ts :: fetch :: `${publicOrigin}/${channelKey}?sourceSha=${sourceSha}`':
|
|
513
555
|
{
|
|
514
556
|
category: 'cli_release_publish',
|
|
515
557
|
count: 1,
|
|
516
558
|
},
|
|
517
|
-
'packages/
|
|
559
|
+
'packages/peachsim/cli/commands/upload.ts :: fetch :: url': {
|
|
518
560
|
category: 'presigned_upload',
|
|
519
561
|
count: 1,
|
|
520
562
|
},
|
|
521
|
-
'packages/
|
|
563
|
+
'packages/peachsim/cli/recording-access.ts :: fetch :: `${billingOrigin}/api/sootsim/billing/subscription`':
|
|
522
564
|
{ category: 'contrast_user_action', count: 1 },
|
|
523
|
-
"packages/
|
|
565
|
+
"packages/peachsim/cli/run-registry.ts :: fetch :: `${args.origin.replace(/\\/$/, '')}/api/sootsim/test-runs`":
|
|
524
566
|
{ category: 'contrast_user_action', count: 1 },
|
|
525
|
-
'packages/
|
|
567
|
+
'packages/peachsim/cli/runtime-notes.ts :: fetch-alias :: url': {
|
|
526
568
|
category: 'release_notes',
|
|
527
569
|
count: 1,
|
|
528
570
|
},
|
|
529
|
-
'packages/
|
|
571
|
+
'packages/peachsim/cli/telemetry.ts :: fetch :: `${config.host}/batch/`': {
|
|
530
572
|
category: 'bounded_diagnostics',
|
|
531
573
|
count: 1,
|
|
532
574
|
},
|
|
@@ -535,39 +577,39 @@ export const DECLARED_OUTBOUND_CALLS: Record<string, OutboundCallDeclaration> =
|
|
|
535
577
|
// when a cloud box makes it return a remote wss:// endpoint, that egress
|
|
536
578
|
// would land under this same local_development entry and go unnoticed. split
|
|
537
579
|
// the declaration then, rather than letting one line cover both.
|
|
538
|
-
'packages/
|
|
580
|
+
'packages/peachsim/cli/ws-bridge.ts :: websocket :: bridgeWsUrl(wsPort)': {
|
|
539
581
|
category: 'local_development',
|
|
540
582
|
count: 1,
|
|
541
583
|
},
|
|
542
|
-
'packages/
|
|
584
|
+
'packages/peachsim/src/agent-daemon-client.ts :: socket.connect :: port': {
|
|
543
585
|
category: 'local_development',
|
|
544
586
|
count: 1,
|
|
545
587
|
},
|
|
546
|
-
'packages/
|
|
588
|
+
'packages/peachsim/src/agent-daemon-client.ts :: websocket :: `ws://127.0.0.1:${this.port}`':
|
|
547
589
|
{ category: 'local_development', count: 1 },
|
|
548
|
-
"packages/
|
|
590
|
+
"packages/peachsim/src/auth/shared-session.ts :: fetch :: `${origin.replace(/\\/$/, '')}/api/auth/me`":
|
|
549
591
|
{ category: 'contrast_user_action', count: 1 },
|
|
550
|
-
"packages/
|
|
592
|
+
"packages/peachsim/src/dev-bundle-resolution.ts :: fetch :: '/__server-scan'": {
|
|
551
593
|
category: 'local_development',
|
|
552
594
|
count: 1,
|
|
553
595
|
},
|
|
554
|
-
'packages/
|
|
596
|
+
'packages/peachsim/src/dev-bundle-resolution.ts :: fetch :: `/__fetch-proxy?url=${encodeURIComponent()}`':
|
|
555
597
|
{ category: 'guest_app_network', count: 1 },
|
|
556
|
-
'packages/
|
|
598
|
+
'packages/peachsim/src/dev-bundle-resolution.ts :: fetch :: targetUrl': {
|
|
557
599
|
category: 'guest_app_network',
|
|
558
600
|
count: 1,
|
|
559
601
|
},
|
|
560
|
-
'packages/
|
|
602
|
+
'packages/peachsim/src/dev-server-open.ts :: http.get :: `http://127.0.0.1:${port}/__server-scan`':
|
|
561
603
|
{ category: 'local_development', count: 1 },
|
|
562
|
-
"packages/
|
|
604
|
+
"packages/peachsim/src/host/fetch-proxy-handler.ts :: transport.request :: { hostname: normalizeHostname(targetUrl.hostname), port: targetUrl.port || (targetUrl.protocol === 'https:' ? 443 : 80), path: targetUrl.pathname + targetUrl.search, method, headers: targetHeaders, ...loopbackTlsOptions(targetUrl), }":
|
|
563
605
|
{ category: 'guest_app_network', count: 1 },
|
|
564
|
-
"packages/
|
|
606
|
+
"packages/peachsim/src/host/fetch-proxy-handler.ts :: transport.request :: { hostname: normalizeHostname(targetUrl.hostname), port: targetUrl.port || (targetUrl.protocol === 'https:' ? 443 : 80), path: targetUrl.pathname + targetUrl.search, method: req.method, headers: fwdHeaders, ...loopbackTlsOptions(targetUrl), }":
|
|
565
607
|
{ category: 'guest_app_network', count: 1 },
|
|
566
|
-
'packages/
|
|
608
|
+
'packages/peachsim/src/host/websocket-proxy.ts :: node-request :: upstreamRequestUrl': {
|
|
567
609
|
category: 'guest_app_network',
|
|
568
610
|
count: 1,
|
|
569
611
|
},
|
|
570
|
-
'packages/
|
|
612
|
+
'packages/peachsim/src/screenshots/org-deck.ts :: fetch :: url': {
|
|
571
613
|
category: 'contrast_user_action',
|
|
572
614
|
count: 1,
|
|
573
615
|
},
|
|
@@ -765,20 +807,27 @@ function callKind(
|
|
|
765
807
|
|
|
766
808
|
function firstArgument(node: CallExpression | NewExpression, source: string): string {
|
|
767
809
|
const first = node.arguments[0]
|
|
768
|
-
return
|
|
769
|
-
|
|
770
|
-
|
|
810
|
+
if (!first) return '<none>'
|
|
811
|
+
const text = source.slice(first.start, first.end).replace(/\s+/g, ' ').trim()
|
|
812
|
+
// the key is source text, so renaming a local used as a path id used to change
|
|
813
|
+
// it and red main on a commit that moved no destination. what justifies erasing
|
|
814
|
+
// the argument to encodeURIComponent is that it is a local NAME rather than a
|
|
815
|
+
// destination, not that it is a path segment: at dev-bundle-resolution.ts and
|
|
816
|
+
// backend-origin.ts the argument is a whole target url behind a proxy path. a
|
|
817
|
+
// name carries no destination either way, so erasing it loses nothing, while
|
|
818
|
+
// the host expression and the path itself still have to be re-declared.
|
|
819
|
+
return text.replace(/encodeURIComponent\([^()]*\)/g, 'encodeURIComponent()')
|
|
771
820
|
}
|
|
772
821
|
|
|
773
822
|
export function detectOutboundCalls(repositoryRoot: string): DetectedOutboundCall[] {
|
|
774
823
|
const roots = [
|
|
775
|
-
path.join(repositoryRoot, 'packages/
|
|
776
|
-
path.join(repositoryRoot, 'packages/
|
|
777
|
-
path.join(repositoryRoot, 'packages/
|
|
778
|
-
path.join(repositoryRoot, 'packages/
|
|
779
|
-
path.join(repositoryRoot, 'packages/
|
|
824
|
+
path.join(repositoryRoot, 'packages/peachsim/cli'),
|
|
825
|
+
path.join(repositoryRoot, 'packages/peachsim/scripts'),
|
|
826
|
+
path.join(repositoryRoot, 'packages/peachsim/src'),
|
|
827
|
+
path.join(repositoryRoot, 'packages/peach-engine/src'),
|
|
828
|
+
path.join(repositoryRoot, 'packages/peach-engine/src-electron'),
|
|
780
829
|
path.join(repositoryRoot, 'packages/contrast-runtime-delivery/src'),
|
|
781
|
-
path.join(repositoryRoot, 'packages/
|
|
830
|
+
path.join(repositoryRoot, 'packages/peach-cloud-box/src'),
|
|
782
831
|
]
|
|
783
832
|
const counts = new Map<string, number>()
|
|
784
833
|
for (const file of roots.flatMap(sourceFilesUnder)) {
|