@substrat-run/contract-tests 0.135.0 → 0.136.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/async-log-suite.d.ts +10 -0
- package/dist/async-log-suite.d.ts.map +1 -0
- package/dist/async-log-suite.js +226 -0
- package/dist/async-log-suite.js.map +1 -0
- package/dist/capability-suite.d.ts.map +1 -1
- package/dist/capability-suite.js +63 -0
- package/dist/capability-suite.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/inert-scope-suite.d.ts +14 -0
- package/dist/inert-scope-suite.d.ts.map +1 -0
- package/dist/inert-scope-suite.js +159 -0
- package/dist/inert-scope-suite.js.map +1 -0
- package/dist/job-run-suite.d.ts.map +1 -1
- package/dist/job-run-suite.js +27 -0
- package/dist/job-run-suite.js.map +1 -1
- package/dist/list-suite.d.ts.map +1 -1
- package/dist/list-suite.js +89 -3
- package/dist/list-suite.js.map +1 -1
- package/dist/modules.d.ts +151 -0
- package/dist/modules.d.ts.map +1 -1
- package/dist/modules.js +88 -1
- package/dist/modules.js.map +1 -1
- package/dist/scope-host-suite.d.ts.map +1 -1
- package/dist/scope-host-suite.js +285 -4
- package/dist/scope-host-suite.js.map +1 -1
- package/package.json +3 -3
package/dist/list-suite.js
CHANGED
|
@@ -17,10 +17,12 @@
|
|
|
17
17
|
* at page sizes that force ties to straddle a page boundary.
|
|
18
18
|
*/
|
|
19
19
|
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
|
|
20
|
-
import { permissionKey, platformActorId, principalId, scopeId, tenantId, } from '@substrat-run/contracts';
|
|
20
|
+
import { errorCodeOf, permissionKey, PAGE_CURSOR_RESTART, platformActorId, principalId, scopeId, tenantId, } from '@substrat-run/contracts';
|
|
21
21
|
import { ulid } from '@substrat-run/kernel';
|
|
22
22
|
import { listMod } from './modules.js';
|
|
23
23
|
const PERM_USE = permissionKey.parse('list:use');
|
|
24
|
+
/** A ULID that sorts just after the fixture's `01B` — a legacy cursor's id must be a ULID. */
|
|
25
|
+
const AFTER_01B = '01BX5ZZKBKACTAV9WEVGEMMVRZ';
|
|
24
26
|
export function listContractSuite(adapterName, makeFixture) {
|
|
25
27
|
describe(`paged reads (ctx.page): ${adapterName}`, () => {
|
|
26
28
|
let fixture;
|
|
@@ -31,11 +33,11 @@ export function listContractSuite(adapterName, makeFixture) {
|
|
|
31
33
|
const staff = platformActorId.parse(ulid());
|
|
32
34
|
const page = (params) => stub.invoke('list/page', params);
|
|
33
35
|
/** Walk the whole list one page at a time, following the cursor as a client would. */
|
|
34
|
-
const walkAll = async (params, limit) => {
|
|
36
|
+
const walkAll = async (params, limit, operation = 'list/page') => {
|
|
35
37
|
const seen = [];
|
|
36
38
|
let cursor;
|
|
37
39
|
for (let guard = 0; guard < 50; guard++) {
|
|
38
|
-
const got = await
|
|
40
|
+
const got = await stub.invoke(operation, { ...params, limit, cursor });
|
|
39
41
|
seen.push(...got.entries.map((r) => String(r['id'])));
|
|
40
42
|
if (got.nextCursor === null)
|
|
41
43
|
return seen;
|
|
@@ -122,6 +124,63 @@ export function listContractSuite(adapterName, makeFixture) {
|
|
|
122
124
|
expect(new Set(seen).size).toBe(6);
|
|
123
125
|
expect(seen).toEqual([...(await walkAll({ sort: 'status' }, 50))].reverse());
|
|
124
126
|
});
|
|
127
|
+
/**
|
|
128
|
+
* #2001. A cursor replayed in a walk that did not mint it is refused, with the reason
|
|
129
|
+
* that tells a client to read the first page again — never answered with a page.
|
|
130
|
+
*/
|
|
131
|
+
const expectRestart = async (call) => {
|
|
132
|
+
const err = await call.then(() => undefined, (e) => e);
|
|
133
|
+
expect(errorCodeOf(err), 'the replay was answered with a page').toBe('validation_failed');
|
|
134
|
+
expect(err).toMatchObject({
|
|
135
|
+
message: expect.stringMatching(/restart paging/),
|
|
136
|
+
extensions: { reason: PAGE_CURSOR_RESTART },
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
it('serves a declared desc when the caller names no order, and walks it to the end', async () => {
|
|
140
|
+
const first = await stub.invoke('list/newest', { limit: 2 });
|
|
141
|
+
expect(first.entries.map((r) => r['number'])).toEqual(['1006', '1005']);
|
|
142
|
+
expect(await walkAll({}, 2, 'list/newest')).toEqual(['01F', '01E', '01D', '01C', '01B', '01A']);
|
|
143
|
+
});
|
|
144
|
+
it('lets an explicit order override the declared one', async () => {
|
|
145
|
+
const got = await stub.invoke('list/newest', { limit: 50, order: 'asc' });
|
|
146
|
+
expect(got.entries.map((r) => r['number'])).toEqual(['1001', '1002', '1003', '1004', '1005', '1006']);
|
|
147
|
+
});
|
|
148
|
+
it('hands back an opaque cursor that survives a query string untouched', async () => {
|
|
149
|
+
const { nextCursor } = await page({ limit: 2 });
|
|
150
|
+
expect(nextCursor).toMatch(/^[A-Za-z0-9_-]+$/);
|
|
151
|
+
expect(encodeURIComponent(nextCursor)).toBe(nextCursor);
|
|
152
|
+
});
|
|
153
|
+
it('refuses a desc cursor replayed under asc, rather than re-serving rows already read', async () => {
|
|
154
|
+
const first = await page({ limit: 2, order: 'desc' });
|
|
155
|
+
await expectRestart(page({ limit: 2, order: 'asc', cursor: first.nextCursor }));
|
|
156
|
+
// …and the declared-desc read's cursor, replayed with an explicit asc, likewise.
|
|
157
|
+
const newest = await stub.invoke('list/newest', { limit: 2 });
|
|
158
|
+
await expectRestart(stub.invoke('list/newest', { limit: 2, order: 'asc', cursor: newest.nextCursor }));
|
|
159
|
+
});
|
|
160
|
+
it('refuses a cursor replayed under another sort', async () => {
|
|
161
|
+
const first = await page({ limit: 2, sort: 'number' });
|
|
162
|
+
await expectRestart(page({ limit: 2, sort: 'status', cursor: first.nextCursor }));
|
|
163
|
+
});
|
|
164
|
+
/**
|
|
165
|
+
* A bare position is a cursor minted before #2001, when every walk that took no order
|
|
166
|
+
* was ascending by the first declared sort. Exactly there it continues, so a walk in
|
|
167
|
+
* flight across the deploy keeps going; anywhere else it would replay silently, so it
|
|
168
|
+
* is refused — above all under a declared `desc` default it was never minted in.
|
|
169
|
+
*/
|
|
170
|
+
// The fixture's ids are short, and a legacy cursor is recognised only with a ULID id —
|
|
171
|
+
// this one sorts just after `01B`, so the walk resumes where `01B`'s cursor would have.
|
|
172
|
+
const LEGACY = `1002|${AFTER_01B}`;
|
|
173
|
+
it('continues a pre-#2001 cursor in the ascending default walk it came from', async () => {
|
|
174
|
+
const got = await page({ limit: 2, cursor: LEGACY });
|
|
175
|
+
expect(got.entries.map((r) => r['id'])).toEqual(['01C', '01D']);
|
|
176
|
+
});
|
|
177
|
+
it('refuses a pre-#2001 cursor anywhere but that default walk', async () => {
|
|
178
|
+
await expectRestart(stub.invoke('list/newest', { limit: 2, cursor: LEGACY }));
|
|
179
|
+
await expectRestart(page({ limit: 2, order: 'desc', cursor: LEGACY }));
|
|
180
|
+
await expectRestart(page({ limit: 2, sort: 'status', cursor: `open|${AFTER_01B}` }));
|
|
181
|
+
// Not the exact old shape — an id that is no ULID — so not a position at all.
|
|
182
|
+
await expectRestart(page({ limit: 2, cursor: '1002|01B' }));
|
|
183
|
+
});
|
|
125
184
|
it('filters by a declared column, and the filter survives the whole walk', async () => {
|
|
126
185
|
const seen = await walkAll({ filters: { status: 'open' } }, 2);
|
|
127
186
|
expect(seen).toEqual(['01A', '01B', '01C', '01E']);
|
|
@@ -240,6 +299,33 @@ export function listContractSuite(adapterName, makeFixture) {
|
|
|
240
299
|
}));
|
|
241
300
|
expect(got.entries.map((r) => r['id'])).toContain('01Z');
|
|
242
301
|
});
|
|
302
|
+
/**
|
|
303
|
+
* Sort values a cursor has to carry intact (#2018 review): a pipe, dots and the
|
|
304
|
+
* readable tag syntax an earlier draft used, unicode, and nothing at all. Walked one
|
|
305
|
+
* row a page in both directions, so every one of them is a cursor at some point.
|
|
306
|
+
* Last in the suite, because these rows join the table every walk above reads.
|
|
307
|
+
*/
|
|
308
|
+
describe('hostile sort values', () => {
|
|
309
|
+
const HOSTILE = ['', 'a.b.c', 'asc.number.a', 'desc.number.b', 'x|y', 'é😀'];
|
|
310
|
+
const ids = HOSTILE.map(() => ulid());
|
|
311
|
+
const hostile = { kind: 'hostile' };
|
|
312
|
+
beforeAll(async () => {
|
|
313
|
+
for (const [i, number] of HOSTILE.entries()) {
|
|
314
|
+
await stub.invoke('list/add', { id: ids[i], number, status: 'open', kind: 'hostile' });
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
it('walk one row a page, in both directions, without skipping or repeating', async () => {
|
|
318
|
+
expect(await walkAll({ filters: hostile }, 1)).toEqual(ids);
|
|
319
|
+
expect(await walkAll({ filters: hostile, order: 'desc' }, 1)).toEqual([...ids].reverse());
|
|
320
|
+
});
|
|
321
|
+
it('continue a pre-#2001 cursor with its whole value, tag syntax and pipes included', async () => {
|
|
322
|
+
const after = async (cursor) => (await page({ limit: 1, filters: hostile, cursor })).entries.map((r) => r['id']);
|
|
323
|
+
expect(await after(`asc.number.a|${ids[2]}`)).toEqual([ids[3]]);
|
|
324
|
+
expect(await after(`desc.number.b|${ids[3]}`)).toEqual([ids[4]]);
|
|
325
|
+
expect(await after(`x|y|${ids[4]}`)).toEqual([ids[5]]);
|
|
326
|
+
await expectRestart(page({ limit: 1, filters: hostile, order: 'desc', cursor: `desc.number.b|${ids[3]}` }));
|
|
327
|
+
});
|
|
328
|
+
});
|
|
243
329
|
});
|
|
244
330
|
}
|
|
245
331
|
//# sourceMappingURL=list-suite.js.map
|
package/dist/list-suite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-suite.js","sourceRoot":"","sources":["../src/list-suite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EACL,aAAa,EACb,eAAe,EACf,WAAW,EACX,OAAO,EACP,QAAQ,GAIT,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,IAAI,EAAkC,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAIjD,MAAM,UAAU,iBAAiB,CAC/B,WAAmB,EACnB,WAA4C;IAE5C,QAAQ,CAAC,2BAA2B,WAAW,EAAE,EAAE,GAAG,EAAE;QACtD,IAAI,OAAyB,CAAC;QAC9B,IAAI,IAAe,CAAC;QACpB,IAAI,IAAe,CAAC;QACpB,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,MAAM,KAAK,GAAgB,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,CAAC,MAA+B,EAAE,EAAE,CAC/C,IAAI,CAAC,MAAM,CAA+B,WAAW,EAAE,MAAM,CAAC,CAAC;QAEjE,sFAAsF;QACtF,MAAM,OAAO,GAAG,KAAK,EAAE,MAA+B,EAAE,KAAa,EAAqB,EAAE;YAC1F,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,IAAI,MAA0B,CAAC;YAC/B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC;gBACzC,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC;YAC1B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC,CAAC;QAEF,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;YAC9B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACpB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;YAC3F,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YACrD,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE;gBACrC,GAAG,EAAE,YAAY;gBACjB,WAAW,EAAE,CAAC,QAAQ,CAAC;gBACvB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;gBACjC,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aACtC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;YAC/F,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAE9C,4EAA4E;YAC5E,8EAA8E;YAC9E,MAAM,IAAI,GAAG;gBACX,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC7D,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC3E,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9D,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/D,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9D,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;aAC/E,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBAClD,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH;;;;WAIG;QACH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAClF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;YACpF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YACpF,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH;;;;;WAKG;QACH;;;;;WAKG;QACH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAqB,CAAC;YACrG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC3E,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC3E,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC;gBACtB,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;gBACxD,KAAK,EAAE,IAAI;aACZ,CAAC,CAAqB,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH;;;;;WAKG;QACH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;YAC5F,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC/E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAqB,CAAC;YACvG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH;;;;;WAKG;QACH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAqB,CAAC;YAClG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC7E,uBAAuB,CACxB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAqB,CAAC;YACrG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH;;;;WAIG;QACH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAqB,CAAC;YACvG,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC;gBACzB,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC3B,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,KAAK,CAAC,UAAU;aACzB,CAAC,CAAqB,CAAC;YACxB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC3E,uBAAuB,CACxB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,MAAM,CACV,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CACjE,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE;gBACnD,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,QAAQ;aACf,CAAC,CAAc,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"list-suite.js","sourceRoot":"","sources":["../src/list-suite.ts"],"names":[],"mappings":"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"}
|
package/dist/modules.d.ts
CHANGED
|
@@ -2601,6 +2601,22 @@ export declare const listModManifest: {
|
|
|
2601
2601
|
}[] | undefined;
|
|
2602
2602
|
} | undefined;
|
|
2603
2603
|
};
|
|
2604
|
+
/**
|
|
2605
|
+
* #2001: a paged read whose DECLARATION says `desc`, parsed the way every host
|
|
2606
|
+
* parses a declared module — through `operationInputsOf`. Nothing in its handler
|
|
2607
|
+
* names an order, so whatever direction it walks in came from the declaration.
|
|
2608
|
+
*/
|
|
2609
|
+
export declare const listDeclaredOps: {
|
|
2610
|
+
readonly 'list/newest': {
|
|
2611
|
+
readonly paged: {
|
|
2612
|
+
readonly over: {
|
|
2613
|
+
readonly entity: 'listorder';
|
|
2614
|
+
readonly sortable: readonly ['number', 'status', 'id'];
|
|
2615
|
+
};
|
|
2616
|
+
readonly order: 'desc';
|
|
2617
|
+
};
|
|
2618
|
+
};
|
|
2619
|
+
};
|
|
2604
2620
|
export declare const listMod: ModuleRegistration;
|
|
2605
2621
|
export declare const searchModManifest: {
|
|
2606
2622
|
id: string & z.$brand<"ModuleId">;
|
|
@@ -3635,6 +3651,141 @@ export declare const loggedModManifest: {
|
|
|
3635
3651
|
* the line survives the rollback.
|
|
3636
3652
|
*/
|
|
3637
3653
|
export declare const loggedMod: ModuleRegistration;
|
|
3654
|
+
export declare const asyncLogModManifest: {
|
|
3655
|
+
id: string & z.$brand<"ModuleId">;
|
|
3656
|
+
version: string;
|
|
3657
|
+
kernelContract: string;
|
|
3658
|
+
permissions: {
|
|
3659
|
+
key: string & z.$brand<"PermissionKey">;
|
|
3660
|
+
description: string;
|
|
3661
|
+
}[];
|
|
3662
|
+
events: {
|
|
3663
|
+
emits: {
|
|
3664
|
+
type: string;
|
|
3665
|
+
schemaVersion: number;
|
|
3666
|
+
}[];
|
|
3667
|
+
consumes: {
|
|
3668
|
+
type: string;
|
|
3669
|
+
schemaVersion: number;
|
|
3670
|
+
from?: string | undefined;
|
|
3671
|
+
}[];
|
|
3672
|
+
exports?: {
|
|
3673
|
+
type: string;
|
|
3674
|
+
schemaVersion: number;
|
|
3675
|
+
readPermission: string & z.$brand<"PermissionKey">;
|
|
3676
|
+
}[] | undefined;
|
|
3677
|
+
};
|
|
3678
|
+
migrations: {
|
|
3679
|
+
journalDir: string;
|
|
3680
|
+
compatibleFrom: string;
|
|
3681
|
+
};
|
|
3682
|
+
attachmentTargets: {
|
|
3683
|
+
entityType: string;
|
|
3684
|
+
readPermission: string & z.$brand<"PermissionKey">;
|
|
3685
|
+
writePermission?: (string & z.$brand<"PermissionKey">) | undefined;
|
|
3686
|
+
}[];
|
|
3687
|
+
liveTargets?: {
|
|
3688
|
+
entityType: string;
|
|
3689
|
+
readPermission: string & z.$brand<"PermissionKey">;
|
|
3690
|
+
}[] | undefined;
|
|
3691
|
+
entityRelations?: {
|
|
3692
|
+
entityType: string;
|
|
3693
|
+
parentType: string;
|
|
3694
|
+
}[] | undefined;
|
|
3695
|
+
guards?: {
|
|
3696
|
+
before: string;
|
|
3697
|
+
predicate: string;
|
|
3698
|
+
config: Record<string, unknown>;
|
|
3699
|
+
}[] | undefined;
|
|
3700
|
+
schedules?: {
|
|
3701
|
+
operation: string;
|
|
3702
|
+
cadence: {
|
|
3703
|
+
everyMinutes: number;
|
|
3704
|
+
};
|
|
3705
|
+
input?: Record<string, unknown> | undefined;
|
|
3706
|
+
permissions: (string & z.$brand<"PermissionKey">)[];
|
|
3707
|
+
}[] | undefined;
|
|
3708
|
+
peers?: {
|
|
3709
|
+
vertical: string;
|
|
3710
|
+
operations: string[];
|
|
3711
|
+
permissions: (string & z.$brand<"PermissionKey">)[];
|
|
3712
|
+
}[] | undefined;
|
|
3713
|
+
freshness?: {
|
|
3714
|
+
eventType: string;
|
|
3715
|
+
within: {
|
|
3716
|
+
hours: number;
|
|
3717
|
+
};
|
|
3718
|
+
}[] | undefined;
|
|
3719
|
+
withdraws?: string[] | undefined;
|
|
3720
|
+
entitlementKey: string;
|
|
3721
|
+
envSpec?: {
|
|
3722
|
+
key: string;
|
|
3723
|
+
label?: string | undefined;
|
|
3724
|
+
description: string;
|
|
3725
|
+
placeholder?: string | undefined;
|
|
3726
|
+
required: boolean;
|
|
3727
|
+
secret: boolean;
|
|
3728
|
+
default?: string | undefined;
|
|
3729
|
+
group?: string | undefined;
|
|
3730
|
+
}[] | undefined;
|
|
3731
|
+
ownerGrants?: (string & z.$brand<"PermissionKey">)[] | undefined;
|
|
3732
|
+
entitlements?: string[] | undefined;
|
|
3733
|
+
provides?: string[] | undefined;
|
|
3734
|
+
requires?: string[] | undefined;
|
|
3735
|
+
api?: string | undefined;
|
|
3736
|
+
searchables?: {
|
|
3737
|
+
entityType: string;
|
|
3738
|
+
fields: string[];
|
|
3739
|
+
table?: string | undefined;
|
|
3740
|
+
idColumn?: string | undefined;
|
|
3741
|
+
tokenizer?: "prefix" | "substring" | undefined;
|
|
3742
|
+
}[] | undefined;
|
|
3743
|
+
lists?: {
|
|
3744
|
+
entityType: string;
|
|
3745
|
+
sortable: string[];
|
|
3746
|
+
filterable?: string[] | undefined;
|
|
3747
|
+
table?: string | undefined;
|
|
3748
|
+
idColumn?: string | undefined;
|
|
3749
|
+
}[] | undefined;
|
|
3750
|
+
ui?: {
|
|
3751
|
+
routes?: {
|
|
3752
|
+
path: string;
|
|
3753
|
+
screen: string;
|
|
3754
|
+
permission: string & z.$brand<"PermissionKey">;
|
|
3755
|
+
}[] | undefined;
|
|
3756
|
+
nav?: {
|
|
3757
|
+
label: string;
|
|
3758
|
+
icon?: string | undefined;
|
|
3759
|
+
to: string;
|
|
3760
|
+
permission: string & z.$brand<"PermissionKey">;
|
|
3761
|
+
}[] | undefined;
|
|
3762
|
+
entityViews?: {
|
|
3763
|
+
entityType: string;
|
|
3764
|
+
view: string;
|
|
3765
|
+
}[] | undefined;
|
|
3766
|
+
widgets?: {
|
|
3767
|
+
slot: string;
|
|
3768
|
+
component: string;
|
|
3769
|
+
permission: string & z.$brand<"PermissionKey">;
|
|
3770
|
+
}[] | undefined;
|
|
3771
|
+
settingsPanels?: {
|
|
3772
|
+
label: string;
|
|
3773
|
+
component: string;
|
|
3774
|
+
permission: string & z.$brand<"PermissionKey">;
|
|
3775
|
+
}[] | undefined;
|
|
3776
|
+
} | undefined;
|
|
3777
|
+
};
|
|
3778
|
+
/** The text a refusing handler throws with — which no invocation line may carry (#1901). */
|
|
3779
|
+
export declare const ASYNC_LOG_SECRET_TEXT = "payload-quoted-in-an-error";
|
|
3780
|
+
/** An entity id that is personal data — which no invocation line may carry either (#1901). */
|
|
3781
|
+
export declare const ASYNC_LOG_SECRET_ENTITY = "alice@example.com";
|
|
3782
|
+
/**
|
|
3783
|
+
* The module the async-log suite drives (#1901). `asynclog/act` emits one event per tag; the
|
|
3784
|
+
* consumer logs and, for a tag the call marked `fail`, refuses with a coded error whose text
|
|
3785
|
+
* quotes the event, so the suite can show the line keeps the code and drops the text. The two
|
|
3786
|
+
* schedules log, and the second then refuses.
|
|
3787
|
+
*/
|
|
3788
|
+
export declare const asyncLogMod: ModuleRegistration;
|
|
3638
3789
|
export declare const contractTestModules: ModuleRegistration[];
|
|
3639
3790
|
/**
|
|
3640
3791
|
* A module for the live-read fan-out, with two entity types that differ in exactly
|
package/dist/modules.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAWL,CAAC,
|
|
1
|
+
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
|
package/dist/modules.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* validates) draw from this one source. The assertions live in the suites; the
|
|
8
8
|
* artifacts live here.
|
|
9
9
|
*/
|
|
10
|
-
import { dataSubjectId, moduleManifest, operationInputsOf, operationConcurrencyOf, operationIdempotencyOptOutsOf, IDEMPOTENCY_RESULT_LIMIT, permissionKey, principalId, assertTransition, z, KERNEL_AUTHORED_EVENT_TYPES, } from '@substrat-run/contracts';
|
|
10
|
+
import { dataSubjectId, moduleManifest, operationInputsOf, operationConcurrencyOf, operationIdempotencyOptOutsOf, IDEMPOTENCY_RESULT_LIMIT, permissionKey, principalId, assertTransition, z, KERNEL_AUTHORED_EVENT_TYPES, substratError, } from '@substrat-run/contracts';
|
|
11
11
|
import { assertAllowed, readAttachmentText, readHistory, readTimeline, readScopeTimeline, readScopeHistory, ulid, } from '@substrat-run/kernel';
|
|
12
12
|
/** #1745: the machine `test/refuse` asserts against — `test/move` is illegal from `done`. */
|
|
13
13
|
const REFUSE_LIFECYCLE = {
|
|
@@ -1569,8 +1569,19 @@ export const listModManifest = moduleManifest.parse({
|
|
|
1569
1569
|
},
|
|
1570
1570
|
],
|
|
1571
1571
|
});
|
|
1572
|
+
/**
|
|
1573
|
+
* #2001: a paged read whose DECLARATION says `desc`, parsed the way every host
|
|
1574
|
+
* parses a declared module — through `operationInputsOf`. Nothing in its handler
|
|
1575
|
+
* names an order, so whatever direction it walks in came from the declaration.
|
|
1576
|
+
*/
|
|
1577
|
+
export const listDeclaredOps = {
|
|
1578
|
+
'list/newest': {
|
|
1579
|
+
paged: { over: { entity: 'listorder', sortable: ['number', 'status', 'id'] }, order: 'desc' },
|
|
1580
|
+
},
|
|
1581
|
+
};
|
|
1572
1582
|
export const listMod = {
|
|
1573
1583
|
manifest: listModManifest,
|
|
1584
|
+
operationInputs: operationInputsOf(listDeclaredOps),
|
|
1574
1585
|
migrations: [
|
|
1575
1586
|
{
|
|
1576
1587
|
version: '0001-init',
|
|
@@ -1598,6 +1609,8 @@ export const listMod = {
|
|
|
1598
1609
|
const i = input;
|
|
1599
1610
|
return ctx.page('listorder', i);
|
|
1600
1611
|
}),
|
|
1612
|
+
// The declared-`desc` read: the parsed input goes straight through.
|
|
1613
|
+
'list/newest': (async (ctx, input) => ctx.page('listorder', input)),
|
|
1601
1614
|
// Takes the entity type from the caller, so the suite can ask for one no
|
|
1602
1615
|
// module declared and see `NotListable` rather than a guess.
|
|
1603
1616
|
'list/page-of': (async (ctx, input) => {
|
|
@@ -2342,6 +2355,77 @@ export const loggedMod = {
|
|
|
2342
2355
|
}),
|
|
2343
2356
|
},
|
|
2344
2357
|
};
|
|
2358
|
+
// -- #1901: async work's invocation lines -------------------------------------
|
|
2359
|
+
export const asyncLogModManifest = moduleManifest.parse({
|
|
2360
|
+
id: '@test/asynclog',
|
|
2361
|
+
version: '1.0.0',
|
|
2362
|
+
kernelContract: '^0.0.1',
|
|
2363
|
+
permissions: [{ key: 'asynclog:tick', description: 'run the async-log fixture schedules' }],
|
|
2364
|
+
events: {
|
|
2365
|
+
emits: [{ type: 'asynclog.acted', schemaVersion: 1 }],
|
|
2366
|
+
consumes: [{ type: 'asynclog.acted', schemaVersion: 1 }],
|
|
2367
|
+
},
|
|
2368
|
+
migrations: { journalDir: './migrations', compatibleFrom: '1.0.0' },
|
|
2369
|
+
attachmentTargets: [],
|
|
2370
|
+
entitlementKey: 'asynclog',
|
|
2371
|
+
schedules: [
|
|
2372
|
+
{ operation: 'asynclog/tick', cadence: { everyMinutes: 60 }, permissions: ['asynclog:tick'] },
|
|
2373
|
+
{ operation: 'asynclog/tick-fails', cadence: { everyMinutes: 60 }, permissions: ['asynclog:tick'] },
|
|
2374
|
+
],
|
|
2375
|
+
});
|
|
2376
|
+
/** The text a refusing handler throws with — which no invocation line may carry (#1901). */
|
|
2377
|
+
export const ASYNC_LOG_SECRET_TEXT = 'payload-quoted-in-an-error';
|
|
2378
|
+
/** An entity id that is personal data — which no invocation line may carry either (#1901). */
|
|
2379
|
+
export const ASYNC_LOG_SECRET_ENTITY = 'alice@example.com';
|
|
2380
|
+
/**
|
|
2381
|
+
* The module the async-log suite drives (#1901). `asynclog/act` emits one event per tag; the
|
|
2382
|
+
* consumer logs and, for a tag the call marked `fail`, refuses with a coded error whose text
|
|
2383
|
+
* quotes the event, so the suite can show the line keeps the code and drops the text. The two
|
|
2384
|
+
* schedules log, and the second then refuses.
|
|
2385
|
+
*/
|
|
2386
|
+
export const asyncLogMod = {
|
|
2387
|
+
manifest: asyncLogModManifest,
|
|
2388
|
+
operations: {
|
|
2389
|
+
'asynclog/act': ((ctx, input) => {
|
|
2390
|
+
for (const tag of input.tags) {
|
|
2391
|
+
ctx.emit({
|
|
2392
|
+
type: 'asynclog.acted',
|
|
2393
|
+
schemaVersion: 1,
|
|
2394
|
+
entity: { entityType: 'asynclog-thing', entityId: tag },
|
|
2395
|
+
piiClass: 'none',
|
|
2396
|
+
payload: { tag, fail: input.fail === true },
|
|
2397
|
+
});
|
|
2398
|
+
}
|
|
2399
|
+
return { ok: true };
|
|
2400
|
+
}),
|
|
2401
|
+
'asynclog/tick': (async (ctx) => {
|
|
2402
|
+
assertAllowed(await ctx.check('asynclog:tick'));
|
|
2403
|
+
ctx.log.info('ticked');
|
|
2404
|
+
// About an entity whose id is an email address: the run's line may count the event,
|
|
2405
|
+
// and must not name the entity.
|
|
2406
|
+
ctx.emit({
|
|
2407
|
+
type: 'asynclog.acted',
|
|
2408
|
+
schemaVersion: 1,
|
|
2409
|
+
entity: { entityType: 'asynclog-thing', entityId: ASYNC_LOG_SECRET_ENTITY },
|
|
2410
|
+
piiClass: 'none',
|
|
2411
|
+
payload: { tag: 'tick', fail: false },
|
|
2412
|
+
});
|
|
2413
|
+
}),
|
|
2414
|
+
'asynclog/tick-fails': (async (ctx) => {
|
|
2415
|
+
assertAllowed(await ctx.check('asynclog:tick'));
|
|
2416
|
+
ctx.log.info('ticking, about to refuse');
|
|
2417
|
+
throw substratError('conflict', `tick refused: ${ASYNC_LOG_SECRET_TEXT}`);
|
|
2418
|
+
}),
|
|
2419
|
+
},
|
|
2420
|
+
consumers: {
|
|
2421
|
+
'asynclog.acted': ((ctx, event) => {
|
|
2422
|
+
const { tag, fail } = event.payload;
|
|
2423
|
+
ctx.log.info('consumed {tag}', { tag });
|
|
2424
|
+
if (fail)
|
|
2425
|
+
throw substratError('precondition_failed', `refused ${tag}: ${ASYNC_LOG_SECRET_TEXT}`);
|
|
2426
|
+
}),
|
|
2427
|
+
},
|
|
2428
|
+
};
|
|
2345
2429
|
export const contractTestModules = [
|
|
2346
2430
|
...contractTestInitialModules,
|
|
2347
2431
|
lateMod,
|
|
@@ -2385,6 +2469,9 @@ export const contractTestModules = [
|
|
|
2385
2469
|
// #1746/#1747: the ctx.log suite's module. Its consumer reacts only to its own
|
|
2386
2470
|
// `logged.acted`, so it is inert for every other suite.
|
|
2387
2471
|
loggedMod,
|
|
2472
|
+
// #1901: the async-log suite's module. Its consumer reacts only to its own
|
|
2473
|
+
// `asynclog.acted`, and its schedules run only on a host that registers it.
|
|
2474
|
+
asyncLogMod,
|
|
2388
2475
|
];
|
|
2389
2476
|
// -- live reads (#938) -------------------------------------------------------
|
|
2390
2477
|
/**
|