@somewhere-cloud/cli 0.38.15 → 0.38.17

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.
@@ -0,0 +1,164 @@
1
+ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { dirname, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import semver from 'semver';
5
+ /**
6
+ * A project records the CLI version it was built with, the way an npm project
7
+ * records any dependency (tsk_a4641877). Getting a newer CLI is then a
8
+ * deliberate `somewhere upgrade`, not whatever `npx …@latest` fetched today.
9
+ *
10
+ * Where the pin lives, read in this order (the first one found is the pin):
11
+ * package.json devDependencies (or dependencies) "@somewhere-cloud/cli"
12
+ * — what `somewhere init` writes into a new starter
13
+ * .somewhere.json "cli_version" — for a linked folder whose package.json
14
+ * does not declare the CLI (or that has none): written by
15
+ * init --bare/link and by the first deploy, never into a
16
+ * package.json the CLI did not write (a devDependency added
17
+ * behind a lockfile would break the owner's `npm ci`).
18
+ */
19
+ export const CLI_PACKAGE_NAME = '@somewhere-cloud/cli';
20
+ export const PIN_FILE_KEY = 'cli_version';
21
+ function readJson(path) {
22
+ if (!existsSync(path))
23
+ return null;
24
+ try {
25
+ const value = JSON.parse(readFileSync(path, 'utf8'));
26
+ return value && typeof value === 'object' && !Array.isArray(value) ? value : null;
27
+ }
28
+ catch {
29
+ return null;
30
+ }
31
+ }
32
+ function packageJsonSpec(pkg) {
33
+ for (const section of ['devDependencies', 'dependencies']) {
34
+ const deps = pkg?.[section];
35
+ if (deps && typeof deps === 'object' && !Array.isArray(deps)) {
36
+ const spec = deps[CLI_PACKAGE_NAME];
37
+ if (typeof spec === 'string' && spec.trim())
38
+ return spec.trim();
39
+ }
40
+ }
41
+ return null;
42
+ }
43
+ /** Every place this folder records a CLI version, in precedence order. */
44
+ export function readProjectPins(dir) {
45
+ const pins = [];
46
+ const fromPackage = packageJsonSpec(readJson(join(dir, 'package.json')));
47
+ if (fromPackage)
48
+ pins.push({ spec: fromPackage, source: 'package.json' });
49
+ const recorded = readJson(join(dir, '.somewhere.json'))?.[PIN_FILE_KEY];
50
+ if (typeof recorded === 'string' && recorded.trim())
51
+ pins.push({ spec: recorded.trim(), source: '.somewhere.json' });
52
+ return pins;
53
+ }
54
+ /** The pin that governs this folder, or null when it records none (or one that
55
+ * is not a version or range, such as a tag or a file: path). */
56
+ export function readProjectPin(dir) {
57
+ const pin = readProjectPins(dir)[0];
58
+ return pin && semver.validRange(pin.spec) ? pin : null;
59
+ }
60
+ export function pinSatisfied(pin, version) {
61
+ return semver.valid(version) !== null && semver.satisfies(version, pin.spec, { includePrerelease: true });
62
+ }
63
+ /** The CLI installed in this folder's node_modules, when it satisfies the pin
64
+ * and is not the one already running: the command is handed to it. */
65
+ export function installedPinnedCli(dir, pin, running) {
66
+ const root = join(dir, 'node_modules', ...CLI_PACKAGE_NAME.split('/'));
67
+ const pkg = readJson(join(root, 'package.json'));
68
+ const version = typeof pkg?.version === 'string' ? pkg.version : null;
69
+ if (!version || version === running || !pinSatisfied(pin, version))
70
+ return null;
71
+ const binField = pkg?.bin;
72
+ const rel = typeof binField === 'string'
73
+ ? binField
74
+ : binField && typeof binField === 'object' ? binField.somewhere : null;
75
+ if (typeof rel !== 'string')
76
+ return null;
77
+ const bin = join(root, rel);
78
+ return existsSync(bin) ? { version, bin } : null;
79
+ }
80
+ /** The one line a folder pinned to another CLI version prints, on stderr. */
81
+ export function pinNotice(pin, running, delegatedTo) {
82
+ const head = `This project is pinned to somewhere CLI ${pin.spec} (${pin.source})`;
83
+ const newer = semver.valid(running) !== null && semver.gtr(running, pin.spec, { includePrerelease: true });
84
+ const move = `Run \`somewhere upgrade\` to move the project to ${running}.`;
85
+ if (delegatedTo) {
86
+ return `${head}; running its installed ${delegatedTo} instead of ${running}.${newer ? ` ${move}` : ''}`;
87
+ }
88
+ if (newer)
89
+ return `${head}; you are running ${running}. ${move}`;
90
+ const exact = semver.valid(pin.spec) ? pin.spec : semver.minVersion(pin.spec)?.version ?? pin.spec;
91
+ return `${head}; you are running ${running}, which is older. `
92
+ + (pin.source === 'package.json' ? 'Run `npm install` here, or use ' : 'Use ')
93
+ + `\`npx -y ${CLI_PACKAGE_NAME}@${exact} <command>\`.`;
94
+ }
95
+ /** Commands that never follow a pin: they create, inspect or move it. */
96
+ const PIN_EXEMPT = new Set(['upgrade', 'update', 'init', '--version', '-V']);
97
+ /** Set on a command handed to the project's installed CLI, so it runs as is. */
98
+ export const PINNED_CHILD_ENV = 'SOMEWHERE_PINNED_CLI';
99
+ export function decidePin(dir, running, argv, env) {
100
+ const none = { notice: null, delegate: null };
101
+ if (env[PINNED_CHILD_ENV] === '1' || PIN_EXEMPT.has(argv[2] ?? ''))
102
+ return none;
103
+ const pin = readProjectPin(dir);
104
+ if (!pin || pinSatisfied(pin, running))
105
+ return none;
106
+ const installed = installedPinnedCli(dir, pin, running);
107
+ return { notice: pinNotice(pin, running, installed?.version ?? null), delegate: installed?.bin ?? null };
108
+ }
109
+ /** Write `version` into every place this folder records a pin. */
110
+ export function writeProjectPins(dir, pins, version) {
111
+ const written = [];
112
+ for (const pin of pins) {
113
+ const path = join(dir, pin.source);
114
+ const raw = readFileSync(path, 'utf8');
115
+ const json = JSON.parse(raw);
116
+ if (pin.source === 'package.json') {
117
+ for (const section of ['devDependencies', 'dependencies']) {
118
+ const deps = json[section];
119
+ if (deps && typeof deps === 'object' && typeof deps[CLI_PACKAGE_NAME] === 'string')
120
+ deps[CLI_PACKAGE_NAME] = version;
121
+ }
122
+ }
123
+ else {
124
+ json[PIN_FILE_KEY] = version;
125
+ }
126
+ const indent = /^\{\s*\n(\s+)/.exec(raw)?.[1] ?? ' ';
127
+ writeFileSync(path, JSON.stringify(json, null, indent) + '\n');
128
+ written.push(pin.source);
129
+ }
130
+ return written;
131
+ }
132
+ /** Record this CLI in a linked folder that records no version yet: the first
133
+ * deploy pins the project. Only .somewhere.json is written. */
134
+ export function recordPinIfMissing(dir, version) {
135
+ if (!semver.valid(version) || readProjectPins(dir).length)
136
+ return false;
137
+ const path = join(dir, '.somewhere.json');
138
+ const config = readJson(path);
139
+ if (!config)
140
+ return false;
141
+ config[PIN_FILE_KEY] = version;
142
+ writeFileSync(path, JSON.stringify(config, null, 2) + '\n');
143
+ return true;
144
+ }
145
+ /** This CLI's own CHANGELOG.md, shipped in the package. */
146
+ export function readBundledChangelog() {
147
+ return readFileSync(join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'CHANGELOG.md'), 'utf8');
148
+ }
149
+ /** The `## x.y.z` sections above `from` up to and including `to`, newest first. */
150
+ export function changelogBetween(markdown, from, to) {
151
+ const entries = [];
152
+ const parts = markdown.split(/^## /m).slice(1);
153
+ for (const part of parts) {
154
+ const newline = part.indexOf('\n');
155
+ const version = (newline === -1 ? part : part.slice(0, newline)).trim();
156
+ if (!semver.valid(version))
157
+ continue;
158
+ if (semver.gt(version, from) && semver.lte(version, to)) {
159
+ entries.push({ version, body: (newline === -1 ? '' : part.slice(newline + 1)).trim() });
160
+ }
161
+ }
162
+ return entries;
163
+ }
164
+ //# sourceMappingURL=project-pin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-pin.js","sourceRoot":"","sources":["../../src/lib/project-pin.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@somewhere-cloud/cli",
3
- "version": "0.38.15",
3
+ "version": "0.38.17",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@somewhere-cloud/cli",
9
- "version": "0.38.15",
9
+ "version": "0.38.17",
10
10
  "bundleDependencies": [
11
11
  "@modelcontextprotocol/sdk",
12
12
  "chokidar",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@somewhere-cloud/cli",
3
- "version": "0.38.15",
3
+ "version": "0.38.17",
4
4
  "description": "CLI for somewhere.cloud — auth, projects, deploy, pull, promote, db, logs, env, MCP bridge.",
5
5
  "keywords": [
6
6
  "somewhere",
@@ -26,6 +26,7 @@
26
26
  "sw": "bin/somewhere.js"
27
27
  },
28
28
  "files": [
29
+ "CHANGELOG.md",
29
30
  "LICENSE",
30
31
  "README.md",
31
32
  "bin",
@@ -2,36 +2,39 @@
2
2
  "esbuild": "0.24.0",
3
3
  "source_files": {
4
4
  "worker/containers/compile/checker-contract.cjs": "3a8355b9477d89d00bca47cf74032c3b3c6458941cf5c57ddae9e2228b51915d",
5
- "worker/containers/compile/declared-data-contract.cjs": "6afb0b85f333ba8f6c60246857a05f0bcebb54e189f612476516e4a9aea5be35",
5
+ "worker/containers/compile/declared-data-contract.cjs": "6d421db4a64f7f3ea58ec7bf773a1090a0f04bc99d59219178f3b1b602ad3d68",
6
6
  "worker/containers/compile/generated-declarations-render.cjs": "7ffdb34645cc9eccac6eba39dc86b646a41c4de8a1a038d2b5b46f42df9f1157",
7
7
  "worker/containers/compile/generated-declarations.cjs": "6e9902e054c5c784fd9b3c3fafc1869e79954100a45014e1132247cd82833ec4",
8
- "worker/containers/compile/groups-types.cjs": "e587931bdcdb88008b1f9d84828d12f2425aa5ef95619b0d260b556b2a849164",
9
- "worker/containers/compile/runtime-types.cjs": "70cb20e7e5248a0f9c52049bf066930ba8e2101695668dcab5478bb9b328cc9b",
10
- "worker/containers/compile/schema-types.cjs": "78b444d92d3bc072a6d97eacb2bdb82cd5163031ea0a27aa901fd00122668b92",
8
+ "worker/containers/compile/groups-types.cjs": "7c22b4bb96c9391005d434852600dc02bc8a6bbb99d78d2b8e3eb152f7b72c58",
9
+ "worker/containers/compile/runtime-types.cjs": "1acc241c97efe2e0a33853bc3a01fbf48e1e9b6e13d9310f42035aac1e1e625b",
10
+ "worker/containers/compile/schema-types.cjs": "aa8987178dcea6bdee593e7ff06f452265b2af9d12d1bd1c47c983db15965a73",
11
11
  "worker/containers/compile/typed-data.cjs": "1c8bec853fbee4ffd34c651076a4e1f4d8b18c0c2be5e99e31df7c9283207627",
12
12
  "worker/containers/compile/typed-files.cjs": "a0b1818afbc7673f84583c76436a3b3ca1d1fdf63d8d8db138b36646103f0708",
13
13
  "worker/src/services/jobs/limits.ts": "9ba371e4635a3b469cea721fb9eba20e69757d8a771d6ab181837f39b8280103",
14
+ "worker/src/utils/authority/client-contract-schema.ts": "e0d0d7a871082d9c0cf68cfbaccc786b1a0dd5f95558f4e2ee4f86c677159e18",
14
15
  "worker/src/utils/authority/intake-bake.ts": "7216e288e40673819295d999b3bdbf5e4319e1e21608e3b81eda9d102ff8d636",
15
- "worker/src/utils/authority/scope-enforcement.ts": "d0f052dc0d788ef7b7326f6013661331d95b4f43b77e6851c0c47e1797f24981",
16
+ "worker/src/utils/authority/role-domain-map.ts": "dc1b6abba79278a970cc5a07c4eb7ea73acac262425b489670e90508b95a5ff1",
17
+ "worker/src/utils/authority/scope-enforcement.ts": "23a1489ea5f1fc995f035a5ccfe6bb20735d6495cfbe735c38f1adbb76bf9e3d",
16
18
  "worker/src/utils/db-schema-deploy/bigint-text.ts": "ef3f581daeecb234d2c1e288bc09495a6facd7b0354b300134918f6c0cf10cc2",
17
- "worker/src/utils/db-schema-deploy/client-contract-source.ts": "5d4136052453a57513354ed20926f41de5138c902e9e0817863a4d0bd9115ff9",
18
- "worker/src/utils/db-schema-deploy/client-permissions.ts": "88dcdcf44e2739c899303ebcc6220f7db476a47f8096313f1afaae00497054d4",
19
+ "worker/src/utils/db-schema-deploy/client-contract-source.ts": "b0a3b5e6e32a3269e6911c4f5c90d93457d8d93d5486678a9be082049f937be8",
20
+ "worker/src/utils/db-schema-deploy/client-permissions.ts": "a2b818fa179c28af1ab2a6742d7edcb04dbd9740ee10dd5ce853a385a53b5f76",
19
21
  "worker/src/utils/db-schema-deploy/extract-schema-app-roles.ts": "1c0547678c05c140e5458046315c488599006b19087b540fe6ede938b7131311",
20
22
  "worker/src/utils/db-schema-deploy/extract-schema-bindings.ts": "f323bb7d4f27b74270bccfe7e3e14e7d3b00d8464ca7a42ea726eae8ca208c7d",
21
23
  "worker/src/utils/db-schema-deploy/extract-schema-files.ts": "00bea24e28a90d1deff83bab4ca92f5e17929281b4f63c3617d95b38f4384677",
24
+ "worker/src/utils/db-schema-deploy/extract-schema-grants.ts": "2a9a3258ee91a208ad8ee686f0283c0c821b75735ed022b3137c96d72b4e84ab",
22
25
  "worker/src/utils/db-schema-deploy/extract-schema-groups.ts": "afd3aece7455ff9beee3d5438956c02fe598a2c43ded0b38b162ebad3fdaa233",
23
26
  "worker/src/utils/db-schema-deploy/extract-schema-intake.ts": "65e2db5853d7a680e7634eb72ee76875eb560526c88e19f3425f02a5b88b6314",
24
27
  "worker/src/utils/db-schema-deploy/extract-schema-links.ts": "0d5c7f8d939d1924ae7f9349278c7f095b5e38b32dc8915a2a836364ff5ba60b",
25
28
  "worker/src/utils/db-schema-deploy/extract-schema-options.ts": "0998748a953fa9df742a7bdcbbce01f4fc56f9735ddbe3adf9e01facd82f87ad",
26
29
  "worker/src/utils/db-schema-deploy/extract-schema-parents.ts": "4fd79529b301b04581aa91fd9a3af846c85c15311cea717b2873021ce66486ff",
27
30
  "worker/src/utils/db-schema-deploy/extract-schema-relations.ts": "f5deac350ee915758f61d4be33711d23bad51ab20abcf153a463f0c90bfc3e27",
28
- "worker/src/utils/db-schema-deploy/extract-schema-roles.ts": "209cc8155c3d321b98421beaa25636e20a2ba329ae4243e749e96a40bb2de155",
29
- "worker/src/utils/db-schema-deploy/extract-schema-ts.ts": "882e0402bebdf8f30f697ce78cf9585f175878ef670e816a0c7eea6bbf7b7e85",
31
+ "worker/src/utils/db-schema-deploy/extract-schema-roles.ts": "d42ae8375ab44acc1b8ae43101cae4df727606965ef172f858676dca6958f3de",
32
+ "worker/src/utils/db-schema-deploy/extract-schema-ts.ts": "d03adf97f6fd490196e8e22d4fffbb1c53028553fc1e506e950e7101378ec421",
30
33
  "worker/src/utils/db-schema-deploy/schema-constants.ts": "9742bc649f494963af4ae2039a1d6062cc6dbe087285bdf470f6ee71d9f76aac",
31
34
  "worker/src/utils/db-schema-deploy/schema-ownership.ts": "e6c811a87bc657707be3518dfe547c6d97718ac073108b126eb7f791c9c08202",
32
35
  "worker/src/utils/managed-groups/errors.ts": "4830b1ad7357a79760b0bcc68884e562cfbc07d12a37cc73651a6fcb256d682f",
33
36
  "worker/src/utils/managed-groups/policy.ts": "2c5b48479a2925bea9a820022c63ca5fa827e2ff5531fe1ab6c0b058b7212b39",
34
- "worker/src/utils/reference-check-inputs.ts": "c909cdc79cb722eb2c5d16dad75a835c03f2288f5a536f75cfae7291f7bcff86"
37
+ "worker/src/utils/reference-check-inputs.ts": "59c7c8d3b4aaf8bffb2a54964e41f909437745d001b093edd74cc135f4edcf67"
35
38
  },
36
- "sha256": "474563607451e4ebd795d114580fb9ffb8de927d61b34710c056c309c55ce7ee"
39
+ "sha256": "b88c7de7c2393bb422722885eb5b677541b5adde856fe0c511db7aa940453a5b"
37
40
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "repository": "Somewhere-Cloud/somewhere-tech",
3
+ "commit": "902bf71b49d9b53eab7a6fd9b5de6bc67a4b7c1b"
4
+ }
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "esbuild": "0.27.3",
3
3
  "source_files": {
4
- "../../../../../../pmwork/wt/files-migration-c0-rig/worker/node_modules/acorn/dist/acorn.mjs": "b4c8c70200e72bae33cf1085e0ecb1e792c1b6924ed50cab817caf14f51bb249",
5
4
  "shared/customer-function-limits.ts": "639630f1efc4adc1a82191bbb5f49a6e20fde4c6a7c673bd376ce6582634776e",
6
5
  "shared/d1-region.ts": "71cda96cfead241b4f4e35b8cd6b1d8e577f072257e91a8dbe0deaa1b142b378",
7
6
  "shared/d1-session.ts": "2ae29b74bba68016c86d25fa2a58f8c2fce4aca8fe57fafc253d380c47a3c0ab",
8
7
  "shared/draft-execution-authority.ts": "607db6162732cc55798f1b871103c49b246f6667c1e4c7526abd85416a50abf6",
9
8
  "shared/public-result.ts": "85ba1a6dd4136fd7362cf7f38b3042b1cacfc389af8c28343398c1ba83d26298",
10
- "worker/containers/compile/declared-data-contract.cjs": "6afb0b85f333ba8f6c60246857a05f0bcebb54e189f612476516e4a9aea5be35",
9
+ "worker/containers/compile/declared-data-contract.cjs": "6d421db4a64f7f3ea58ec7bf773a1090a0f04bc99d59219178f3b1b602ad3d68",
11
10
  "worker/containers/compile/function-route.cjs": "e7faf1104ba95e27921901b4619bd98aa6a2be47cc10af00097fd4957744606b",
11
+ "worker/node_modules/acorn/dist/acorn.mjs": "b4c8c70200e72bae33cf1085e0ecb1e792c1b6924ed50cab817caf14f51bb249",
12
12
  "worker/src/runtime/access-token.ts": "f6ab74f3a9e0bbfb15ac5a6a2f7391f4fb1e4e03b7358fbf8b61d962d14582ef",
13
13
  "worker/src/runtime/agent-step.generated.ts": "72dc0238e0c41142d2229cdd95a1b2b259db6baa3887181de21da1336780916b",
14
14
  "worker/src/runtime/agent.ts": "26c886d4d15710725079321d3e387266ca0681d9a45db666e55cc0e87c3f3d34",
@@ -19,42 +19,42 @@
19
19
  "worker/src/runtime/auth-refresh-response.ts": "90dcc38a5666c6f6124c53e1e311012b2104115e970217f829c9c90f3d7c3325",
20
20
  "worker/src/runtime/auth-response.ts": "f435243139504d71621f0da9737cd049e99681b516ccae50248642da32b412c2",
21
21
  "worker/src/runtime/auth-server.ts": "f07392d684d3b61df6056977db82210c73884d219a82464fb633240fc490aa73",
22
- "worker/src/runtime/auth.ts": "406a603f7aad4144a573c73eab1db7de21d859bb1716ef29e70400ac12c06932",
22
+ "worker/src/runtime/auth.ts": "2d4c47653d961db1b913652ca096ffb07996b64c07a7d6a1d7a5263f614d2024",
23
23
  "worker/src/runtime/billing.ts": "1402812ce082564bb5cb520c99a657f076d356f090e600b1ff7a8bd90bdb4206",
24
24
  "worker/src/runtime/calendar.ts": "483a7e0151b5cff2b0cccadc52da2a32d547c87a565edbbe66d7a2a26b537371",
25
25
  "worker/src/runtime/connect.ts": "45bba4d2f90d3fe5bc60a985dacf459e1132f89fbbcbe369ec2829100acc049a",
26
- "worker/src/runtime/context-head.ts": "4cdbbb0e42543d980013836690f0e34be795cf29908c3bd3e6afe735f31d4e92",
26
+ "worker/src/runtime/context-head.ts": "0ea478fe0b799d22c7aa380eec673884ebb56d3cfd7c98bd429d704675f75720",
27
27
  "worker/src/runtime/context-tail.ts": "ec81c8c4c4613005df204e5e88637779cefbf3df7711a8c02ac513574a46329d",
28
28
  "worker/src/runtime/context.ts": "92eb41e5ea223fe143dff1135f9247110fb1eaad5322f7eb40ab0a3d0caf3a99",
29
29
  "worker/src/runtime/cron.ts": "4aac732fe8ce072dec8e3dafaebfc1b48818ec34bb13b388a4f1bb3f184b4383",
30
30
  "worker/src/runtime/crypto.ts": "5c91be24e7da79a8c11f04e06f70158ce89e09940a0918711c656d4cc893915d",
31
31
  "worker/src/runtime/db-aggregate.ts": "e4c13540182e5990c49f5bd8e3ee53ca387ef2c87787ebc4daf8406d13e9375a",
32
32
  "worker/src/runtime/db-coalesce.ts": "260fd91b0741f709c53005036528ac77669810296c4f82294bdef8cff6a36fdc",
33
- "worker/src/runtime/db-composed-writes.ts": "720c00fd0914509812b3cd00cf6ba880f52e854ce9b86fbfdd4baad825ca4471",
33
+ "worker/src/runtime/db-composed-writes.ts": "ccdbb6042a9512e2fc279d56722fea23c16aa6095a7c55a536cd344232b3eb33",
34
34
  "worker/src/runtime/db-generated-owner-read.ts": "875a1ed906272dc03b4fa9f73ecf9621e09b6c5e3b52905de70d0ae9861f8bec",
35
35
  "worker/src/runtime/db-intake.ts": "d7b7f4b5865f002c741a06c8214af4e54806295826ab69575ed9c403100f0752",
36
36
  "worker/src/runtime/db-live-invalidation.ts": "7697afe746de632cf8669dec657e340185e989ec87c76322ff0755f0b5d8b06f",
37
37
  "worker/src/runtime/db-managed.ts": "e434117b5a852bda83ed199ad73a9eacf3409e5028e539e12618f68a58e61461",
38
- "worker/src/runtime/db-policy.ts": "8181e351bfc1622ea2a6e4f030703f3a976d03567bc8114657a2735b3f9b2b6e",
38
+ "worker/src/runtime/db-policy.ts": "8d3a1680ae69d21ed2fe6ecb09ef7ce7d2e1fc9775e97452187c2d7c9bb3eb85",
39
39
  "worker/src/runtime/db-public-read.ts": "890aa67ab0075295c67b2ecf8b04953232d03f14837a85092b6302256635a43d",
40
40
  "worker/src/runtime/db-raw.ts": "5f0feded55a219bba6d1a422c97f1b0a29b2498458d99e4d12a5b6d1fee0f1e8",
41
41
  "worker/src/runtime/db-relations.ts": "342cfa0da6a9495d29ec81a26d8e342bab6abb7477e586059a4a907674679c94",
42
- "worker/src/runtime/db-render-ir.ts": "57c072d558b6da11574f99d67a1fbd6186121d7af08490c3e16d1c9f2cbd8c0b",
42
+ "worker/src/runtime/db-render-ir.ts": "9163f992462dd23231571da3865bd80ae50f6e6a2ab0cbf8eeee118fdfbc16a7",
43
43
  "worker/src/runtime/db-result-fidelity.ts": "224ae06727afcccd648ed73cffb4216321542e53d2bf7a7212dd0c5d00792f4e",
44
44
  "worker/src/runtime/db-row-links.ts": "af41e679181cb4ecefb2df04f0d8f91f1f23abf50d0594c347fff15d59d4cb66",
45
45
  "worker/src/runtime/db-session-recovery.ts": "7115703aad233f46295915273b05d04f4848ebe05ff1ec0f25f5ce5d298b418e",
46
- "worker/src/runtime/db-structured-execution.ts": "e1a70ea9694a8ce81856d6de311938127ae75cae0bc6744a3d7cf1da31042608",
47
- "worker/src/runtime/db-typed-errors.ts": "ec2ac5b48f7dc6c8fb00af2b15ba25c8bd3a36bd11c50822e5a073ff33692307",
48
- "worker/src/runtime/db.ts": "8ae36b4d9f0409cf61fb51244573478835a0b79ea1f782c264f62092fa6090d1",
46
+ "worker/src/runtime/db-structured-execution.ts": "074b32646ea6648c79cac75100282785153a9eb3003ce84c397b2734c355d2bc",
47
+ "worker/src/runtime/db-typed-errors.ts": "be6d7ffb72b9a7e749207455191444108ed9c4ec38ea670f845f0fa249a5dff8",
48
+ "worker/src/runtime/db.ts": "87e7f7c6c6f4491ef36f85e6a23c9a612c09297ce1d0ffaabf281fca0d26728a",
49
49
  "worker/src/runtime/declared-data-read-plan.ts": "e1b446eea9d274099e2151e280e115d692fc59e94f0f0c872ab9defcb1dfec5c",
50
- "worker/src/runtime/declared-data.ts": "b21932d892438031fab4a2028c84bfe38be440400af16c7aac8ec88ca428080b",
50
+ "worker/src/runtime/declared-data.ts": "011cc2c747942bed9fd03b921cf2a5da91c881771821c78771e6ee78346b67f7",
51
51
  "worker/src/runtime/declared-files.ts": "18ce00c0e8531167e5ec9d331daffc9651678c2bac467b0bab8c38b1c639a5ca",
52
52
  "worker/src/runtime/declared-links.ts": "38e56c455817c5516f015ce2c454fd76cc77b9af7eee4a41eedd2f8aa7e4bfe4",
53
53
  "worker/src/runtime/declared-result.ts": "5851b0b4eb3ee616bb5fd520536cdfeb83a8df52391edfb4e4d0f5fccb5d34c0",
54
54
  "worker/src/runtime/draft-auth-capability.ts": "1a25097e33dff560492a8a80ce85e783ce84a75d0d9fee112515232e233ad9cc",
55
55
  "worker/src/runtime/draft-platform-transport.ts": "010f87ad73fdd694a14db949402b5b4a3bfc8fffc470c817006af8902eb59d61",
56
56
  "worker/src/runtime/email.ts": "eacb2d5e92f1911c415106ad4f7aed8195771d7441da1b8b830178829b85039e",
57
- "worker/src/runtime/fetch.ts": "44f8109fd1c71ed5cd3b04c90cdcd21b5cd4c840bcfd2268fc8327a887b77adc",
57
+ "worker/src/runtime/fetch.ts": "7e9d21b161a0a8994dd0c39325c408064c6b9776075b381c446c701755c3393f",
58
58
  "worker/src/runtime/fs.ts": "b0b3dd3103e006b41cb900454d438d3642b7cee19238f3b00ebedda0d90b874a",
59
59
  "worker/src/runtime/groups.ts": "25e8cea7bc5bd8ef2c2b60cfabd88411d21aea85ca2c5a6d6cabb6b78a456d1b",
60
60
  "worker/src/runtime/hot-config-runtime.ts": "1ce29ebd9a7336a691c1d0013827493bad36169b170e361410f06bb82b7f074d",
@@ -68,11 +68,11 @@
68
68
  "worker/src/runtime/managed-intent-wire.ts": "f983c34732c20f98a17cdd2a8087b46dd313f37e1d1ad5fb6771cc6f2a40a6a9",
69
69
  "worker/src/runtime/notifications.ts": "52360bfd5a14d5e588ce00bc2db623da510f9e9fc57b1275d1ea85a2b6117396",
70
70
  "worker/src/runtime/payments.ts": "b1330115afcea42114441610a128313168b2999a9cfc0b8249bc40803c46d6ab",
71
- "worker/src/runtime/policy-sql.ts": "64d2b95266b5f15b5464d6779912d17f8eba0480143c9802ce65912b65dc7dfd",
71
+ "worker/src/runtime/policy-sql.ts": "70646a3a5d68f389805b7dec774f008e30318693a65d7e8356ecdd164185f641",
72
72
  "worker/src/runtime/postgres.ts": "168aafb45795dfec8796cc133e0f4d057cc9a917d846b4ca653b85e8eabf1498",
73
73
  "worker/src/runtime/push-client.ts": "d8bf70c34336d22edeaeae9976ed3428fa18530bb4766718f8be439497dec0a4",
74
74
  "worker/src/runtime/push.ts": "21b08bd7d3a3df2bd0c54fd393ed4ab2f898dab575d7b640320a8f4914c0932f",
75
- "worker/src/runtime/query-sql.ts": "ab753f57f173b37db75f3c1b796af51ed44cdd1ce78888c97c0e16ca79db6da3",
75
+ "worker/src/runtime/query-sql.ts": "f0668557f7328dace4c4dfaedbd62f6f8a9ca4248f7a823e8058bfa663a31afa",
76
76
  "worker/src/runtime/queue.ts": "8f0bdda9bb857125d42cfbe0a4a50561daca56cc929f17bc91e1d4ba151cc998",
77
77
  "worker/src/runtime/rate-limit.ts": "a63481a2144a46f39228b3e22b2c18df6e4f02d3ae4fac928cd2ee708cc1d1c8",
78
78
  "worker/src/runtime/render.ts": "cbb484f18e410d26fcc87db259e1d10a1b18308405256b6c1a26afc2985707ed",
@@ -83,7 +83,7 @@
83
83
  "worker/src/runtime/storage.ts": "15c7953b994497c7883b774f79ae93bae96e16373a0826cc733d21005de22ad7",
84
84
  "worker/src/runtime/tasks.ts": "75efa2e3083853bfba1dc49745ede8865ddd218b84d568a00da2dbd669f9ab23",
85
85
  "worker/src/runtime/verify-signup.ts": "dcac46b4581794fe875e3f85e3d93a2253b470f60a3c7fcee68543d8be8a6fa1",
86
- "worker/src/runtime/version.ts": "6d0fb383095c0b0b21934814dc64c0af6afb139375c411e82fdc4b8481d1e918",
86
+ "worker/src/runtime/version.ts": "19100ec841397d56b281947a9138e092785a99032423d271db6e117010e88b26",
87
87
  "worker/src/runtime/visitor-session.generated.ts": "9753bc6c195a0072c21102d6caa853990ece23e80971b8726d311bdb93970b90",
88
88
  "worker/src/runtime/web.ts": "269590d44ffa6239bb6e79999b58ba42435c230f045daea52bf73d09519afb0e",
89
89
  "worker/src/security/browser-secret-scan.ts": "31ebc9dd94eed4d0a9a6b67b3b1e2505d4f7812c557c90337e034c1e3994c039",
@@ -97,50 +97,53 @@
97
97
  "worker/src/utils/api-index-route-warnings.ts": "93e13e46c51294430638f003e4a675ecedd1efb2a60eedf5cefe6673f8a69fb8",
98
98
  "worker/src/utils/authority-coalesce.ts": "32d0e0925606f90c4c4d80e6fa46a889b7988a0acb9dbcbe6646e1f309d68114",
99
99
  "worker/src/utils/authority.ts": "6641a63fcad671e753438b8e5abdc335c2622009833fd13a7712f631cfcbeefe",
100
+ "worker/src/utils/authority/client-contract-schema.ts": "e0d0d7a871082d9c0cf68cfbaccc786b1a0dd5f95558f4e2ee4f86c677159e18",
100
101
  "worker/src/utils/authority/intake-bake.ts": "7216e288e40673819295d999b3bdbf5e4319e1e21608e3b81eda9d102ff8d636",
101
- "worker/src/utils/authority/scope-enforcement.ts": "d0f052dc0d788ef7b7326f6013661331d95b4f43b77e6851c0c47e1797f24981",
102
+ "worker/src/utils/authority/role-domain-map.ts": "dc1b6abba79278a970cc5a07c4eb7ea73acac262425b489670e90508b95a5ff1",
103
+ "worker/src/utils/authority/scope-enforcement.ts": "23a1489ea5f1fc995f035a5ccfe6bb20735d6495cfbe735c38f1adbb76bf9e3d",
102
104
  "worker/src/utils/code-run-managed-authority.ts": "60ccd920455ec2f03529908bfaacb9327f8371aa730d6c238da7868ff70c8f71",
103
105
  "worker/src/utils/database-full.ts": "6b25f74f54d8323167db671aed1cc68a79e380af281afaad6121babf01f0e3f0",
104
106
  "worker/src/utils/database-plane-bindings.ts": "1b2e9867c155eaa8da9624208f1500afebac8e156d70a9c23bcc96f55780c29b",
105
107
  "worker/src/utils/db-schema-deploy/bigint-text.ts": "ef3f581daeecb234d2c1e288bc09495a6facd7b0354b300134918f6c0cf10cc2",
106
- "worker/src/utils/db-schema-deploy/client-permissions.ts": "88dcdcf44e2739c899303ebcc6220f7db476a47f8096313f1afaae00497054d4",
108
+ "worker/src/utils/db-schema-deploy/client-permissions.ts": "a2b818fa179c28af1ab2a6742d7edcb04dbd9740ee10dd5ce853a385a53b5f76",
107
109
  "worker/src/utils/db-schema-deploy/extract-schema-app-roles.ts": "1c0547678c05c140e5458046315c488599006b19087b540fe6ede938b7131311",
108
110
  "worker/src/utils/db-schema-deploy/extract-schema-bindings.ts": "f323bb7d4f27b74270bccfe7e3e14e7d3b00d8464ca7a42ea726eae8ca208c7d",
109
111
  "worker/src/utils/db-schema-deploy/extract-schema-files.ts": "00bea24e28a90d1deff83bab4ca92f5e17929281b4f63c3617d95b38f4384677",
112
+ "worker/src/utils/db-schema-deploy/extract-schema-grants.ts": "2a9a3258ee91a208ad8ee686f0283c0c821b75735ed022b3137c96d72b4e84ab",
110
113
  "worker/src/utils/db-schema-deploy/extract-schema-groups.ts": "afd3aece7455ff9beee3d5438956c02fe598a2c43ded0b38b162ebad3fdaa233",
111
114
  "worker/src/utils/db-schema-deploy/extract-schema-intake.ts": "65e2db5853d7a680e7634eb72ee76875eb560526c88e19f3425f02a5b88b6314",
112
115
  "worker/src/utils/db-schema-deploy/extract-schema-links.ts": "0d5c7f8d939d1924ae7f9349278c7f095b5e38b32dc8915a2a836364ff5ba60b",
113
116
  "worker/src/utils/db-schema-deploy/extract-schema-options.ts": "0998748a953fa9df742a7bdcbbce01f4fc56f9735ddbe3adf9e01facd82f87ad",
114
117
  "worker/src/utils/db-schema-deploy/extract-schema-parents.ts": "4fd79529b301b04581aa91fd9a3af846c85c15311cea717b2873021ce66486ff",
115
118
  "worker/src/utils/db-schema-deploy/extract-schema-relations.ts": "f5deac350ee915758f61d4be33711d23bad51ab20abcf153a463f0c90bfc3e27",
116
- "worker/src/utils/db-schema-deploy/extract-schema-roles.ts": "209cc8155c3d321b98421beaa25636e20a2ba329ae4243e749e96a40bb2de155",
117
- "worker/src/utils/db-schema-deploy/extract-schema-ts.ts": "882e0402bebdf8f30f697ce78cf9585f175878ef670e816a0c7eea6bbf7b7e85",
119
+ "worker/src/utils/db-schema-deploy/extract-schema-roles.ts": "d42ae8375ab44acc1b8ae43101cae4df727606965ef172f858676dca6958f3de",
120
+ "worker/src/utils/db-schema-deploy/extract-schema-ts.ts": "d03adf97f6fd490196e8e22d4fffbb1c53028553fc1e506e950e7101378ec421",
118
121
  "worker/src/utils/db-schema-deploy/retention-naming.ts": "54d3da5dafdaf98bd9eb7e0117de213aeeb1b91e7016d81694632c0dd7e6ab4b",
119
122
  "worker/src/utils/db-schema-deploy/retired-table.ts": "3675b8f1cfb48591b4741a4d45d8915cc36901fc68b64769bc1922f9aae11b07",
120
123
  "worker/src/utils/db-schema-deploy/schema-constants.ts": "9742bc649f494963af4ae2039a1d6062cc6dbe087285bdf470f6ee71d9f76aac",
121
124
  "worker/src/utils/db-schema-deploy/schema-ownership.ts": "e6c811a87bc657707be3518dfe547c6d97718ac073108b126eb7f791c9c08202",
122
125
  "worker/src/utils/deploy-classify.ts": "d565b3c1d7628932ba69a1d93a82364319b66cfed1147b8639fff567a1e63b88",
123
- "worker/src/utils/endpoint-auth-mode.ts": "fa3980625bb78cddf8691e935e316cf54f8b23b11d4592f70ccf57c36915fadf",
126
+ "worker/src/utils/endpoint-auth-mode.ts": "101344f5b2595448fce1e5b29a80ec1caf5d2fd3657fd047cf6a04b7df61e792",
124
127
  "worker/src/utils/endpoint-rate-limit.ts": "d22a1d9901200403c30a35ba9325552c7e8ca54b47a2279f63d686b75735e598",
125
128
  "worker/src/utils/errors.ts": "6bcb5fa4b7ddb35881cd96e6e7090f5ec8b3df2cbc2a8cd5b2b543d578a54b00",
126
129
  "worker/src/utils/function-bundle-metadata.ts": "f1a3c29046a224c6a8299bae4356c56477433b3bc66a22abf0ddd9a45a63f5e7",
127
130
  "worker/src/utils/function-bundle-postgres.ts": "4afd199c82e98a940a36af01f305080907b6e450f97d894d971a4a6b6a933a9e",
128
131
  "worker/src/utils/function-bundle-transport.ts": "19b76286f99d9f1fcd7ad6da7e3e513edff9099d5bb2ec9c4f886829d3ba363d",
129
- "worker/src/utils/function-bundle.ts": "32c1ef264ec7e9bf8568360d7c735126bdf17da9ddd79f1ce6195d620290d44c",
130
- "worker/src/utils/function-trace-source.ts": "b3fba0aa6396d2985ad2a4c5dccda830cb9fbba1aea0c1e1f6c5377a286dfe88",
132
+ "worker/src/utils/function-bundle.ts": "91e908972a5e87120c9cdabff5c163326fc7b1f112e6df961b02926530556282",
133
+ "worker/src/utils/function-trace-source.ts": "c3bad68a76200dbcf03437754633e9ec36274508f17ab90481b5504e475da4bb",
131
134
  "worker/src/utils/json-exact-integers.ts": "e2eb8d3b2e17da363eb14fb46d876208579e2e92bfac173fb27527e6c4fb575e",
132
- "worker/src/utils/log-sanitize.ts": "a114fdd8a51fe5dbbc077cb526b42c63520255153d2314410ddb0b5fb712e5fb",
135
+ "worker/src/utils/log-sanitize.ts": "b0f1756b95d5ebf9bbaef647ba8f1aa71889996a5859104b2cd67b924fe6ae56",
133
136
  "worker/src/utils/managed-groups/errors.ts": "4830b1ad7357a79760b0bcc68884e562cfbc07d12a37cc73651a6fcb256d682f",
134
137
  "worker/src/utils/managed-groups/policy.ts": "2c5b48479a2925bea9a820022c63ca5fa827e2ff5531fe1ab6c0b058b7212b39",
135
138
  "worker/src/utils/platform-data/bounded-reply.ts": "0f915cd67033ac4afdf7d760ab30a329cdf5d53bd4adc37791065d9341390ea0",
136
139
  "worker/src/utils/platform-data/door.ts": "59ba7dda8663d7f1c2529ee01943047d866ca01a39626373e4f046458d08e440",
137
- "worker/src/utils/platform-data/read-only.ts": "b7f5a197ee1fc14fbdd538df5d789bac28ddfa17bf0b8f2fec234e9b692fdb44",
140
+ "worker/src/utils/platform-data/read-only.ts": "8625ff7a41c74ef18fb4656da1de2359267b2ab286812a01703ae0aec528efbf",
138
141
  "worker/src/utils/platform-data/targets.ts": "cbd3f00d1ecdda0aa7fc3f5a822a43ca2d12b9558e0b4ef9c6e4156516512875",
139
142
  "worker/src/utils/project-resolve.ts": "3d72006f9d31f0667ab68eaeb331c6c017292d005d7a93e26cb2f9134182f1e8",
140
- "worker/src/utils/release/release-table-map.ts": "eedb5c607557df6a1327801197b28f5be094ed0b55fb977b32a393501a5893d2",
141
- "worker/src/utils/sql-tokens.ts": "a00607453624fb05ee2a063b73b290ce26ffa50cc133c331152862d533881b7f",
143
+ "worker/src/utils/release/release-table-map.ts": "c2d7fef086bc13296aa262534702fa744aa498237e157a13688a403a43a76bc8",
144
+ "worker/src/utils/sql-tokens.ts": "ac643c765def38905a0600ae155ad909335cae1a7c1912da7bc87af25acb752e",
142
145
  "worker/src/vendor/neondatabase-serverless/source.generated.ts": "96a3c18fde7d8888fdb53a4d7cd0721c238a234521d2084d1e66868a8df8e69c"
143
146
  },
144
- "sha256": "64867c519f174ea0d7aba6e72b8744ce30314753f01cba8b036f5789ab1faadc",
147
+ "sha256": "63941fff948cab385cbf64c59297e5abca4a63bf1bdfe9b29523e5423227c375",
145
148
  "fixtures_sha256": "908827d1430f4af5a83cae59ed476abc51dc9648757eac0089fe6e6db95f66c5"
146
149
  }