@substrat-run/kernel 0.147.0 → 0.149.0
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/attachment-sweep.d.ts +208 -0
- package/dist/attachment-sweep.d.ts.map +1 -0
- package/dist/attachment-sweep.js +318 -0
- package/dist/attachment-sweep.js.map +1 -0
- package/dist/audit-outcome.d.ts +1 -1
- package/dist/audit-outcome.d.ts.map +1 -1
- package/dist/audit-outcome.js +4 -2
- package/dist/audit-outcome.js.map +1 -1
- package/dist/export-break.d.ts +137 -0
- package/dist/export-break.d.ts.map +1 -0
- package/dist/export-break.js +219 -0
- package/dist/export-break.js.map +1 -0
- package/dist/index.d.ts +24 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -7
- package/dist/index.js.map +1 -1
- package/dist/install-receipts.d.ts +116 -0
- package/dist/install-receipts.d.ts.map +1 -0
- package/dist/install-receipts.js +162 -0
- package/dist/install-receipts.js.map +1 -0
- package/dist/invocation-line.d.ts +85 -0
- package/dist/invocation-line.d.ts.map +1 -1
- package/dist/invocation-line.js +43 -0
- package/dist/invocation-line.js.map +1 -1
- package/dist/map-bounded.d.ts +8 -0
- package/dist/map-bounded.d.ts.map +1 -0
- package/dist/map-bounded.js +16 -0
- package/dist/map-bounded.js.map +1 -0
- package/dist/migration-digest.d.ts +56 -0
- package/dist/migration-digest.d.ts.map +1 -1
- package/dist/migration-digest.js +92 -0
- package/dist/migration-digest.js.map +1 -1
- package/dist/migration-fence.d.ts +14 -0
- package/dist/migration-fence.d.ts.map +1 -0
- package/dist/migration-fence.js +515 -0
- package/dist/migration-fence.js.map +1 -0
- package/dist/migration-replay.d.ts +52 -0
- package/dist/migration-replay.d.ts.map +1 -0
- package/dist/migration-replay.js +140 -0
- package/dist/migration-replay.js.map +1 -0
- package/dist/module-migrations.d.ts +3 -3
- package/dist/module-migrations.js +3 -3
- package/dist/peer.d.ts +32 -2
- package/dist/peer.d.ts.map +1 -1
- package/dist/peer.js +100 -4
- package/dist/peer.js.map +1 -1
- package/dist/permission-eval.d.ts +8 -0
- package/dist/permission-eval.d.ts.map +1 -1
- package/dist/permission-eval.js +14 -0
- package/dist/permission-eval.js.map +1 -1
- package/dist/platform-sweep.d.ts +114 -361
- package/dist/platform-sweep.d.ts.map +1 -1
- package/dist/platform-sweep.js +134 -561
- package/dist/platform-sweep.js.map +1 -1
- package/dist/promote-review.d.ts +125 -0
- package/dist/promote-review.d.ts.map +1 -0
- package/dist/promote-review.js +181 -0
- package/dist/promote-review.js.map +1 -0
- package/dist/schedule-state.d.ts +91 -0
- package/dist/schedule-state.d.ts.map +1 -0
- package/dist/schedule-state.js +118 -0
- package/dist/schedule-state.js.map +1 -0
- package/dist/scope-copy-ledger.d.ts +29 -0
- package/dist/scope-copy-ledger.d.ts.map +1 -1
- package/dist/scope-copy-ledger.js +23 -0
- package/dist/scope-copy-ledger.js.map +1 -1
- package/dist/scope-copy.d.ts.map +1 -1
- package/dist/scope-copy.js +3 -2
- package/dist/scope-copy.js.map +1 -1
- package/dist/scope-host.d.ts +303 -11
- package/dist/scope-host.d.ts.map +1 -1
- package/dist/scope-host.js.map +1 -1
- package/dist/scope-identity.d.ts +68 -0
- package/dist/scope-identity.d.ts.map +1 -0
- package/dist/scope-identity.js +75 -0
- package/dist/scope-identity.js.map +1 -0
- package/dist/scope-store.d.ts +9 -6
- package/dist/scope-store.d.ts.map +1 -1
- package/dist/scope-store.js.map +1 -1
- package/dist/spine-restore.d.ts +2 -0
- package/dist/spine-restore.d.ts.map +1 -1
- package/dist/spine-restore.js +6 -1
- package/dist/spine-restore.js.map +1 -1
- package/dist/store-driver-releases.d.ts +306 -0
- package/dist/store-driver-releases.d.ts.map +1 -0
- package/dist/store-driver-releases.js +581 -0
- package/dist/store-driver-releases.js.map +1 -0
- package/dist/table-ownership.d.ts +5 -2
- package/dist/table-ownership.d.ts.map +1 -1
- package/dist/table-ownership.js +19 -10
- package/dist/table-ownership.js.map +1 -1
- package/dist/testing.d.ts +2 -0
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +2 -0
- package/dist/testing.js.map +1 -1
- package/dist/upload-link.d.ts +142 -0
- package/dist/upload-link.d.ts.map +1 -0
- package/dist/upload-link.js +441 -0
- package/dist/upload-link.js.map +1 -0
- package/dist/version-migrations.d.ts +63 -1
- package/dist/version-migrations.d.ts.map +1 -1
- package/dist/version-migrations.js +174 -8
- package/dist/version-migrations.js.map +1 -1
- package/dist/vertical-scope-stores.d.ts +43 -0
- package/dist/vertical-scope-stores.d.ts.map +1 -0
- package/dist/vertical-scope-stores.js +195 -0
- package/dist/vertical-scope-stores.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-ownership.d.ts","sourceRoot":"","sources":["../src/table-ownership.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table-ownership.d.ts","sourceRoot":"","sources":["../src/table-ownership.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/D;;;GAGG;AACH,eAAO,MAAM,gBAAgB,8LAO5B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAWhF;AAoBD,sEAAsE;AACtE,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GAClF;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,4GAA4G;AAC5G,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CA4BjE;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,wFAAwF;AACxF,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClF;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AA8CtD,kEAAkE;AAClE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,EACjC,IAAI,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACzD,SAAS,EAAE,CAiBb;AA0CD,8FAA8F;AAC9F,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAGpH;AA0DD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,EACzE,EAAE,EAAE,MAAM,GACT,IAAI,CAgBN"}
|
package/dist/table-ownership.js
CHANGED
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
* means the erasure refuses that table — the conservative answer, never a guess.
|
|
29
29
|
*/
|
|
30
30
|
import { namesSpineTable, substratError, tokenizeSql } from '@substrat-run/contracts';
|
|
31
|
+
import { fenceMigration } from './migration-fence.js';
|
|
31
32
|
import { executableSqlStatements, splitSqlStatements } from './sql-statements.js';
|
|
32
33
|
/** The ledger's name — also what an authored migration may never name. */
|
|
33
34
|
const TABLE_OWNERS = '_substrat_table_owners';
|
|
@@ -156,17 +157,25 @@ function ledgerStore(sql, source, at) {
|
|
|
156
157
|
* afterwards (`recordOwnershipSteps`), so the journal's `rows_changed` counts the migration's
|
|
157
158
|
* own writes and none of the kernel's bookkeeping.
|
|
158
159
|
*/
|
|
159
|
-
export function runMigrationStatements(sql,
|
|
160
|
+
export function runMigrationStatements(sql, migration, exec, step) {
|
|
160
161
|
const steps = [];
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
162
|
+
const run = () => {
|
|
163
|
+
let tables = moduleTableNames(sql);
|
|
164
|
+
// Comment-blanked text, at the same boundaries: what SQLite stores is what a later ALTER rewrites.
|
|
165
|
+
for (const statement of executableSqlStatements(migration.sql)) {
|
|
166
|
+
exec(statement);
|
|
167
|
+
const after = moduleTableNames(sql);
|
|
168
|
+
if (after.size !== tables.size || [...after].some((t) => !tables.has(t)))
|
|
169
|
+
steps.push({ before: tables, after });
|
|
170
|
+
tables = after;
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
// #115: an authored migration may not lose data the scope holds unless it declares the loss.
|
|
174
|
+
// Kernel-derived DDL builds indexes over that data and is not held to it.
|
|
175
|
+
if (step.authored)
|
|
176
|
+
fenceMigration(sql, migration, step.key, run);
|
|
177
|
+
else
|
|
178
|
+
run();
|
|
170
179
|
return steps;
|
|
171
180
|
}
|
|
172
181
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-ownership.js","sourceRoot":"","sources":["../src/table-ownership.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table-ownership.js","sourceRoot":"","sources":["../src/table-ownership.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAiB,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAElF,0EAA0E;AAC1E,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;CAO/B,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,gCAAgC,CAAC,GAAW,EAAE,IAAY;IACxE,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC;YAC9E,MAAM,aAAa,CACjB,WAAW,EACX,GAAG,IAAI,UAAU,YAAY,8DAA8D;gBACzF,sCAAsC,EACxC,EAAE,MAAM,EAAE,aAAa,EAAE,CAC1B,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,SAAS,gBAAgB,CAAC,GAAc;IACtC,OAAO,IAAI,GAAG,CACZ,GAAG;SACA,KAAK,CAAmB,qDAAqD,CAAC;SAC9E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAC3F,CAAC;AACJ,CAAC;AAED,wGAAwG;AACxG,SAAS,MAAM,CAAC,KAA2B;IACzC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1E,CAAC;AAQD,4GAA4G;AAC5G,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,uFAAuF;IACvF,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACxG,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC;YACrD,IAAI,IAAI;gBAAE,CAAC,IAAI,CAAC,CAAC;YACjB,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;gBAAE,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO;gBAAE,SAAS;YAC/B,CAAC,IAAI,CAAC,CAAC;YACP,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC;YACjF,IAAI,WAAW;gBAAE,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,KAAK,IAAI,CAAC,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;YAC3F,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzE,IAAI,IAAI,IAAI,EAAE;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,IAAI,KAAK;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAmBD;;;GAGG;AACH,SAAS,gBAAgB,CAAC,KAAiB,EAAE,MAAmB;IAC9D,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACtC,OAAO;QACT,KAAK,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QACD,KAAK,MAAM;YACT,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,SAAS,WAAW,CAAC,GAAc,EAAE,MAA+B,EAAE,EAAU;IAC9E,OAAO;QACL,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CACb,GAAG,CAAC,KAAK,CAAwB,yBAAyB,YAAY,uBAAuB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxG,EAAE,SAAS,IAAI,IAAI;QACvB,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACpB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,GAAG,CAAC,IAAI,CAAC,eAAe,YAAY,uBAAuB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtE,OAAO;YACT,CAAC;YACD,GAAG,CAAC,IAAI,CACN,eAAe,YAAY;;gDAEa,EACxC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAC3B,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,GAAG,CAAC,IAAI,CAAC,eAAe,YAAY,uBAAuB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,CAAC;KACF,CAAC;AACJ,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAAc,EACd,SAAuB,EACvB,IAAiC,EACjC,IAA0D;IAE1D,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,GAAS,EAAE;QACrB,IAAI,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACnC,mGAAmG;QACnG,KAAK,MAAM,SAAS,IAAI,uBAAuB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,SAAS,CAAC,CAAC;YAChB,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAChH,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IACF,6FAA6F;IAC7F,0EAA0E;IAC1E,IAAI,IAAI,CAAC,QAAQ;QAAE,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;;QAC5D,GAAG,EAAE,CAAC;IACX,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,MAAM,CAAC,KAAwB;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC;IAChE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACvF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,QAAgB,EAAE,IAAe;IACvD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACvG,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACnF,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,MAAM,aAAa,CACjB,UAAU,EACV,gBAAgB,QAAQ,mDAAmD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI;QACnG,aAAa,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,gDAAgD,CAC1F,CAAC;AACJ,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,oBAAoB,CAAC,GAAc,EAAE,QAAgB,EAAE,KAA2B,EAAE,EAAU;IAC5G,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC;YAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACjH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,4BAA4B,CACnC,GAAc,EACd,MAAwB,EACxB,cAAyE,EACzE,EAAU;IAEV,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,YAAY,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IACpG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CACvB,gFAAgF,CACjF,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC/C,MAAM,KAAK,GAAe;QACxB,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;KACpC,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE;gBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACzB,IAAI,EAAE,CAAC,WAAW,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;oBAAE,SAAS;gBACpD,gBAAgB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YAC/G,CAAC;iBAAM,CAAC;gBACN,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAc,EACd,QAAgB,EAChB,MAAwB,EACxB,cAAyE,EACzE,EAAU;IAEV,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC9B,4BAA4B,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CACzB,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,CAAC,KAAK,CAAwB,yBAAyB,YAAY,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpG,EAAE,SAAS,KAAK,QAAQ,CAC7B,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,aAAa,CACjB,qBAAqB,EACrB,YAAY,QAAQ,UAAU,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,wCAAwC;YAC3G,mGAAmG,CACtG,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/testing.d.ts
CHANGED
|
@@ -14,4 +14,6 @@ export declare function forgeBoundOperationsForTest(handlers: HandlerMap, derive
|
|
|
14
14
|
concurrency?: BoundOperations['concurrency'];
|
|
15
15
|
idempotencyOptOuts?: BoundOperations['idempotencyOptOuts'];
|
|
16
16
|
}): BoundOperations;
|
|
17
|
+
/** How many migration set digests this isolate computed (#2349): a scope with nothing pending computes none. */
|
|
18
|
+
export { migrationSetDigestComputations } from './migration-digest.js';
|
|
17
19
|
//# sourceMappingURL=testing.d.ts.map
|
package/dist/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,eAAe,EAAQ,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEhF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IAC7C,kBAAkB,CAAC,EAAE,eAAe,CAAC,oBAAoB,CAAC,CAAC;CAC5D,GACA,eAAe,CAEjB"}
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,eAAe,EAAQ,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEhF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IAC7C,kBAAkB,CAAC,EAAE,eAAe,CAAC,oBAAoB,CAAC,CAAC;CAC5D,GACA,eAAe,CAEjB;AAED,gHAAgH;AAChH,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/testing.js
CHANGED
|
@@ -12,4 +12,6 @@ import { BoundOperations, MINT } from './module-operations.js';
|
|
|
12
12
|
export function forgeBoundOperationsForTest(handlers, derived) {
|
|
13
13
|
return new BoundOperations(MINT, handlers, derived);
|
|
14
14
|
}
|
|
15
|
+
/** How many migration set digests this isolate computed (#2349): a scope with nothing pending computes none. */
|
|
16
|
+
export { migrationSetDigestComputations } from './migration-digest.js';
|
|
15
17
|
//# sourceMappingURL=testing.js.map
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,eAAe,EAAE,IAAI,EAAmB,MAAM,wBAAwB,CAAC;AAEhF,MAAM,UAAU,2BAA2B,CACzC,QAAoB,EACpB,OAIC;IAED,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC"}
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,eAAe,EAAE,IAAI,EAAmB,MAAM,wBAAwB,CAAC;AAEhF,MAAM,UAAU,2BAA2B,CACzC,QAAoB,EACpB,OAIC;IAED,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,gHAAgH;AAChH,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { type AttachmentRecord, type CheckSubject, type Decision, type DomainEventInput, type EntityRef, type Instant, type MintedUploadLink, type PermissionKey, type PrincipalId, type UploadLinkMintInput, type UploadLinkPolicy, type UploadLinkRecord, type UploadLinkView } from '@substrat-run/contracts';
|
|
2
|
+
import { type RedeemedUploadLink, type ScopedSql } from './scope-host.js';
|
|
3
|
+
export declare const UPLOAD_LINK_DDL = "\n CREATE TABLE IF NOT EXISTS _substrat_upload_links (\n id TEXT PRIMARY KEY,\n -- SHA-256 hex of the secret. The secret itself is stored NOWHERE.\n token_hash TEXT NOT NULL UNIQUE,\n entity_type TEXT NOT NULL,\n entity_id TEXT NOT NULL,\n -- NULL = the uploader names the file.\n filename TEXT,\n max_bytes INTEGER NOT NULL,\n -- JSON array of media types / families, or NULL = any type.\n content_types TEXT,\n visibility TEXT NOT NULL,\n -- The principal the attachment is written AS: its author, and whose `writePermission`\n -- is checked again at redemption.\n minted_by TEXT NOT NULL,\n minted_at TEXT NOT NULL,\n expires_at TEXT NOT NULL,\n redeemed_at TEXT,\n -- The attachment this link produced.\n attachment_id TEXT,\n -- #2315: SHA-256 hex of the `Idempotency-Key` the spending request carried, or NULL when it\n -- carried none. A retry of that redemption with the same key gets the same attachment back;\n -- the key itself is stored nowhere.\n redeemed_key_hash TEXT,\n -- Tombstone, never a delete: a link that was minted is evidence of why a file arrived.\n revoked_at TEXT,\n revoked_by TEXT\n );\n CREATE INDEX IF NOT EXISTS _substrat_upload_links_entity\n ON _substrat_upload_links (entity_type, entity_id);\n";
|
|
4
|
+
/** The tables `UPLOAD_LINK_DDL` builds — what a copy of a scope leaves behind. */
|
|
5
|
+
export declare const UPLOAD_LINK_TABLE_NAMES: readonly ['_substrat_upload_links'];
|
|
6
|
+
/** `reason` slugs a redemption refuses with, so the HTTP route can answer 410/413/415 and a client can act. */
|
|
7
|
+
export declare const UPLOAD_LINK_GONE = "upload_link_gone";
|
|
8
|
+
export declare const UPLOAD_LINK_TOO_LARGE = "upload_link_too_large";
|
|
9
|
+
export declare const UPLOAD_LINK_TYPE_REFUSED = "upload_link_type_refused";
|
|
10
|
+
export declare const UPLOAD_LINK_WRONG_TARGET = "upload_link_wrong_target";
|
|
11
|
+
/** A replay whose bytes are not the bytes the redemption stored (#2315). */
|
|
12
|
+
export declare const UPLOAD_LINK_REPLAY_MISMATCH = "upload_link_replay_mismatch";
|
|
13
|
+
/** A fresh link secret: 256 bits, base64url, prefixed. Only its hash is ever stored. */
|
|
14
|
+
export declare function mintUploadLinkSecret(): string;
|
|
15
|
+
/**
|
|
16
|
+
* A media type as the platform judges and records it: the essence only — parameters dropped,
|
|
17
|
+
* whitespace trimmed, lowercased — and `image/jpg` spelled `image/jpeg`. The route and the
|
|
18
|
+
* kernel's redemption both judge through this, so a host that calls `redeemUploadLink` with
|
|
19
|
+
* `'image/svg+xml; charset=utf-8'` meets the same rule a `curl` does.
|
|
20
|
+
*/
|
|
21
|
+
export declare function normalizeUploadMediaType(raw: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Types a browser runs rather than shows, named one by one: HTML; `text/xsl`, which Chrome
|
|
24
|
+
* parses as HTML even under `nosniff`; `multipart/x-mixed-replace`, whose parts WebKit renders
|
|
25
|
+
* as documents even under `nosniff`; the two essences the WHATWG MIME Sniffing standard (§7.1)
|
|
26
|
+
* hands to its unknown-type sniffer, which finds HTML in an HTML body; and the JavaScript MIME
|
|
27
|
+
* type essences of the same standard. With them, by rule rather than by list, is every XML type
|
|
28
|
+
* (`isActiveContentType`): a top-level navigation renders XML as a document, where an
|
|
29
|
+
* XHTML-namespace `<script>` runs. The third essence §7.1 sniffs, the any-type wildcard, is not
|
|
30
|
+
* a type a file can be declared as at all (`isMediaTypeEssence`).
|
|
31
|
+
*/
|
|
32
|
+
export declare const ACTIVE_CONTENT_TYPES: ReadonlySet<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Would a browser run `type` (normalized) instead of showing it, when served inline as the
|
|
35
|
+
* vertical's origin? The named set, and every XML type: `+xml` structured syntax
|
|
36
|
+
* (`image/foo+xml`, `application/rss+xml`) as well as `text/xml` and `application/xml`.
|
|
37
|
+
*/
|
|
38
|
+
export declare const isActiveContentType: (type: string) => boolean;
|
|
39
|
+
export declare const isMediaTypeEssence: (type: string) => boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Is `type` admitted by `allowed`? It is normalized first (`normalizeUploadMediaType`), and a
|
|
42
|
+
* result that is not exactly one essence (`isMediaTypeEssence`) is admitted by nothing, not even
|
|
43
|
+
* an absent allowlist: it could not be judged, and it could not be served as a header. `null`
|
|
44
|
+
* admits any well-formed type. A family (`image/*`) admits its members except an active type
|
|
45
|
+
* (`isActiveContentType`): the person holding a link chooses the bytes. An exact entry admits
|
|
46
|
+
* itself, active or not, so admitting SVG or HTML is a line a reviewer reads in `PERMISSIONS.md`.
|
|
47
|
+
*/
|
|
48
|
+
export declare function uploadContentTypeAllowed(allowed: readonly string[] | null, type: string): boolean;
|
|
49
|
+
/** What an operation handler sees as `ctx.attachments`. */
|
|
50
|
+
export interface AttachmentVerbs {
|
|
51
|
+
/**
|
|
52
|
+
* Mint a single-use URL that lets its holder upload ONE file to `entity` — and return the
|
|
53
|
+
* secret and the path that carries it, once.
|
|
54
|
+
*
|
|
55
|
+
* The target must declare `uploadLinks` in its `attachmentTargets` entry, and the caller
|
|
56
|
+
* must hold the target's `writePermission` on the entity (the check an upload makes);
|
|
57
|
+
* it is made again, as the same principal, when the link is redeemed. Only a principal may
|
|
58
|
+
* mint. The operation's own guards — an entity lock, a state check — run in the operation,
|
|
59
|
+
* before this; they are not re-run at redemption, so keep `ttlSeconds` short.
|
|
60
|
+
*
|
|
61
|
+
* ```ts
|
|
62
|
+
* assertAllowed(await ctx.check('contract:write', ref));
|
|
63
|
+
* const link = await ctx.attachments.mintUploadUrl({ entity: ref, filename: 'signed.pdf' });
|
|
64
|
+
* return { url: `${origin}${link.path}`, expiresAt: link.expiresAt };
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* The same tripwire `ctx.capabilities.mint` has applies: while this invocation runs,
|
|
68
|
+
* `ctx.emit` and `ctx.sql` refuse a record carrying the secret verbatim. Transactional with
|
|
69
|
+
* the operation: a mint whose operation throws never happened.
|
|
70
|
+
*/
|
|
71
|
+
mintUploadUrl(input: UploadLinkMintInput): Promise<MintedUploadLink>;
|
|
72
|
+
/** Revoke a link that has not been redeemed. Allowed to anyone who could have minted it. Idempotent. */
|
|
73
|
+
revokeUploadLink(id: string): Promise<void>;
|
|
74
|
+
/** This scope's upload links, newest first — never the secret. What a follow-up operation reads to find the attachment a link produced. */
|
|
75
|
+
uploadLinks(filter?: {
|
|
76
|
+
entity?: EntityRef;
|
|
77
|
+
limit?: number;
|
|
78
|
+
}): UploadLinkRecord[];
|
|
79
|
+
}
|
|
80
|
+
/** What the verbs need of the target's declaration: its write key and its link policy. */
|
|
81
|
+
export interface UploadTarget {
|
|
82
|
+
write: PermissionKey;
|
|
83
|
+
uploadLinks?: UploadLinkPolicy;
|
|
84
|
+
}
|
|
85
|
+
export interface AttachmentVerbDeps {
|
|
86
|
+
/** RAW spine access inside the operation's own transaction. */
|
|
87
|
+
sql: ScopedSql;
|
|
88
|
+
subject: CheckSubject;
|
|
89
|
+
now: Instant;
|
|
90
|
+
/** The operation's OWN check. */
|
|
91
|
+
check: (permission: PermissionKey, entity?: EntityRef) => Promise<Decision>;
|
|
92
|
+
emit: (event: DomainEventInput) => void;
|
|
93
|
+
assertWrites: (verb: string) => void;
|
|
94
|
+
/** This invocation's minted secrets — appended to by `mint`, read by the secret guards. */
|
|
95
|
+
minted: string[];
|
|
96
|
+
/** The declared attachment target for an entity type, if any module declares one. */
|
|
97
|
+
targetOf: (entityType: string) => UploadTarget | undefined;
|
|
98
|
+
}
|
|
99
|
+
export declare function createAttachmentVerbs(deps: AttachmentVerbDeps): AttachmentVerbs;
|
|
100
|
+
/** What the route needs before it reads a byte, and who the write is made as. */
|
|
101
|
+
export interface UploadLinkInspection {
|
|
102
|
+
view: UploadLinkView;
|
|
103
|
+
mintedBy: PrincipalId;
|
|
104
|
+
/**
|
|
105
|
+
* #2315: the attachment the link already produced, when this request is a replay of the
|
|
106
|
+
* redemption that spent it. Nothing is written then; the body is judged against it instead.
|
|
107
|
+
*/
|
|
108
|
+
replay?: AttachmentRecord;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Look a secret up without spending it: `not_found` for one that names nothing, `not_found`
|
|
112
|
+
* with reason `upload_link_wrong_target` for one minted for another target than `target`
|
|
113
|
+
* (whatever its state), `conflict` with reason `upload_link_gone` for one that is used,
|
|
114
|
+
* expired or revoked — unless `idempotencyKey` is the key the spending redemption carried, and
|
|
115
|
+
* then the answer carries `replay`. A malformed key is `validation_failed`, before the lookup.
|
|
116
|
+
*/
|
|
117
|
+
export declare function inspectUploadLink(deps: {
|
|
118
|
+
sql: ScopedSql;
|
|
119
|
+
now: Instant;
|
|
120
|
+
}, secret: unknown, target?: EntityRef, idempotencyKey?: string): Promise<UploadLinkInspection>;
|
|
121
|
+
/**
|
|
122
|
+
* The host's redemption sequence, written once for both adapters (#2315): inspect, replay or
|
|
123
|
+
* write, and — for a request carrying a key that lost the spend to the request it retries —
|
|
124
|
+
* inspect again and answer that redemption. `inspect` is the host's `inspectUploadLink` with the
|
|
125
|
+
* request's key; `write` puts the bytes under a fresh id and runs the row's transaction, removing
|
|
126
|
+
* its own bytes on a refusal. A replay never reaches `write`, so it puts nothing.
|
|
127
|
+
*/
|
|
128
|
+
export declare function redeemOrReplayUploadLink(inspect: () => Promise<UploadLinkInspection>, input: {
|
|
129
|
+
body: Uint8Array;
|
|
130
|
+
idempotencyKey?: string;
|
|
131
|
+
}, write: (inspection: UploadLinkInspection) => Promise<AttachmentRecord>): Promise<RedeemedUploadLink>;
|
|
132
|
+
/**
|
|
133
|
+
* Spend the link for `record`, INSIDE the transaction that inserts the attachment row — so a
|
|
134
|
+
* refusal anywhere rolls the spend back. Judges the record against the link, never the other
|
|
135
|
+
* way round: the target, the author, the size and the type are all the link's to refuse.
|
|
136
|
+
*/
|
|
137
|
+
export declare function redeemUploadLinkInTransaction(deps: {
|
|
138
|
+
sql: ScopedSql;
|
|
139
|
+
now: Instant;
|
|
140
|
+
emit: (event: DomainEventInput) => void;
|
|
141
|
+
}, secret: unknown, record: AttachmentRecord, idempotencyKey?: string): Promise<void>;
|
|
142
|
+
//# sourceMappingURL=upload-link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-link.d.ts","sourceRoot":"","sources":["../src/upload-link.ts"],"names":[],"mappings":"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"}
|