@somewhere-tech/cli 0.29.1 → 0.30.1
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/commands/auth.js +50 -4
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/browser.js +115 -16
- package/dist/commands/browser.js.map +1 -1
- package/dist/commands/check.js +7 -0
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/deploy.js +82 -6
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.js +64 -7
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/docs.js +139 -7
- package/dist/commands/docs.js.map +1 -1
- package/dist/commands/errors.js +29 -6
- package/dist/commands/errors.js.map +1 -1
- package/dist/commands/status.js +89 -4
- package/dist/commands/status.js.map +1 -1
- package/dist/lib/client.js +59 -4
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/config.js +18 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/files.js +57 -6
- package/dist/lib/files.js.map +1 -1
- package/dist/lib/output.js +4 -2
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/publish-surface.js +94 -0
- package/dist/lib/publish-surface.js.map +1 -0
- package/dist/local/browser-run.js +321 -0
- package/dist/local/browser-run.js.map +1 -0
- package/dist/local/chrome.js +320 -0
- package/dist/local/chrome.js.map +1 -0
- package/dist/local/compiler.js +67 -12
- package/dist/local/compiler.js.map +1 -1
- package/dist/local/runtime.js +72 -2
- package/dist/local/runtime.js.map +1 -1
- package/dist/local/telemetry-filter.js +120 -0
- package/dist/local/telemetry-filter.js.map +1 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
- package/runtime/VENDOR.json +4 -3
- package/runtime/browser-probes.mjs +6 -0
- package/runtime/compiler/VENDOR.json +40 -3
- package/runtime/compiler/compile-core.cjs +18 -0
- package/runtime/compiler/typed-functions.cjs +31 -1
- package/runtime/platform-context.mjs +241 -23
- package/runtime/sw-init.mjs +1 -1
package/dist/local/runtime.js
CHANGED
|
@@ -21,9 +21,11 @@ import { readdirSync } from 'node:fs';
|
|
|
21
21
|
import { dirname, join, relative } from 'node:path';
|
|
22
22
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
23
23
|
import { IGNORE } from '../lib/files.js';
|
|
24
|
+
import { fallbackProjectServingUrl } from '../lib/project-urls.js';
|
|
24
25
|
import { compileRoutes, matchRoute } from './router.js';
|
|
25
26
|
import { entryUrl } from './loader.js';
|
|
26
27
|
import { loadLocalEnv } from './envfile.js';
|
|
28
|
+
import { installTelemetryFilter } from './telemetry-filter.js';
|
|
27
29
|
function packageRoot() {
|
|
28
30
|
// dist/local/runtime.js → package root is two levels up.
|
|
29
31
|
return join(dirname(fileURLToPath(import.meta.url)), '..', '..');
|
|
@@ -33,11 +35,37 @@ let contextModule = null;
|
|
|
33
35
|
export async function loadVendoredRuntime() {
|
|
34
36
|
if (contextModule)
|
|
35
37
|
return contextModule;
|
|
38
|
+
// The vendored runtime instruments itself for the platform's telemetry sink,
|
|
39
|
+
// which does not exist on this machine — so its output would land in the
|
|
40
|
+
// developer's terminal instead. Filter it here, at the one place the runtime
|
|
41
|
+
// enters the process (tsk_eef0a0ef).
|
|
42
|
+
installTelemetryFilter();
|
|
36
43
|
const root = packageRoot();
|
|
37
44
|
await import(pathToFileURL(join(root, 'runtime', 'sw-init.mjs')).href);
|
|
38
45
|
contextModule = (await import(pathToFileURL(join(root, 'runtime', 'platform-context.mjs')).href));
|
|
39
46
|
return contextModule;
|
|
40
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* One row of GET /db/scopes. `intent` is what the platform PROVED about the
|
|
50
|
+
* table — user-owned, shared, server-only, or membership-joined — and it is
|
|
51
|
+
* what the structured query API (`sw.db.from` and friends) asks for before it
|
|
52
|
+
* will compose any SQL. Reading only `owner_column` and dropping the intent is
|
|
53
|
+
* why a `shared()` table came back locally as "this table has no declared
|
|
54
|
+
* intent" while working perfectly on the same deployed project
|
|
55
|
+
* (tsk_a21bc829).
|
|
56
|
+
*/
|
|
57
|
+
/**
|
|
58
|
+
* Env values the platform provides for a project, resolved for a local run.
|
|
59
|
+
*
|
|
60
|
+
* Anything named here is NOT the developer's to supply, so it must never be
|
|
61
|
+
* reported as a value they forgot. Keep this to keys the platform genuinely
|
|
62
|
+
* writes on their behalf — a key the developer owns belongs in their .env, and
|
|
63
|
+
* silently inventing a value for one would be worse than the warning.
|
|
64
|
+
*/
|
|
65
|
+
export function platformProvidedEnv(ctx) {
|
|
66
|
+
const appUrl = ctx.localOrigin ?? fallbackProjectServingUrl({ subdomain: ctx.subdomain ?? null });
|
|
67
|
+
return appUrl ? { APP_URL: appUrl } : {};
|
|
68
|
+
}
|
|
41
69
|
/** Walk the project dir and return every function-routable source file. */
|
|
42
70
|
export function collectFunctionFiles(cwd) {
|
|
43
71
|
const out = [];
|
|
@@ -68,7 +96,7 @@ export function collectFunctionFiles(cwd) {
|
|
|
68
96
|
* Fetch everything the runtime needs from the platform (project info, env
|
|
69
97
|
* key list, table scopes), merge local env values, and compile routes.
|
|
70
98
|
*/
|
|
71
|
-
export async function prepareLocalProject(client, token, projectId, cwd) {
|
|
99
|
+
export async function prepareLocalProject(client, token, projectId, cwd, opts = {}) {
|
|
72
100
|
const [project, envResult, scopesResult] = await Promise.all([
|
|
73
101
|
client.call('GET', `/projects/${encodeURIComponent(projectId)}`),
|
|
74
102
|
client.call('GET', '/env', undefined, {
|
|
@@ -91,10 +119,35 @@ export async function prepareLocalProject(client, token, projectId, cwd) {
|
|
|
91
119
|
if (!(key in values))
|
|
92
120
|
values[key] = value;
|
|
93
121
|
}
|
|
122
|
+
// Keys the PLATFORM sets, not the developer. APP_URL is written by deploy
|
|
123
|
+
// and holds wherever the app is being served; the developer never authored
|
|
124
|
+
// it, so reporting it back as one of THEIR missing values sent a first-time
|
|
125
|
+
// user off to write a .env entry for a variable that is not theirs, and
|
|
126
|
+
// devalued every real warning beside it (tsk_6a2a09bc5d).
|
|
127
|
+
//
|
|
128
|
+
// Locally the answer is knowable: the app is being served right here. Fill it
|
|
129
|
+
// with the local origin when there is one, and otherwise with the project's
|
|
130
|
+
// public URL — which is what the platform fills it with, and what run_code
|
|
131
|
+
// already does for the same key.
|
|
132
|
+
for (const [key, value] of Object.entries(platformProvidedEnv({ localOrigin: opts.localOrigin, subdomain: project.subdomain }))) {
|
|
133
|
+
if (remoteKeys.includes(key) && !(key in values))
|
|
134
|
+
values[key] = value;
|
|
135
|
+
}
|
|
94
136
|
const missingEnvKeys = remoteKeys.filter((k) => !(k in values));
|
|
137
|
+
// The scope bake, mirroring what deploy bakes into a function bundle. Two
|
|
138
|
+
// maps, and the runtime treats a disagreement between them as a bad bundle:
|
|
139
|
+
// PROJECT_SCOPES carries an owner column ONLY for a user-owned table, and
|
|
140
|
+
// every entry in it must have a matching `scoped` intent.
|
|
95
141
|
const scopes = {};
|
|
142
|
+
const intents = {};
|
|
96
143
|
for (const s of scopesResult.scopes ?? []) {
|
|
97
|
-
|
|
144
|
+
const table = s.table.toLowerCase();
|
|
145
|
+
const intent = s.intent ?? (s.owner_column ? 'scoped' : undefined);
|
|
146
|
+
if (!intent)
|
|
147
|
+
continue;
|
|
148
|
+
intents[table] = intent;
|
|
149
|
+
if (intent === 'scoped' && s.owner_column)
|
|
150
|
+
scopes[table] = s.owner_column;
|
|
98
151
|
}
|
|
99
152
|
// Mirror of the deploy pipeline's bindings (buildFunctionBundle), minus
|
|
100
153
|
// PROJECT_DB — its absence selects the runtime's REST db path, which is
|
|
@@ -108,6 +161,17 @@ export async function prepareLocalProject(client, token, projectId, cwd) {
|
|
|
108
161
|
PROJECT_SCOPES: JSON.stringify(scopes),
|
|
109
162
|
PROJECT_ENV: 'dev',
|
|
110
163
|
};
|
|
164
|
+
// Baked only when there is something to say, exactly like the deploy bundle:
|
|
165
|
+
// an absent binding is the runtime's own "nothing declared" default, and
|
|
166
|
+
// baking an empty map instead would be a different statement.
|
|
167
|
+
if (Object.keys(intents).length > 0) {
|
|
168
|
+
bindings.PROJECT_TABLE_INTENTS = JSON.stringify(intents);
|
|
169
|
+
}
|
|
170
|
+
// Who owns a row on a signed-out request. Baked only for 'visitor', matching
|
|
171
|
+
// deploy — an absent binding reads as 'authenticated'.
|
|
172
|
+
if (scopesResult.owner_identity_mode === 'visitor') {
|
|
173
|
+
bindings.PROJECT_OWNER_IDENTITY_MODE = 'visitor';
|
|
174
|
+
}
|
|
111
175
|
const files = collectFunctionFiles(cwd);
|
|
112
176
|
const routes = compileRoutes(files);
|
|
113
177
|
return {
|
|
@@ -118,6 +182,12 @@ export async function prepareLocalProject(client, token, projectId, cwd) {
|
|
|
118
182
|
missingEnvKeys,
|
|
119
183
|
localEnvKeys: Object.keys(values),
|
|
120
184
|
routes,
|
|
185
|
+
localDevDbAllowed: typeof project.local_dev_db_allowed === 'boolean'
|
|
186
|
+
? project.local_dev_db_allowed
|
|
187
|
+
: null,
|
|
188
|
+
localDevDbPlans: Array.isArray(project.local_dev_db_required_plans)
|
|
189
|
+
? project.local_dev_db_required_plans.filter((p) => typeof p === 'string')
|
|
190
|
+
: [],
|
|
121
191
|
};
|
|
122
192
|
}
|
|
123
193
|
/** Re-scan the directory and recompile routes (after add/remove of files). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/local/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAmB,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAiB5C,SAAS,WAAW;IAClB,yDAAyD;IACzD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,IAAI,aAAa,GAAiC,IAAI,CAAC;AAEvD,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IACxC,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAC3B,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,aAAa,GAAG,CAAC,MAAM,MAAM,CAC3B,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAClE,CAA0B,CAAC;IAC5B,OAAO,aAAa,CAAC;AACvB,CAAC;AA2BD,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,MAAM,GAAG,GAA6C,EAAE,CAAC;IACzD,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE;QAC3B,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACnE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,CAAC;gBACX,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAAE,SAAS;YAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtD,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,SAAS;YACvD,qEAAqE;YACrE,mEAAmE;YACnE,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAChF,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAiB,EACjB,KAAa,EACb,SAAiB,EACjB,GAAW;IAEX,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3D,MAAM,CAAC,IAAI,CACT,KAAK,EACL,aAAa,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAC7C;QACD,MAAM,CAAC,IAAI,CAA6C,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;YAChF,UAAU,EAAE,SAAS;SACtB,CAAC;QACF,MAAM;aACH,IAAI,CAA0B,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;aACxF,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAgB,EAAE,CAAC,CAAC;KAC/C,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEvC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC/C,CAAC;IACD,iFAAiF;IACjF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC5C,CAAC;IACD,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;IAEhE,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC;IACjD,CAAC;IAED,wEAAwE;IACxE,wEAAwE;IACxE,gCAAgC;IAChC,MAAM,QAAQ,GAA4B;QACxC,UAAU,EAAE,OAAO,CAAC,EAAE;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,MAAM,EAAE,8EAA8E;QAC5F,eAAe,EAAE,KAAK;QACtB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAChC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QACtC,WAAW,EAAE,KAAK;KACnB,CAAC;IAEF,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAEpC,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,GAAG;QACH,QAAQ;QACR,cAAc;QACd,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACjC,MAAM;KACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,KAAwB;IACpD,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,+EAA+E;AAE/E,SAAS,YAAY,CACnB,MAA8B,EAC9B,WAAqB;IAErB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACrC,OAAO,IAAI,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE;QAC9B,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACzE,IAAI,IAAI,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CACb,UAAU,IAAI,yEAAyE;oBACrF,OAAO,IAAI,yEAAyE;oBACpF,gDAAgD,CACnD,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,GAAG,CAAC,MAAM,EAAE,IAAI;YACd,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,CAAC,MAAM;YACZ,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,wBAAwB,CAAC,MAAM,EAAE,IAAI;YACnC,MAAM,GAAG,GAAG,OAAO,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC3D,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;YACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;YACpE,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAuC,CAAC;AAC3C,CAAC;AAED,+EAA+E;AAE/E,SAAS,SAAS,CAAC,MAAc,EAAE,IAAY,EAAE,OAAe;IAC9D,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;QACvE,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAED,qFAAqF;AACrF,SAAS,oBAAoB,CAAC,QAAkB,EAAE,GAAoB;IACpE,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,MAAgB,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,OAAiB,CAAC,CAAC;IAChE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACzD,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;QACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AASD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAgB,EAChB,KAAwB;IAExB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAErD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,QAAQ,EAAE,SAAS,CAAC,GAAG,EAAE,oBAAoB,EAAE,4BAA4B,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC3F,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,IAAI,GAA4B,CAAC;IACjC,IAAI,CAAC;QACH,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAA4B,CAAC;IACjF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,QAAQ,EAAE,SAAS,CACjB,GAAG,EACH,sBAAsB,EACtB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,oBAAoB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC1F;YACD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,GAAG;SACX,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAE9B,CAAC;IACd,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO;YACL,QAAQ,EAAE,SAAS,CAAC,GAAG,EAAE,oBAAoB,EAAE,MAAM,GAAG,oBAAoB,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;YACvG,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW;SAC/B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE;YACvC,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;IAED,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC7D,IAAI,GAAoB,CAAC;IACzB,IAAI,CAAC;QACH,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpD,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1B,uEAAuE;QACvE,GAAG,CAAC,GAAG,GAAG,YAAY,CACpB,IAAI,CAAC,KAAK,CAAE,KAAK,CAAC,QAAQ,CAAC,QAAmB,IAAI,IAAI,CAA2B,EACjF,KAAK,CAAC,cAAc,CACrB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,QAAQ,EAAE,SAAS,CACjB,GAAG,EACH,sBAAsB,EACtB,wCAAwC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC3F;YACD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,GAAG;SACX,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,QAAkB,CAAC;QACvB,IAAI,MAAM,YAAY,QAAQ,EAAE,CAAC;YAC/B,QAAQ,GAAG,MAAM,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBAC9C,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;aAChD,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAC3F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,yEAAyE;QACzE,2EAA2E;QAC3E,OAAO;YACL,QAAQ,EAAE,SAAS,CACjB,GAAG,EACH,gBAAgB,EAChB,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC9E;YACD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,GAAG;SACX,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/local/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keep the platform's own telemetry out of the developer's terminal
|
|
3
|
+
* (tsk_eef0a0ef).
|
|
4
|
+
*
|
|
5
|
+
* `somewhere dev` runs the DEPLOYED function runtime, vendored verbatim. That
|
|
6
|
+
* runtime instruments itself for the platform's telemetry sink: it writes a
|
|
7
|
+
* `SW_QUERY` line per database call, a `SW_DB_*` timing blob when a call is
|
|
8
|
+
* slow or first-touch, and a warning when its background flush of query
|
|
9
|
+
* observations is refused. In the deployed worker those lines go to the
|
|
10
|
+
* platform's log pipeline. Locally there is no pipeline — they land in the
|
|
11
|
+
* developer's terminal, next to their own console.log:
|
|
12
|
+
*
|
|
13
|
+
* [SW_QUERY_OBSERVATIONS] deferred flush failed: HTTP 403
|
|
14
|
+
* [SW_DB_FIRST_TOUCH] {"event":"SW_DB_FIRST_TOUCH","execution_path":"rest",
|
|
15
|
+
* "database_region":"WNAM","edge_region":null,…}
|
|
16
|
+
*
|
|
17
|
+
* Two things wrong with that, and this module fixes both without touching the
|
|
18
|
+
* vendored file (it is hash-guarded; a hand-edit is a failing build, and a
|
|
19
|
+
* local fork of the runtime is the divergence the whole loop exists to remove).
|
|
20
|
+
*
|
|
21
|
+
* 1. THE 403 IS NOT THE DEVELOPER'S. The observation channel is ours, it is
|
|
22
|
+
* entitlement-gated, and a plan without the entitlement is refused by
|
|
23
|
+
* design. Nothing in the app is wrong and nothing the developer can do
|
|
24
|
+
* changes it — but an agent reading the terminal treats a repeated
|
|
25
|
+
* "failed: HTTP 403" as a symptom of the code it just wrote.
|
|
26
|
+
* 2. IT LEAKS OUR PLUMBING. `execution_path`, `database_region`, `edge_region`,
|
|
27
|
+
* "activation, placement, transport, queueing, binding" — internal database
|
|
28
|
+
* mechanics, rendered as raw JSON into a customer's terminal.
|
|
29
|
+
*
|
|
30
|
+
* WHAT IS NOT SUPPRESSED: anything the developer's own code prints, every
|
|
31
|
+
* error the runtime raises, and every failure of a call they made. Only the
|
|
32
|
+
* background telemetry channel is quiet, and only by default —
|
|
33
|
+
* `SOMEWHERE_DEV_TELEMETRY=1` prints every line through untouched, so the
|
|
34
|
+
* channel stays inspectable when we are the ones debugging it.
|
|
35
|
+
*/
|
|
36
|
+
/** Set this to any non-empty value other than `0`/`false` to see the raw lines. */
|
|
37
|
+
export const TELEMETRY_ENV = 'SOMEWHERE_DEV_TELEMETRY';
|
|
38
|
+
export function telemetryVisible(env = process.env) {
|
|
39
|
+
const raw = env[TELEMETRY_ENV];
|
|
40
|
+
if (raw === undefined)
|
|
41
|
+
return false;
|
|
42
|
+
const value = raw.trim().toLowerCase();
|
|
43
|
+
return value !== '' && value !== '0' && value !== 'false' && value !== 'no';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Is this console call the vendored runtime reporting to the platform, rather
|
|
47
|
+
* than the app reporting to its developer?
|
|
48
|
+
*
|
|
49
|
+
* Matched by SHAPE, never by an enumerated list of event names — a list goes
|
|
50
|
+
* stale on the next re-vendor and the leak comes back silently. The runtime
|
|
51
|
+
* emits exactly three shapes, and each is self-identifying:
|
|
52
|
+
*
|
|
53
|
+
* a. `[<EVENT>] <json>` where the JSON's own `event` field equals <EVENT>
|
|
54
|
+
* and starts with `SW_`. That pairing is what makes it ours; a developer
|
|
55
|
+
* logging a string that merely begins with `[SW_` does not produce it.
|
|
56
|
+
* b. `[SW_QUERY_OBSERVATIONS] …` — the background flush channel, whose only
|
|
57
|
+
* output is the failure of a request the developer did not make.
|
|
58
|
+
* c. a bare JSON object whose `event` starts with `SW_` (the per-query
|
|
59
|
+
* `SW_QUERY` line, emitted with no prefix at all).
|
|
60
|
+
*/
|
|
61
|
+
export function isPlatformTelemetry(args) {
|
|
62
|
+
if (args.length === 0)
|
|
63
|
+
return false;
|
|
64
|
+
const first = args[0];
|
|
65
|
+
if (typeof first !== 'string')
|
|
66
|
+
return false;
|
|
67
|
+
const line = first.trimStart();
|
|
68
|
+
// (b) the observation channel — its own name is the whole signal.
|
|
69
|
+
if (line.startsWith('[SW_QUERY_OBSERVATIONS]'))
|
|
70
|
+
return true;
|
|
71
|
+
// (a) `[EVENT] {json}` where the JSON agrees it is that event.
|
|
72
|
+
const prefixed = /^\[(SW_[A-Z0-9_]+)\]\s*(\{[\s\S]*)$/.exec(line);
|
|
73
|
+
if (prefixed)
|
|
74
|
+
return eventNameOf(prefixed[2]) === prefixed[1];
|
|
75
|
+
// (c) a bare telemetry object.
|
|
76
|
+
if (line.startsWith('{')) {
|
|
77
|
+
const event = eventNameOf(line);
|
|
78
|
+
return event !== null && event.startsWith('SW_');
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
function eventNameOf(json) {
|
|
83
|
+
try {
|
|
84
|
+
const parsed = JSON.parse(json);
|
|
85
|
+
if (!parsed || typeof parsed !== 'object')
|
|
86
|
+
return null;
|
|
87
|
+
const event = parsed.event;
|
|
88
|
+
return typeof event === 'string' ? event : null;
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
let installed = false;
|
|
95
|
+
/**
|
|
96
|
+
* Filter the platform's telemetry out of console.log / warn / error for the
|
|
97
|
+
* rest of this process. Idempotent, and a no-op when the developer asked to
|
|
98
|
+
* see it. Returns a restore function — the tests use it; the CLI does not,
|
|
99
|
+
* because the local loop owns the process for its whole life.
|
|
100
|
+
*/
|
|
101
|
+
export function installTelemetryFilter(env = process.env) {
|
|
102
|
+
if (installed || telemetryVisible(env))
|
|
103
|
+
return () => { };
|
|
104
|
+
installed = true;
|
|
105
|
+
const methods = ['log', 'warn', 'error'];
|
|
106
|
+
const original = methods.map((m) => [m, console[m]]);
|
|
107
|
+
for (const [method, fn] of original) {
|
|
108
|
+
console[method] = (...args) => {
|
|
109
|
+
if (isPlatformTelemetry(args))
|
|
110
|
+
return;
|
|
111
|
+
fn(...args);
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return () => {
|
|
115
|
+
for (const [method, fn] of original)
|
|
116
|
+
console[method] = fn;
|
|
117
|
+
installed = false;
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=telemetry-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry-filter.js","sourceRoot":"","sources":["../../src/local/telemetry-filter.ts"],"names":[],"mappings":"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"}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@somewhere-tech/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@somewhere-tech/cli",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.30.1",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"@modelcontextprotocol/sdk",
|
|
12
12
|
"chokidar",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@somewhere-tech/cli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "CLI for somewhere.tech
|
|
3
|
+
"version": "0.30.1",
|
|
4
|
+
"description": "CLI for somewhere.tech — auth, projects, deploy, pull, promote, db, logs, env, MCP bridge.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"somewhere",
|
|
7
7
|
"somewhere.tech",
|
package/runtime/VENDOR.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"commit": "
|
|
2
|
+
"commit": "1bf981dd",
|
|
3
3
|
"files": {
|
|
4
|
-
"sw-init.mjs": "
|
|
5
|
-
"platform-context.mjs": "
|
|
4
|
+
"sw-init.mjs": "352ebc523b769736f0ea1da0fa87d259553a35d472e0b779d862e4c85252071c",
|
|
5
|
+
"platform-context.mjs": "fe4dd3bd4fc3619e80d0da8d21df1e7146c416c154d8251d196bf32c007677a5",
|
|
6
|
+
"browser-probes.mjs": "3793cd63cb29e4f2fce3691f6cf41fe3855ef85454e7b55cd55cf086986fc26d"
|
|
6
7
|
}
|
|
7
8
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// VENDORED from worker/src/utils/browser-test.ts (DOM_OUTLINE_SCRIPT) @ 1bf981dd
|
|
2
|
+
// — the exact runtime deployed functions run against. Do not edit by hand;
|
|
3
|
+
// re-sync with: node scripts/extract-runtime.mjs <monorepo>
|
|
4
|
+
export const MAX_OUTLINE_NODES = 200;
|
|
5
|
+
|
|
6
|
+
export const DOM_OUTLINE_SCRIPT = "(() => {\n const cssPath = (el) => {\n const parts = [];\n let node = el;\n let depth = 0;\n while (node && node.nodeType === 1 && depth < 4 && node.tagName.toLowerCase() !== 'body') {\n let sel = node.tagName.toLowerCase();\n if (node.id) { parts.unshift(sel + '#' + CSS.escape(node.id)); break; }\n const parent = node.parentNode;\n if (parent) {\n const sameTag = Array.from(parent.children).filter((c) => c.tagName === node.tagName);\n if (sameTag.length > 1) sel += ':nth-of-type(' + (sameTag.indexOf(node) + 1) + ')';\n }\n parts.unshift(sel);\n node = node.parentNode;\n depth++;\n }\n return parts.join(' > ');\n };\n const interactive = 'a,button,input,select,textarea,[role=button],[role=link],[role=tab],[onclick],[data-testid]';\n const seen = new Set();\n const outline = [];\n for (const el of Array.from(document.querySelectorAll(interactive))) {\n if (outline.length >= 200) break;\n if (seen.has(el)) continue;\n seen.add(el);\n const testid = el.getAttribute('data-testid') || '';\n const id = el.id || '';\n const name = el.getAttribute('name') || '';\n const aria = el.getAttribute('aria-label') || '';\n const text = ((el.innerText || el.value || el.getAttribute('placeholder') || '') + '').trim().slice(0, 80);\n let selector;\n if (testid) selector = '[data-testid=\"' + testid + '\"]';\n else if (id) selector = '#' + CSS.escape(id);\n else if (name) selector = el.tagName.toLowerCase() + '[name=\"' + name + '\"]';\n else selector = cssPath(el);\n outline.push({ tag: el.tagName.toLowerCase(), id, testid, name, aria, text, selector });\n }\n const testid_map = {};\n for (const el of Array.from(document.querySelectorAll('[data-testid]'))) {\n const t = el.getAttribute('data-testid');\n if (t && !(t in testid_map)) testid_map[t] = '[data-testid=\"' + t + '\"]';\n }\n return { outline, testid_map };\n})()";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"commit": "
|
|
2
|
+
"commit": "1bf981dd",
|
|
3
3
|
"esbuild": "0.24.0",
|
|
4
4
|
"toolchain": {
|
|
5
5
|
"base": {
|
|
@@ -17,11 +17,48 @@
|
|
|
17
17
|
"react19": {
|
|
18
18
|
"react": "19.2.7",
|
|
19
19
|
"react-dom": "19.2.7"
|
|
20
|
+
},
|
|
21
|
+
"baked": {
|
|
22
|
+
"autoprefixer": "10.4.20",
|
|
23
|
+
"buffer": "6.0.3",
|
|
24
|
+
"crypto-browserify": "3.12.1",
|
|
25
|
+
"esbuild": "0.24.0",
|
|
26
|
+
"events": "3.3.0",
|
|
27
|
+
"path-browserify": "1.0.1",
|
|
28
|
+
"postcss": "8.4.47",
|
|
29
|
+
"process": "0.11.10",
|
|
30
|
+
"semver": "7.8.2",
|
|
31
|
+
"stream-browserify": "3.0.0",
|
|
32
|
+
"tailwindcss": "3.4.14",
|
|
33
|
+
"typescript": "5.6.3",
|
|
34
|
+
"util": "0.12.5",
|
|
35
|
+
"react": "18.3.1",
|
|
36
|
+
"react-dom": "18.3.1",
|
|
37
|
+
"react-router-dom": "6.30.4",
|
|
38
|
+
"@tanstack/react-query": "5.101.0",
|
|
39
|
+
"zustand": "5.0.14",
|
|
40
|
+
"immer": "10.2.0",
|
|
41
|
+
"react-hook-form": "7.77.0",
|
|
42
|
+
"@hookform/resolvers": "3.10.0",
|
|
43
|
+
"zod": "3.25.76",
|
|
44
|
+
"axios": "1.17.0",
|
|
45
|
+
"date-fns": "3.6.0",
|
|
46
|
+
"dayjs": "1.11.21",
|
|
47
|
+
"lodash": "4.18.1",
|
|
48
|
+
"lodash-es": "4.18.1",
|
|
49
|
+
"uuid": "11.1.1",
|
|
50
|
+
"clsx": "2.1.1",
|
|
51
|
+
"tailwind-merge": "2.6.1",
|
|
52
|
+
"class-variance-authority": "0.7.1",
|
|
53
|
+
"lucide-react": "0.468.0",
|
|
54
|
+
"framer-motion": "11.18.2",
|
|
55
|
+
"recharts": "2.15.4",
|
|
56
|
+
"sonner": "1.7.4"
|
|
20
57
|
}
|
|
21
58
|
},
|
|
22
59
|
"files": {
|
|
23
|
-
"compile-core.cjs": "
|
|
60
|
+
"compile-core.cjs": "06a7c02dacc5fc41ab602ec60eac14d988307b8a7019c62b49be72fafe664f65",
|
|
24
61
|
"graph-contract.cjs": "aaeebc34f486ee5f639444de5757accfc283de641e631908ccd8d8c688bfb5c0",
|
|
25
|
-
"typed-functions.cjs": "
|
|
62
|
+
"typed-functions.cjs": "5c0b499015dcdf755ca72dab04a80afce0891e782f835547592faec802c63be6"
|
|
26
63
|
}
|
|
27
64
|
}
|
|
@@ -465,6 +465,8 @@ const TOOLCHAIN_DEPS = new Set(['react-scripts', 'react-app-rewired', 'craco', '
|
|
|
465
465
|
* GRANDFATHER: the full resolvability chain (build root → IMAGE_NODE_MODULES →
|
|
466
466
|
* REACT19_NODE_MODULES → NODE_POLYFILLS → node: prefix → relative/URL paths)
|
|
467
467
|
* mirrors exactly what esbuild can resolve, so a working import NEVER warns.
|
|
468
|
+
* Platform-provided specifiers (PLATFORM_MODULE_ROOTS) are exempt on top of
|
|
469
|
+
* that: they are not npm packages, so no resolution chain would ever find them.
|
|
468
470
|
*/
|
|
469
471
|
|
|
470
472
|
/**
|
|
@@ -497,6 +499,18 @@ function specRootPkg(spec) {
|
|
|
497
499
|
: spec.split('/')[0];
|
|
498
500
|
}
|
|
499
501
|
|
|
502
|
+
/**
|
|
503
|
+
* Root packages the PLATFORM provides — derived from typed-functions'
|
|
504
|
+
* PLATFORM_MODULES, which is also what builds the virtual-module resolver, so
|
|
505
|
+
* this can never drift into a stale hand list.
|
|
506
|
+
*
|
|
507
|
+
* These are not npm packages. Reporting one as "not in your package.json" told
|
|
508
|
+
* a developer that the `somewhere/db` import our own managed-schema docs handed
|
|
509
|
+
* them would fail to load in production, and the remediation it offered —
|
|
510
|
+
* `npm install somewhere` — installs an unrelated package (tsk_53badecfb7).
|
|
511
|
+
*/
|
|
512
|
+
const PLATFORM_MODULE_ROOTS = new Set(typedFunctions.PLATFORM_MODULES.map(specRootPkg));
|
|
513
|
+
|
|
500
514
|
/* ─── Dependency review (PR1, tsk_35befef9 / npm supply-chain) ────────────────
|
|
501
515
|
* After deps are installed (with --ignore-scripts), walk the customer's RESOLVED
|
|
502
516
|
* dependency tree and report what actually shipped: package count, lifecycle
|
|
@@ -979,6 +993,10 @@ function isBuildConfigFile(filePath) {
|
|
|
979
993
|
// (aliases like `@/App` have no npm-style root package).
|
|
980
994
|
if (isAliased(spec)) continue;
|
|
981
995
|
const rootPkg = specRootPkg(spec);
|
|
996
|
+
// PROVIDED BY THE PLATFORM (`somewhere/db`, `somewhere:api`, …). Not npm
|
|
997
|
+
// packages, so "add it to your package.json" is wrong advice on code our
|
|
998
|
+
// own docs hand the developer (tsk_53badecfb7).
|
|
999
|
+
if (PLATFORM_MODULE_ROOTS.has(rootPkg)) continue;
|
|
982
1000
|
// DECLARED in devDependencies. ensureDeps deliberately installs only
|
|
983
1001
|
// `dependencies` (the build toolchain is the platform's job, not the
|
|
984
1002
|
// app's), so a devDependency is never resolvable here — but it IS
|
|
@@ -6,7 +6,32 @@ const path = require('path');
|
|
|
6
6
|
|
|
7
7
|
const SENTINEL = 'somewhere:v1';
|
|
8
8
|
const MODULE_NAME = 'somewhere:api';
|
|
9
|
+
// Managed-schema helper surface, imported by db/schema.ts. That file is DATA
|
|
10
|
+
// the deploy reads statically — never executed, never bundled — so no resolver
|
|
11
|
+
// ever claims this specifier and, to anything that only asks "can esbuild
|
|
12
|
+
// resolve it", it can only ever look like a missing npm package.
|
|
13
|
+
const SCHEMA_MODULE_NAME = 'somewhere/db';
|
|
9
14
|
const MANIFEST_PATH = '_internal/typed-functions.json';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* PLATFORM_MODULES — the ONE enumeration of module specifiers the PLATFORM
|
|
18
|
+
* provides. These are not npm packages and must never be added to a customer's
|
|
19
|
+
* package.json: `npm install somewhere` installs an unrelated package off the
|
|
20
|
+
* public registry, or fails.
|
|
21
|
+
*
|
|
22
|
+
* Everything that needs to know "is this specifier ours?" reads THIS list, so
|
|
23
|
+
* there is no second hand-maintained copy to drift:
|
|
24
|
+
* - virtualApiPlugin below builds its esbuild onResolve filter from
|
|
25
|
+
* MODULE_NAME, so the resolver and this list cannot disagree;
|
|
26
|
+
* - the compiler's phantom-import scanner (compile-core.cjs) treats the root
|
|
27
|
+
* package of every entry here as provided, which is what stops the CLI
|
|
28
|
+
* telling a developer that our own documented `somewhere/db` import is a
|
|
29
|
+
* missing dependency (tsk_53badecfb7).
|
|
30
|
+
*
|
|
31
|
+
* Matching downstream is on the ROOT package, so `somewhere/<anything>` — every
|
|
32
|
+
* present and future subpath surface — is covered by the `somewhere/db` entry.
|
|
33
|
+
*/
|
|
34
|
+
const PLATFORM_MODULES = Object.freeze([MODULE_NAME, SCHEMA_MODULE_NAME]);
|
|
10
35
|
const AMBIENT_FILE = '__somewhere_typed_functions.d.ts';
|
|
11
36
|
const CLIENT_FILE = '__somewhere_api.d.ts';
|
|
12
37
|
|
|
@@ -524,7 +549,10 @@ function virtualApiPlugin(esbuild) {
|
|
|
524
549
|
return {
|
|
525
550
|
name: 'somewhere-typed-api',
|
|
526
551
|
setup(build) {
|
|
527
|
-
|
|
552
|
+
// Filter derived from MODULE_NAME so the resolver and PLATFORM_MODULES
|
|
553
|
+
// cannot drift apart.
|
|
554
|
+
const filter = new RegExp(`^${MODULE_NAME.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}$`);
|
|
555
|
+
build.onResolve({ filter }, () => ({ path: MODULE_NAME, namespace: 'somewhere-typed-api' }));
|
|
528
556
|
build.onLoad({ filter: /.*/, namespace: 'somewhere-typed-api' }, () => ({ contents: RUNTIME_SOURCE, loader: 'js' }));
|
|
529
557
|
},
|
|
530
558
|
};
|
|
@@ -535,7 +563,9 @@ module.exports = {
|
|
|
535
563
|
CLIENT_FILE,
|
|
536
564
|
MANIFEST_PATH,
|
|
537
565
|
MODULE_NAME,
|
|
566
|
+
PLATFORM_MODULES,
|
|
538
567
|
RUNTIME_SOURCE,
|
|
568
|
+
SCHEMA_MODULE_NAME,
|
|
539
569
|
SENTINEL,
|
|
540
570
|
analyzeTypedFunctions,
|
|
541
571
|
buildDeclaration,
|