@substrat-run/contracts 0.139.0 → 0.140.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/connections.d.ts +131 -0
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +90 -1
- package/dist/connections.js.map +1 -1
- package/dist/control-plane.d.ts +251 -10
- package/dist/control-plane.d.ts.map +1 -1
- package/dist/control-plane.js +173 -14
- package/dist/control-plane.js.map +1 -1
- package/dist/deploy.d.ts +71 -3
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +109 -3
- package/dist/deploy.js.map +1 -1
- package/dist/email-intent.d.ts +106 -0
- package/dist/email-intent.d.ts.map +1 -0
- package/dist/email-intent.js +111 -0
- package/dist/email-intent.js.map +1 -0
- package/dist/entity-state.d.ts +1 -0
- package/dist/entity-state.d.ts.map +1 -1
- package/dist/entity-state.js +6 -0
- package/dist/entity-state.js.map +1 -1
- package/dist/ids.d.ts +13 -0
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +30 -0
- package/dist/ids.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/introspection.d.ts +22 -0
- package/dist/introspection.d.ts.map +1 -1
- package/dist/introspection.js +1 -1
- package/dist/introspection.js.map +1 -1
- package/dist/kernel-events.d.ts.map +1 -1
- package/dist/kernel-events.js +7 -1
- package/dist/kernel-events.js.map +1 -1
- package/dist/manifest.d.ts +46 -0
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +33 -2
- package/dist/manifest.js.map +1 -1
- package/dist/model.d.ts +68 -1
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +110 -2
- package/dist/model.js.map +1 -1
- package/dist/operations.d.ts +117 -1
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +159 -1
- package/dist/operations.js.map +1 -1
- package/dist/pagination.d.ts +0 -0
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +0 -0
- package/dist/pagination.js.map +1 -1
- package/dist/peer.d.ts +34 -0
- package/dist/peer.d.ts.map +1 -1
- package/dist/peer.js +17 -2
- package/dist/peer.js.map +1 -1
- package/dist/permission.d.ts +50 -0
- package/dist/permission.d.ts.map +1 -1
- package/dist/permission.js +52 -3
- package/dist/permission.js.map +1 -1
- package/dist/registry-diff.d.ts +18 -1
- package/dist/registry-diff.d.ts.map +1 -1
- package/dist/registry-diff.js +24 -7
- package/dist/registry-diff.js.map +1 -1
- package/dist/registry.d.ts +6 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +8 -2
- package/dist/registry.js.map +1 -1
- package/dist/relay-caller.d.ts +28 -0
- package/dist/relay-caller.d.ts.map +1 -0
- package/dist/relay-caller.js +28 -0
- package/dist/relay-caller.js.map +1 -0
- package/dist/subject-erasure.d.ts +109 -0
- package/dist/subject-erasure.d.ts.map +1 -0
- package/dist/subject-erasure.js +93 -0
- package/dist/subject-erasure.js.map +1 -0
- package/dist/vertical-events.d.ts +1 -0
- package/dist/vertical-events.d.ts.map +1 -1
- package/dist/vertical-events.js +6 -0
- package/dist/vertical-events.js.map +1 -1
- package/dist/wire-headers.d.ts +6 -1
- package/dist/wire-headers.d.ts.map +1 -1
- package/dist/wire-headers.js.map +1 -1
- package/package.json +1 -1
package/dist/model.js
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
import { z } from 'zod';
|
|
25
25
|
import { emitLifecycles } from './lifecycle.js';
|
|
26
26
|
import { isKernelNamespace } from './object-ref.js';
|
|
27
|
+
import { subjectErasureDeclaration, } from './subject-erasure.js';
|
|
27
28
|
import { permissionKey } from './ids.js';
|
|
28
29
|
/**
|
|
29
30
|
* Declare a module's entities.
|
|
@@ -117,7 +118,10 @@ export const emittedEntity = z.object({
|
|
|
117
118
|
erasable: z.array(z.string()).optional(),
|
|
118
119
|
outsideText: z.array(z.string()).optional(),
|
|
119
120
|
archive: z.object({ permission: z.string().min(1) }).optional(),
|
|
120
|
-
trash: z.object({ permission: z.string().min(1) }).optional(),
|
|
121
|
+
trash: z.object({ permission: z.string().min(1), purgeAfterDays: z.number().int().positive().optional() }).optional(),
|
|
122
|
+
erasure: z
|
|
123
|
+
.object({ mode: z.enum(['blank', 'delete', 'custom']), subjects: z.array(z.string()).optional() })
|
|
124
|
+
.optional(),
|
|
121
125
|
});
|
|
122
126
|
export const emittedExport = z.object({
|
|
123
127
|
schemaVersion: z.number().int().positive(),
|
|
@@ -158,11 +162,20 @@ export function emitModel(entities, options = {}) {
|
|
|
158
162
|
...(e.erasable ? { erasable: [...e.erasable].sort() } : {}),
|
|
159
163
|
...(e.outsideText ? { outsideText: [...e.outsideText].sort() } : {}),
|
|
160
164
|
...(e.archive ? { archive: { permission: e.archive.permission } } : {}),
|
|
161
|
-
...(e.trash
|
|
165
|
+
...(e.trash
|
|
166
|
+
? {
|
|
167
|
+
trash: {
|
|
168
|
+
permission: e.trash.permission,
|
|
169
|
+
...(e.trash.purgeAfterDays !== undefined ? { purgeAfterDays: e.trash.purgeAfterDays } : {}),
|
|
170
|
+
},
|
|
171
|
+
}
|
|
172
|
+
: {}),
|
|
173
|
+
...(e.erasure ? { erasure: emittedErasure(e.erasure) } : {}),
|
|
162
174
|
};
|
|
163
175
|
}
|
|
164
176
|
// Refused at emit too, so `lint:model --check` goes red where `manifestEntities` would.
|
|
165
177
|
entityStatesOf(entities);
|
|
178
|
+
subjectErasureOf(entities);
|
|
166
179
|
const lifecycles = options.lifecycles ? emitLifecycles(options.lifecycles) : undefined;
|
|
167
180
|
if (lifecycles) {
|
|
168
181
|
// A machine over an entity the registry does not declare is the same class
|
|
@@ -255,20 +268,114 @@ export function entityStatesOf(entities) {
|
|
|
255
268
|
throw new Error(`model: '${name}' is keyed by (${key.join(', ')}) and cannot be archived or trashed — ` +
|
|
256
269
|
'ctx.archive and ctx.trash take one id, and a composite key has none to give');
|
|
257
270
|
}
|
|
271
|
+
const days = entity.trash?.purgeAfterDays;
|
|
272
|
+
if (days !== undefined && !(Number.isInteger(days) && days > 0)) {
|
|
273
|
+
throw new Error(`model: '${name}' declares trash.purgeAfterDays ${String(days)} — a horizon is a whole number of days, at least 1`);
|
|
274
|
+
}
|
|
258
275
|
out.push({
|
|
259
276
|
entityType: name,
|
|
260
277
|
...(entity.archive ? { archivePermission: permissionKey.parse(entity.archive.permission) } : {}),
|
|
261
278
|
...(entity.trash ? { trashPermission: permissionKey.parse(entity.trash.permission) } : {}),
|
|
279
|
+
...(entity.trash?.purgeAfterDays !== undefined ? { purgeAfterDays: entity.trash.purgeAfterDays } : {}),
|
|
262
280
|
table: entity.table,
|
|
263
281
|
idColumn: key[0],
|
|
264
282
|
});
|
|
265
283
|
}
|
|
266
284
|
return out;
|
|
267
285
|
}
|
|
286
|
+
/** An authored `erasure`, in the artifact's one shape: the mode spelled out, subjects sorted. */
|
|
287
|
+
function emittedErasure(e) {
|
|
288
|
+
return 'subjects' in e
|
|
289
|
+
? { mode: e.mode ?? 'blank', subjects: [...e.subjects].sort() }
|
|
290
|
+
: { mode: 'custom' };
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* What a blank writes into one erasable field (#2068): NULL when the field admits it, else the
|
|
294
|
+
* empty string when IT admits that, else nothing a blank can write — and the model is refused.
|
|
295
|
+
* Probed against the field's own schema, so the answer is the one the row's writers live by.
|
|
296
|
+
*/
|
|
297
|
+
function blankFor(entity, field, schema) {
|
|
298
|
+
const blank = blankOf(schema);
|
|
299
|
+
if (blank !== undefined)
|
|
300
|
+
return blank;
|
|
301
|
+
throw new Error(`model: ${entity}.${field} is erasable, admits neither NULL nor '', and so cannot be blanked — ` +
|
|
302
|
+
"make it nullable, or declare `erasure: { subjects, mode: 'delete' }`");
|
|
303
|
+
}
|
|
304
|
+
/** NULL when the field admits it, else `''` when it admits that, else undefined. */
|
|
305
|
+
function blankOf(schema) {
|
|
306
|
+
if (schema.safeParse(null).success)
|
|
307
|
+
return null;
|
|
308
|
+
if (schema.safeParse('').success)
|
|
309
|
+
return '';
|
|
310
|
+
return undefined;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* The `erasure` manifest block (#2068), derived from each entity's `erasable` and `erasure`.
|
|
314
|
+
* Undefined when no entity declares either, so a model with nothing personal in it emits a
|
|
315
|
+
* manifest byte-for-byte what it was before.
|
|
316
|
+
*
|
|
317
|
+
* Refuses, at emit and at manifest time alike:
|
|
318
|
+
* - an `erasure` on an entity with no `erasable` fields — it would reach nothing;
|
|
319
|
+
* - a subject column that is not a field;
|
|
320
|
+
* - a `blank` that would write into the primary key, or write `''` into a `key` column (a
|
|
321
|
+
* second blanked row would collide with the first and fail the erasure mid-way) — such an
|
|
322
|
+
* entity is the person's data whole, and declares `mode: 'delete'`;
|
|
323
|
+
* - a blank of a field that admits neither NULL nor `''`.
|
|
324
|
+
*/
|
|
325
|
+
export function subjectErasureOf(entities) {
|
|
326
|
+
const out = [];
|
|
327
|
+
for (const name of Object.keys(entities).sort()) {
|
|
328
|
+
const entity = entities[name];
|
|
329
|
+
if (!entity)
|
|
330
|
+
continue;
|
|
331
|
+
const erasable = entity.erasable ?? [];
|
|
332
|
+
if (erasable.length === 0) {
|
|
333
|
+
if (entity.erasure) {
|
|
334
|
+
throw new Error(`model: ${name} declares an \`erasure\` but no \`erasable\` fields — it would reach nothing`);
|
|
335
|
+
}
|
|
336
|
+
continue;
|
|
337
|
+
}
|
|
338
|
+
const shape = entity.fields.shape;
|
|
339
|
+
const emitted = entity.erasure && emittedErasure(entity.erasure);
|
|
340
|
+
const mode = emitted?.mode ?? 'unreached';
|
|
341
|
+
const subjects = emitted?.subjects;
|
|
342
|
+
for (const col of subjects ?? []) {
|
|
343
|
+
if (!(col in shape))
|
|
344
|
+
throw new Error(`model: ${name}.erasure.subjects names '${col}', which is not a field`);
|
|
345
|
+
}
|
|
346
|
+
if (subjects?.length === 0)
|
|
347
|
+
throw new Error(`model: ${name}.erasure.subjects is empty — name the subject column`);
|
|
348
|
+
const fields = [...erasable].sort().map((f) => {
|
|
349
|
+
const schema = shape[f];
|
|
350
|
+
if (!schema)
|
|
351
|
+
throw new Error(`model: ${name}.erasable names '${f}', which is not a field`);
|
|
352
|
+
// Only a blank writes the value, so only a blank is refused for having none to write.
|
|
353
|
+
return { name: f, blank: mode === 'blank' ? blankFor(name, f, schema) : blankOf(schema) === null ? null : '' };
|
|
354
|
+
});
|
|
355
|
+
if (mode === 'blank') {
|
|
356
|
+
const pk = new Set(primaryKeyOf(name, entity));
|
|
357
|
+
const key = new Set(entity.key ?? []);
|
|
358
|
+
for (const f of fields) {
|
|
359
|
+
const inPk = pk.has(f.name);
|
|
360
|
+
if (inPk || (f.blank === '' && key.has(f.name))) {
|
|
361
|
+
throw new Error(`model: ${name}.${f.name} is erasable and part of the ${inPk ? 'primary key' : '`key`'}, so a ` +
|
|
362
|
+
"blank would collide with the next one — declare `erasure: { subjects, mode: 'delete' }`");
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
out.push({ entityType: name, table: entity.table, mode, ...(subjects ? { subjects: [...subjects] } : {}), fields });
|
|
367
|
+
}
|
|
368
|
+
if (out.length === 0)
|
|
369
|
+
return undefined;
|
|
370
|
+
const tables = [...new Set(Object.values(entities).map((e) => e.table))].sort();
|
|
371
|
+
return subjectErasureDeclaration.parse({ tables, entities: out });
|
|
372
|
+
}
|
|
268
373
|
export function manifestEntities(entities, refs) {
|
|
269
374
|
// Absent rather than `[]` when nothing declares one, so a manifest that has no archivable
|
|
270
375
|
// entity is byte-for-byte what it was before #119.
|
|
271
376
|
const entityStates = entityStatesOf(entities);
|
|
377
|
+
// #2068: absent when nothing is erasable, for the same reason.
|
|
378
|
+
const erasure = subjectErasureOf(entities);
|
|
272
379
|
return {
|
|
273
380
|
attachmentTargets: (refs.attachmentTargets ?? []),
|
|
274
381
|
// `[]` when undeclared, like `attachmentTargets` — and it means the same
|
|
@@ -281,6 +388,7 @@ export function manifestEntities(entities, refs) {
|
|
|
281
388
|
// a composed engine's entity are declared, and both sides are checked.
|
|
282
389
|
entityRelations: [...entityRelationsOf(entities), ...(refs.relations ?? [])],
|
|
283
390
|
...(entityStates.length ? { entityStates } : {}),
|
|
391
|
+
...(erasure ? { erasure } : {}),
|
|
284
392
|
ui: { entityViews: refs.entityViews },
|
|
285
393
|
};
|
|
286
394
|
}
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA4C,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EACL,yBAAyB,GAG1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA2KzC;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CA0B5B,QAAW;IACX,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,KAAwB;IACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,8DAA8D;gBAC3E,sEAAsE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAKD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,MAAiB;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;IACnC,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,sBAAsB,GAAG,yBAAyB,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QACD,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,mCAAmC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,IAAI,IAAI,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,KAAK,CACb,UAAU,IAAI,wEAAwE;QACpF,oFAAoF;QACpF,yEAAyE,CAC5E,CAAC;AACJ,CAAC;AA0ED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IACtC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,2FAA2F;IAC3F,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrH,OAAO,EAAE,CAAC;SACP,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;SACjG,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAC7D,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACvB,QAAW,EACX,OAAO,GAgBH,EAAE;IAEN,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IACD,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzC,MAAM,GAAG,GAAkC,EAAE,CAAC;IAC9C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAChD,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,CAGvG,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,GAAG;YACV,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM;YACN,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,0EAA0E;YAC1E,sEAAsE;YACtE,gBAAgB;YAChB,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACvF,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,CAAC,CAAC,KAAK;gBACT,CAAC,CAAC;oBACE,KAAK,EAAE;wBACL,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU;wBAC9B,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC5F;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC;IACJ,CAAC;IACD,wFAAwF;IACxF,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,IAAI,UAAU,EAAE,CAAC;QACf,2EAA2E;QAC3E,4EAA4E;QAC5E,2CAA2C;QAC3C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,uCAAuC,MAAM,mCAAmC,CAAC,CAAC;YACpG,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC1F,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC;QAC/E,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7G,CAAC;IACD,OAAO;QACL,8EAA8E;QAC9E,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,QAAQ,EAAE,GAAG;QACb,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAW;IAEX,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;SACzB,IAAI,EAAE;SACN,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,MAAM;YAAE,OAAO,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;AACP,CAAC;AAwKD;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CACxB,QAAmC,EACnC,WAAoB;IAEpB,MAAM,QAAQ,GAAG,CAAC,WAAW,IAAI,EAAE,CAIhC,CAAC;IACJ,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,UAAU,mCAAmC,CAAC,CAAC;QACnG,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,CAAC,UAAU,kBAAkB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B;gBACvF,yDAAyD,CAC5D,CAAC;QACJ,CAAC;QACD,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAW;YAC1B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,QAAmC;IAChE,MAAM,GAAG,GAA6B,EAAE,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,SAAS;QAC5D,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,kBAAkB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,wCAAwC;gBACrF,6EAA6E,CAChF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC;QAC1C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,mCAAmC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACtI,CAAC;QACD,GAAG,CAAC,IAAI,CAAC;YACP,UAAU,EAAE,IAAI;YAChB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1F,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtG,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAW;SAC3B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iGAAiG;AACjG,SAAS,cAAc,CAAC,CAAmB;IACzC,OAAO,UAAU,IAAI,CAAC;QACpB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/D,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,SAAS,QAAQ,CAAC,MAAc,EAAE,KAAa,EAAE,MAAiB;IAChE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,IAAI,KAAK,uEAAuE;QAC9F,sEAAsE,CACzE,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,SAAS,OAAO,CAAC,MAAiB;IAChC,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAC5C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAmC;IAClE,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,8EAA8E,CAAC,CAAC;YAChH,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAkC,CAAC;QAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,WAAW,CAAC;QAC1C,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,4BAA4B,GAAG,yBAAyB,CAAC,CAAC;QAC/G,CAAC;QACD,IAAI,QAAQ,EAAE,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,sDAAsD,CAAC,CAAC;QAClH,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;YAC3F,sFAAsF;YACtF,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,EAAY,EAAE,CAAC;QAC5H,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;YACtC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5B,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBAChD,MAAM,IAAI,KAAK,CACb,UAAU,IAAI,IAAI,CAAC,CAAC,IAAI,gCAAgC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,SAAS;wBAC7F,yFAAyF,CAC5F,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACtH,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChF,OAAO,yBAAyB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAI9B,QAAW,EACX,IAAO;IAUP,0FAA0F;IAC1F,mDAAmD;IACnD,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9C,+DAA+D;IAC/D,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO;QACL,iBAAiB,EAAE,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAA6C;QAC7F,yEAAyE;QACzE,yEAAyE;QACzE,+CAA+C;QAC/C,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAuC;QAC3E,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;QAC1D,+DAA+D;QAC/D,4EAA4E;QAC5E,uEAAuE;QACvE,eAAe,EAAE,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAC5E,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAA+B,EAAE;KAC1D,CAAC;AACJ,CAAC;AAuBD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAE5C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACpG,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,WAAW,GAAG,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC"}
|
package/dist/operations.d.ts
CHANGED
|
@@ -238,6 +238,18 @@ type PermissionRefCheck<O, PermKey extends string> = {
|
|
|
238
238
|
readonly idFrom?: never;
|
|
239
239
|
readonly resolved?: never;
|
|
240
240
|
};
|
|
241
|
+
/**
|
|
242
|
+
* What `trashed` may say on this operation: `'admits' | 'purges'` where the leading check is
|
|
243
|
+
* `{ entity: E, idFrom }` and `E` declares `trash`, and nothing anywhere else.
|
|
244
|
+
*/
|
|
245
|
+
type TrashedShape<O, Entities> = O extends {
|
|
246
|
+
permission: {
|
|
247
|
+
entity: infer E;
|
|
248
|
+
idFrom: infer F;
|
|
249
|
+
};
|
|
250
|
+
} ? E extends keyof Entities ? Entities[E] extends {
|
|
251
|
+
trash: object;
|
|
252
|
+
} ? 'admits' | (Exclude<InputKeys<O>, F> extends never ? 'purges' : never) : never : never : never;
|
|
241
253
|
type OpAuthority<O, Entities, Engines, PermKey extends string> = O extends {
|
|
242
254
|
narrows: unknown;
|
|
243
255
|
} ? {
|
|
@@ -615,6 +627,26 @@ type OperationShape<O, Entities, Engines, PermKey extends string> = {
|
|
|
615
627
|
* node-level: state the exception, never the rule.
|
|
616
628
|
*/
|
|
617
629
|
readonly idempotency?: false;
|
|
630
|
+
/**
|
|
631
|
+
* This operation reaches an entity IN THE TRASH (#119). Absent — the default, and the right
|
|
632
|
+
* answer for nearly every operation — the HOST refuses it on a trashed entity before the
|
|
633
|
+
* guards and the handler run: `not_found` to a caller who holds the operation's key on the
|
|
634
|
+
* entity, and the same `forbidden` as on an active one to a caller who does not. So a binned
|
|
635
|
+
* entity is gone from everyone's point of view without each handler remembering to ask.
|
|
636
|
+
*
|
|
637
|
+
* - `'admits'` — the operation works on a trashed entity too: the restore, a read of the bin.
|
|
638
|
+
* - `'purges'` — the operation is the entity's PERMANENT delete. It admits a trashed entity,
|
|
639
|
+
* and it is the one a declared `trash.purgeAfterDays` horizon runs (`purgeSchedulesOf`).
|
|
640
|
+
* One per entity, and its input is the id and NOTHING else — not even an optional field, so a
|
|
641
|
+
* purge can only ever reach the entity it was invoked for.
|
|
642
|
+
*
|
|
643
|
+
* Only legal where the host can see the entity: a leading `permission: { entity, idFrom }`
|
|
644
|
+
* naming an entity that declares `trash`. Anywhere else it is a compile error, because there
|
|
645
|
+
* would be nothing for it to opt out of. An operation that narrows `resolved`, by `refFrom`
|
|
646
|
+
* or through `narrows` is not refused by the host at all, and keeps its own check
|
|
647
|
+
* (`trashRefusalGapsOf` names them).
|
|
648
|
+
*/
|
|
649
|
+
readonly trashed?: TrashedShape<O, Entities>;
|
|
618
650
|
readonly emits?: {
|
|
619
651
|
/**
|
|
620
652
|
* The entity the event is about — one of THIS module's entities, or one of a
|
|
@@ -706,6 +738,76 @@ export declare function operationConcurrencyOf(operations: Readonly<Record<strin
|
|
|
706
738
|
entity: string;
|
|
707
739
|
idFrom: string;
|
|
708
740
|
}>;
|
|
741
|
+
/**
|
|
742
|
+
* The entity an operation addresses by id, as the host reads it (#119).
|
|
743
|
+
*
|
|
744
|
+
* `key` is the operation's DECLARED leading check, which the host evaluates itself before it
|
|
745
|
+
* refuses a trashed entity — so a caller without the key meets the same `forbidden` there that
|
|
746
|
+
* the handler would have given on an active one, and learns nothing about the bin.
|
|
747
|
+
*/
|
|
748
|
+
export interface OperationTarget {
|
|
749
|
+
readonly entity: string;
|
|
750
|
+
readonly idFrom: string;
|
|
751
|
+
readonly key: string;
|
|
752
|
+
readonly trashed?: 'admits' | 'purges';
|
|
753
|
+
}
|
|
754
|
+
/**
|
|
755
|
+
* name → the entity each operation addresses by id, for the host (#119).
|
|
756
|
+
*
|
|
757
|
+
* Every operation whose leading check is `{ entity, idFrom }`, whether or not its entity
|
|
758
|
+
* declares `trash` — the host keeps the ones whose entity does. Handed over beside
|
|
759
|
+
* `operationInputs`, and required by the host from any module with a trashable entity, so a
|
|
760
|
+
* module cannot leave its binned entities reachable by forgetting the line.
|
|
761
|
+
*/
|
|
762
|
+
export declare function operationTargetsOf(operations: Readonly<Record<string, object>>): Record<string, OperationTarget>;
|
|
763
|
+
/** How often a purge horizon's schedule runs (#119). The horizon is in days; hourly is plenty. */
|
|
764
|
+
export declare const PURGE_CADENCE_MINUTES = 60;
|
|
765
|
+
/**
|
|
766
|
+
* The schedules a module's purge horizons run as (#119), derived — spread into the manifest's
|
|
767
|
+
* `schedules` beside any the module writes:
|
|
768
|
+
*
|
|
769
|
+
* ```ts
|
|
770
|
+
* schedules: purgeSchedulesOf(todoOperations, todoEntities),
|
|
771
|
+
* ```
|
|
772
|
+
*
|
|
773
|
+
* One per entity declaring `trash.purgeAfterDays`, running the operation that declares
|
|
774
|
+
* `trashed: 'purges'` for it, holding exactly that operation's key. Being a schedule is what
|
|
775
|
+
* gives the purge everything a schedule already has: the module's system principal and its
|
|
776
|
+
* seated grant (rendered in `PERMISSIONS.md`), the kill switch, the lifecycle hold, the
|
|
777
|
+
* exclusion of preview copies, and a sweeper on a pushed deploy.
|
|
778
|
+
*
|
|
779
|
+
* Refuses a horizon with no purging operation, and a purging operation whose input needs
|
|
780
|
+
* more than the id — the sweep has nothing else to pass it.
|
|
781
|
+
*/
|
|
782
|
+
export declare function purgeSchedulesOf(operations: Readonly<Record<string, object>>, entities: Readonly<Record<string, EntityDef>>): {
|
|
783
|
+
operation: string;
|
|
784
|
+
cadence: {
|
|
785
|
+
everyMinutes: number;
|
|
786
|
+
};
|
|
787
|
+
permissions: string[];
|
|
788
|
+
purge: {
|
|
789
|
+
entityType: string;
|
|
790
|
+
};
|
|
791
|
+
}[];
|
|
792
|
+
/**
|
|
793
|
+
* The operations on a trashable entity the HOST cannot refuse on a trashed one (#119), because
|
|
794
|
+
* their check names the entity but not the input field carrying its id — it is `resolved` in the
|
|
795
|
+
* handler. Each keeps its own `ctx.entityState` check. `lint:model` prints them as warnings, so
|
|
796
|
+
* the gap is seen when a vertical is built rather than found in review.
|
|
797
|
+
*
|
|
798
|
+
* What it cannot name, and K-45 states: an operation that reaches a trashable entity with no
|
|
799
|
+
* entity in its check at all — a `narrows` walk, a `refFrom` check, a node-level key.
|
|
800
|
+
*/
|
|
801
|
+
export declare function trashRefusalGapsOf(operations: Readonly<Record<string, object>>, entities: Readonly<Record<string, EntityDef>>): {
|
|
802
|
+
operation: string;
|
|
803
|
+
entity: string;
|
|
804
|
+
}[];
|
|
805
|
+
/**
|
|
806
|
+
* Whether `schema` is a zod object that REFUSES unknown keys (`z.strictObject`, `.strict()`) —
|
|
807
|
+
* what a `trashed: 'purges'` operation's input must be (#119), so that the parsed input is the id
|
|
808
|
+
* and nothing else: a passthrough object keeps an extra field, and a default one drops it silently.
|
|
809
|
+
*/
|
|
810
|
+
export declare function isStrictObjectSchema(schema: unknown): boolean;
|
|
709
811
|
/**
|
|
710
812
|
* The operations that opted OUT of request idempotency (#116).
|
|
711
813
|
*
|
|
@@ -1021,7 +1123,21 @@ export declare function manifestOperations<const Ops extends Record<string, obje
|
|
|
1021
1123
|
* operation is always present even with no `input`, because the platform hands
|
|
1022
1124
|
* it a page whether it declared one or not.
|
|
1023
1125
|
*/
|
|
1024
|
-
export declare function operationInputsOf<const Ops extends Record<string, object>>(operations: Ops): Record<string, z.ZodType
|
|
1126
|
+
export declare function operationInputsOf<const Ops extends Record<string, object>>(operations: Ops): Readonly<Record<string, z.ZodType>>;
|
|
1127
|
+
/**
|
|
1128
|
+
* What `operationInputsOf` records for each map it builds (#119): every declared operation's name
|
|
1129
|
+
* and the entity each addresses by id. Deep-frozen.
|
|
1130
|
+
*/
|
|
1131
|
+
export interface DeclaredOperationSurface {
|
|
1132
|
+
readonly operations: readonly string[];
|
|
1133
|
+
readonly targets: Readonly<Record<string, Readonly<OperationTarget>>>;
|
|
1134
|
+
}
|
|
1135
|
+
/**
|
|
1136
|
+
* The declared surface an `operationInputs` map was derived from — `undefined` for any map
|
|
1137
|
+
* `operationInputsOf` did not itself return (a hand-built one, a copy, or one built by a second
|
|
1138
|
+
* copy of this package, whose record this one cannot read).
|
|
1139
|
+
*/
|
|
1140
|
+
export declare function declaredSurfaceOf(operationInputs: object | undefined): DeclaredOperationSurface | undefined;
|
|
1025
1141
|
/**
|
|
1026
1142
|
* Where one composed-engine operation lives in THIS vertical's HTTP surface.
|
|
1027
1143
|
*
|
package/dist/operations.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
|
package/dist/operations.js
CHANGED
|
@@ -59,6 +59,7 @@ export function defineOperations(entities, _permissions, engines) {
|
|
|
59
59
|
assertListsArePaged(operations);
|
|
60
60
|
assertConcurrencyMovesVersion(operations);
|
|
61
61
|
assertFieldBagsDeclareConcurrency(operations, entities, engines ?? []);
|
|
62
|
+
assertTrashedDeclarations(operations, entities);
|
|
62
63
|
return operations;
|
|
63
64
|
};
|
|
64
65
|
}
|
|
@@ -288,6 +289,141 @@ export function operationConcurrencyOf(operations) {
|
|
|
288
289
|
}
|
|
289
290
|
return out;
|
|
290
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* name → the entity each operation addresses by id, for the host (#119).
|
|
294
|
+
*
|
|
295
|
+
* Every operation whose leading check is `{ entity, idFrom }`, whether or not its entity
|
|
296
|
+
* declares `trash` — the host keeps the ones whose entity does. Handed over beside
|
|
297
|
+
* `operationInputs`, and required by the host from any module with a trashable entity, so a
|
|
298
|
+
* module cannot leave its binned entities reachable by forgetting the line.
|
|
299
|
+
*/
|
|
300
|
+
export function operationTargetsOf(operations) {
|
|
301
|
+
const out = {};
|
|
302
|
+
for (const [name, op] of Object.entries(operations)) {
|
|
303
|
+
const decl = op;
|
|
304
|
+
const p = decl.permission;
|
|
305
|
+
if (typeof p !== 'object' || p === null)
|
|
306
|
+
continue;
|
|
307
|
+
if (typeof p.key !== 'string' || typeof p.entity !== 'string' || typeof p.idFrom !== 'string')
|
|
308
|
+
continue;
|
|
309
|
+
out[name] = {
|
|
310
|
+
entity: p.entity,
|
|
311
|
+
idFrom: p.idFrom,
|
|
312
|
+
key: p.key,
|
|
313
|
+
...(decl.trashed === 'admits' || decl.trashed === 'purges' ? { trashed: decl.trashed } : {}),
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
return out;
|
|
317
|
+
}
|
|
318
|
+
/** How often a purge horizon's schedule runs (#119). The horizon is in days; hourly is plenty. */
|
|
319
|
+
export const PURGE_CADENCE_MINUTES = 60;
|
|
320
|
+
/**
|
|
321
|
+
* The schedules a module's purge horizons run as (#119), derived — spread into the manifest's
|
|
322
|
+
* `schedules` beside any the module writes:
|
|
323
|
+
*
|
|
324
|
+
* ```ts
|
|
325
|
+
* schedules: purgeSchedulesOf(todoOperations, todoEntities),
|
|
326
|
+
* ```
|
|
327
|
+
*
|
|
328
|
+
* One per entity declaring `trash.purgeAfterDays`, running the operation that declares
|
|
329
|
+
* `trashed: 'purges'` for it, holding exactly that operation's key. Being a schedule is what
|
|
330
|
+
* gives the purge everything a schedule already has: the module's system principal and its
|
|
331
|
+
* seated grant (rendered in `PERMISSIONS.md`), the kill switch, the lifecycle hold, the
|
|
332
|
+
* exclusion of preview copies, and a sweeper on a pushed deploy.
|
|
333
|
+
*
|
|
334
|
+
* Refuses a horizon with no purging operation, and a purging operation whose input needs
|
|
335
|
+
* more than the id — the sweep has nothing else to pass it.
|
|
336
|
+
*/
|
|
337
|
+
export function purgeSchedulesOf(operations, entities) {
|
|
338
|
+
const targets = operationTargetsOf(operations);
|
|
339
|
+
const out = [];
|
|
340
|
+
for (const entityType of Object.keys(entities).sort()) {
|
|
341
|
+
const days = entities[entityType]?.trash?.purgeAfterDays;
|
|
342
|
+
if (days === undefined)
|
|
343
|
+
continue;
|
|
344
|
+
const purging = Object.entries(targets).filter(([, t]) => t.entity === entityType && t.trashed === 'purges');
|
|
345
|
+
if (purging.length !== 1) {
|
|
346
|
+
throw new Error(`model: '${entityType}' declares trash.purgeAfterDays but ` +
|
|
347
|
+
(purging.length === 0
|
|
348
|
+
? "no operation declares `trashed: 'purges'` for it — the horizon has nothing to run.\n" +
|
|
349
|
+
" Remedy: mark the entity's permanent delete `trashed: 'purges'`."
|
|
350
|
+
: `${purging.map(([n]) => `'${n}'`).join(', ')} all declare \`trashed: 'purges'\` for it — one permanent delete per entity.`));
|
|
351
|
+
}
|
|
352
|
+
const [operation, target] = purging[0];
|
|
353
|
+
out.push({
|
|
354
|
+
operation,
|
|
355
|
+
cadence: { everyMinutes: PURGE_CADENCE_MINUTES },
|
|
356
|
+
permissions: [target.key],
|
|
357
|
+
purge: { entityType },
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
return out;
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* The operations on a trashable entity the HOST cannot refuse on a trashed one (#119), because
|
|
364
|
+
* their check names the entity but not the input field carrying its id — it is `resolved` in the
|
|
365
|
+
* handler. Each keeps its own `ctx.entityState` check. `lint:model` prints them as warnings, so
|
|
366
|
+
* the gap is seen when a vertical is built rather than found in review.
|
|
367
|
+
*
|
|
368
|
+
* What it cannot name, and K-45 states: an operation that reaches a trashable entity with no
|
|
369
|
+
* entity in its check at all — a `narrows` walk, a `refFrom` check, a node-level key.
|
|
370
|
+
*/
|
|
371
|
+
export function trashRefusalGapsOf(operations, entities) {
|
|
372
|
+
const targets = operationTargetsOf(operations);
|
|
373
|
+
const out = [];
|
|
374
|
+
for (const [name, op] of Object.entries(operations).sort(([a], [b]) => a.localeCompare(b))) {
|
|
375
|
+
const checked = op.permission?.entity;
|
|
376
|
+
if (typeof checked !== 'string' || !entities[checked]?.trash || targets[name])
|
|
377
|
+
continue;
|
|
378
|
+
out.push({ operation: name, entity: checked });
|
|
379
|
+
}
|
|
380
|
+
return out;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* `trashed`'s compile-time rule, held at load time too (#119) — an operations object built
|
|
384
|
+
* around the types (a cast, a generated map) must not opt out of a refusal the host cannot
|
|
385
|
+
* then see.
|
|
386
|
+
*/
|
|
387
|
+
function assertTrashedDeclarations(operations, entities) {
|
|
388
|
+
const purges = new Map();
|
|
389
|
+
const targets = operationTargetsOf(operations);
|
|
390
|
+
for (const [name, op] of Object.entries(operations)) {
|
|
391
|
+
const decl = op;
|
|
392
|
+
if (decl.trashed === undefined)
|
|
393
|
+
continue;
|
|
394
|
+
const target = targets[name];
|
|
395
|
+
if ((decl.trashed !== 'admits' && decl.trashed !== 'purges') || !target || !entities[target.entity]?.trash) {
|
|
396
|
+
throw new Error(`model: '${name}' declares \`trashed: ${JSON.stringify(decl.trashed)}\` — it is 'admits' or 'purges', ` +
|
|
397
|
+
'and only on an operation whose check is `{ entity, idFrom }` over an entity that declares `trash`');
|
|
398
|
+
}
|
|
399
|
+
if (decl.trashed !== 'purges')
|
|
400
|
+
continue;
|
|
401
|
+
const other = purges.get(target.entity);
|
|
402
|
+
if (other) {
|
|
403
|
+
throw new Error(`model: '${other}' and '${name}' both declare \`trashed: 'purges'\` for '${target.entity}' — one permanent delete per entity`);
|
|
404
|
+
}
|
|
405
|
+
purges.set(target.entity, name);
|
|
406
|
+
const extra = Object.keys(decl.input?.shape ?? {}).filter((field) => field !== target.idFrom);
|
|
407
|
+
if (extra.length > 0) {
|
|
408
|
+
throw new Error(`model: '${name}' declares \`trashed: 'purges'\` but its input also takes ${extra.map((f) => `\`${f}\``).join(', ')} — ` +
|
|
409
|
+
`a purge's input is the id (\`${target.idFrom}\`) and nothing else, optional fields included`);
|
|
410
|
+
}
|
|
411
|
+
if (!isStrictObjectSchema(decl.input)) {
|
|
412
|
+
throw new Error(`model: '${name}' declares \`trashed: 'purges'\` but its input is not a strict object — a passthrough or ` +
|
|
413
|
+
'default object would let the call carry, or quietly drop, fields beside the id.\n' +
|
|
414
|
+
` Remedy: \`input: z.strictObject({ ${target.idFrom}: … })\`.`);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Whether `schema` is a zod object that REFUSES unknown keys (`z.strictObject`, `.strict()`) —
|
|
420
|
+
* what a `trashed: 'purges'` operation's input must be (#119), so that the parsed input is the id
|
|
421
|
+
* and nothing else: a passthrough object keeps an extra field, and a default one drops it silently.
|
|
422
|
+
*/
|
|
423
|
+
export function isStrictObjectSchema(schema) {
|
|
424
|
+
const def = schema?._zod?.def;
|
|
425
|
+
return def?.type === 'object' && def.catchall?._zod?.def?.type === 'never';
|
|
426
|
+
}
|
|
291
427
|
/**
|
|
292
428
|
* The operations that opted OUT of request idempotency (#116).
|
|
293
429
|
*
|
|
@@ -732,7 +868,29 @@ export function operationInputsOf(operations) {
|
|
|
732
868
|
continue;
|
|
733
869
|
inputs[name] = decl.inputOptional ? decl.input.optional() : decl.input;
|
|
734
870
|
}
|
|
735
|
-
|
|
871
|
+
// #119: the declared surface travels with the schemas, so the host DERIVES each operation's
|
|
872
|
+
// target from the same declaration it parses with — a module cannot hand it a partial map.
|
|
873
|
+
// Both are frozen, and the pair is recorded where only this module can write
|
|
874
|
+
// (`declaredSurfaceOf`), so neither can be edited or imitated after the fact.
|
|
875
|
+
const targets = operationTargetsOf(operations);
|
|
876
|
+
for (const target of Object.values(targets))
|
|
877
|
+
Object.freeze(target);
|
|
878
|
+
DECLARED_SURFACES.set(inputs, Object.freeze({ operations: Object.freeze(Object.keys(operations)), targets: Object.freeze(targets) }));
|
|
879
|
+
return Object.freeze(inputs);
|
|
880
|
+
}
|
|
881
|
+
/**
|
|
882
|
+
* Every map `operationInputsOf` built, and the surface it was built from (#119). Module-private
|
|
883
|
+
* and keyed by the map's identity: no property on the map carries the surface, so a copy, a spread
|
|
884
|
+
* or a hand-built map has none, and nothing outside this module can add one.
|
|
885
|
+
*/
|
|
886
|
+
const DECLARED_SURFACES = new WeakMap();
|
|
887
|
+
/**
|
|
888
|
+
* The declared surface an `operationInputs` map was derived from — `undefined` for any map
|
|
889
|
+
* `operationInputsOf` did not itself return (a hand-built one, a copy, or one built by a second
|
|
890
|
+
* copy of this package, whose record this one cannot read).
|
|
891
|
+
*/
|
|
892
|
+
export function declaredSurfaceOf(operationInputs) {
|
|
893
|
+
return operationInputs === undefined ? undefined : DECLARED_SURFACES.get(operationInputs);
|
|
736
894
|
}
|
|
737
895
|
/**
|
|
738
896
|
* Declare where a composed engine's operations live in this vertical's API.
|