@substrat-run/contract-tests 0.150.0 → 0.152.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/bind-module.d.ts +1 -0
- package/dist/bind-module.d.ts.map +1 -1
- package/dist/check-tally-module.d.ts +103 -0
- package/dist/check-tally-module.d.ts.map +1 -0
- package/dist/check-tally-module.js +133 -0
- package/dist/check-tally-module.js.map +1 -0
- package/dist/check-tally-suite.d.ts +6 -0
- package/dist/check-tally-suite.d.ts.map +1 -0
- package/dist/check-tally-suite.js +152 -0
- package/dist/check-tally-suite.js.map +1 -0
- package/dist/derived-module.d.ts +1 -0
- package/dist/derived-module.d.ts.map +1 -1
- package/dist/entity-state-module.d.ts +2 -0
- package/dist/entity-state-module.d.ts.map +1 -1
- package/dist/entity-trash-module.d.ts +1 -0
- package/dist/entity-trash-module.d.ts.map +1 -1
- package/dist/erasure-module.d.ts +1 -0
- package/dist/erasure-module.d.ts.map +1 -1
- package/dist/fixture-version.d.ts +12 -0
- package/dist/fixture-version.d.ts.map +1 -0
- package/dist/fixture-version.js +14 -0
- package/dist/fixture-version.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/modules.d.ts +31 -0
- package/dist/modules.d.ts.map +1 -1
- package/dist/modules.js +5 -1
- package/dist/modules.js.map +1 -1
- package/dist/scope-host-suite.d.ts.map +1 -1
- package/dist/scope-host-suite.js +8 -7
- package/dist/scope-host-suite.js.map +1 -1
- package/dist/stamps-module.d.ts +1 -0
- package/dist/stamps-module.d.ts.map +1 -1
- package/dist/store-driver-release-suite.d.ts.map +1 -1
- package/dist/store-driver-release-suite.js +4 -3
- package/dist/store-driver-release-suite.js.map +1 -1
- package/dist/upload-link-module.d.ts +1 -0
- package/dist/upload-link-module.d.ts.map +1 -1
- package/dist/vertical-events-suite.d.ts +2 -0
- package/dist/vertical-events-suite.d.ts.map +1 -1
- package/dist/vertical-events-suite.js +3 -2
- package/dist/vertical-events-suite.js.map +1 -1
- package/package.json +4 -4
package/dist/bind-module.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind-module.d.ts","sourceRoot":"","sources":["../src/bind-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAKL,KAAK,gBAAgB,EAGtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAiB,KAAK,kBAAkB,EAA+C,MAAM,sBAAsB,CAAC;AAG3H,eAAO,MAAM,aAAa,oCAAuC,CAAC;AAClE,eAAO,MAAM,WAAW,oCAAqC,CAAC;AAC9D,eAAO,MAAM,WAAW,oCAAqC,CAAC;AAC9D,yEAAyE;AACzE,eAAO,MAAM,QAAQ,oCAAkC,CAAC;AAExD,eAAO,MAAM,YAAY;;;;;;;;;;;;;QAMrB,iFAAiF;;;;;;;;;IAOnF,0EAA0E;;;;;;;;;CAM1E,CAAC;AAEH,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"bind-module.d.ts","sourceRoot":"","sources":["../src/bind-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAKL,KAAK,gBAAgB,EAGtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAiB,KAAK,kBAAkB,EAA+C,MAAM,sBAAsB,CAAC;AAG3H,eAAO,MAAM,aAAa,oCAAuC,CAAC;AAClE,eAAO,MAAM,WAAW,oCAAqC,CAAC;AAC9D,eAAO,MAAM,WAAW,oCAAqC,CAAC;AAC9D,yEAAyE;AACzE,eAAO,MAAM,QAAQ,oCAAkC,CAAC;AAExD,eAAO,MAAM,YAAY;;;;;;;;;;;;;QAMrB,iFAAiF;;;;;;;;;IAOnF,0EAA0E;;;;;;;;;CAM1E,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAc1B,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,UAAU,EAAE,gBAOxB,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,cAAc,EAAE,gBAM5B,CAAC;AAUF,eAAO,MAAM,OAAO,EAAE,kBAgDrB,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The fixture behind `checkTallyContractSuite` (#2387): one module bound through `operationsFor`,
|
|
3
|
+
* the path a vertical takes, so the host reads which operations are held to a check from a real
|
|
4
|
+
* declaration — and one bound with `testOperations`, which declares nothing.
|
|
5
|
+
*
|
|
6
|
+
* Every authored operation that declares `permission` is held. Each one below asks in a different
|
|
7
|
+
* way, or does not ask, and none of them asserts the decision, so each COMPLETES whatever the
|
|
8
|
+
* caller holds: the question the host answers is whether it asked, never what the answer was.
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import { type ModuleRegistration } from '@substrat-run/kernel';
|
|
12
|
+
export declare const CHECK_TALLY_MODULE_ID = "@test/check-tally";
|
|
13
|
+
export declare const checkTallyOperations: {
|
|
14
|
+
readonly 'tally/checks': {
|
|
15
|
+
readonly summary: "Asks, and returns the answer";
|
|
16
|
+
readonly permission: "tally:act";
|
|
17
|
+
readonly output: z.ZodObject<{
|
|
18
|
+
allowed: z.ZodBoolean;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
};
|
|
21
|
+
readonly 'tally/silent': {
|
|
22
|
+
readonly summary: "Writes a row and asks nothing";
|
|
23
|
+
readonly permission: "tally:act";
|
|
24
|
+
readonly output: z.ZodObject<{
|
|
25
|
+
written: z.ZodNumber;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
};
|
|
28
|
+
readonly 'tally/via-helper': {
|
|
29
|
+
readonly summary: "Asks inside a helper";
|
|
30
|
+
readonly permission: "tally:act";
|
|
31
|
+
readonly output: z.ZodObject<{
|
|
32
|
+
ok: z.ZodBoolean;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
};
|
|
35
|
+
readonly 'tally/caught': {
|
|
36
|
+
readonly summary: "Asks, is refused, and carries on";
|
|
37
|
+
readonly permission: "tally:act";
|
|
38
|
+
readonly output: z.ZodObject<{
|
|
39
|
+
ok: z.ZodBoolean;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
};
|
|
42
|
+
readonly 'tally/malformed': {
|
|
43
|
+
readonly summary: "Asks with a key that does not parse";
|
|
44
|
+
readonly permission: "tally:act";
|
|
45
|
+
readonly output: z.ZodObject<{
|
|
46
|
+
ok: z.ZodBoolean;
|
|
47
|
+
}, z.core.$strip>;
|
|
48
|
+
};
|
|
49
|
+
readonly 'tally/in-atomic': {
|
|
50
|
+
readonly summary: "Asks inside a sub-transaction";
|
|
51
|
+
readonly permission: "tally:act";
|
|
52
|
+
readonly output: z.ZodObject<{
|
|
53
|
+
ok: z.ZodBoolean;
|
|
54
|
+
}, z.core.$strip>;
|
|
55
|
+
};
|
|
56
|
+
readonly 'tally/throws': {
|
|
57
|
+
readonly summary: "Fails before asking";
|
|
58
|
+
readonly permission: "tally:act";
|
|
59
|
+
readonly output: z.ZodObject<{
|
|
60
|
+
ok: z.ZodBoolean;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
};
|
|
63
|
+
readonly 'tally/guarded-silent': {
|
|
64
|
+
readonly summary: "Behind a guard that asks; asks nothing itself";
|
|
65
|
+
readonly permission: "tally:act";
|
|
66
|
+
readonly output: z.ZodObject<{
|
|
67
|
+
ok: z.ZodBoolean;
|
|
68
|
+
}, z.core.$strip>;
|
|
69
|
+
};
|
|
70
|
+
readonly 'tally/count': {
|
|
71
|
+
readonly summary: "How many rows `silent` left";
|
|
72
|
+
readonly permission: "tally:act";
|
|
73
|
+
readonly output: z.ZodObject<{
|
|
74
|
+
written: z.ZodNumber;
|
|
75
|
+
}, z.core.$strip>;
|
|
76
|
+
};
|
|
77
|
+
readonly 'tally/declared-none': {
|
|
78
|
+
readonly summary: "Declares that it checks nothing";
|
|
79
|
+
readonly narrows: {
|
|
80
|
+
readonly reason: "the fixture for the declared exception";
|
|
81
|
+
readonly checks: readonly [];
|
|
82
|
+
readonly unchecked: true;
|
|
83
|
+
};
|
|
84
|
+
readonly output: z.ZodObject<{
|
|
85
|
+
ok: z.ZodBoolean;
|
|
86
|
+
}, z.core.$strip>;
|
|
87
|
+
};
|
|
88
|
+
readonly 'tally/empty-walk': {
|
|
89
|
+
readonly summary: "A per-row walk over nothing";
|
|
90
|
+
readonly narrows: {
|
|
91
|
+
readonly reason: "checks each row it returns, and returns none";
|
|
92
|
+
readonly checks: readonly ["tally:act"];
|
|
93
|
+
};
|
|
94
|
+
readonly output: z.ZodObject<{
|
|
95
|
+
ok: z.ZodBoolean;
|
|
96
|
+
}, z.core.$strip>;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
export declare const checkTallyMod: ModuleRegistration;
|
|
100
|
+
export declare const UNDECLARED_TALLY_MODULE_ID = "@test/check-tally-undeclared";
|
|
101
|
+
/** A module that declares no operation surface, so no key it promised to check. */
|
|
102
|
+
export declare const undeclaredTallyMod: ModuleRegistration;
|
|
103
|
+
//# sourceMappingURL=check-tally-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-tally-module.d.ts","sourceRoot":"","sources":["../src/check-tally-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,OAAO,EAAgC,KAAK,kBAAkB,EAAgD,MAAM,sBAAsB,CAAC;AAG3I,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAUzD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoB/B,CAAC;AAuBH,eAAO,MAAM,aAAa,EAAE,kBAoD3B,CAAC;AAEF,eAAO,MAAM,0BAA0B,iCAAiC,CAAC;AAEzE,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,EAAE,kBAchC,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The fixture behind `checkTallyContractSuite` (#2387): one module bound through `operationsFor`,
|
|
3
|
+
* the path a vertical takes, so the host reads which operations are held to a check from a real
|
|
4
|
+
* declaration — and one bound with `testOperations`, which declares nothing.
|
|
5
|
+
*
|
|
6
|
+
* Every authored operation that declares `permission` is held. Each one below asks in a different
|
|
7
|
+
* way, or does not ask, and none of them asserts the decision, so each COMPLETES whatever the
|
|
8
|
+
* caller holds: the question the host answers is whether it asked, never what the answer was.
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import { defineEntities, defineOperations, manifestOperations, moduleManifest, permissionKey, } from '@substrat-run/contracts';
|
|
12
|
+
import { assertAllowed, operationsFor } from '@substrat-run/kernel';
|
|
13
|
+
import { testOperations } from './test-operations.js';
|
|
14
|
+
export const CHECK_TALLY_MODULE_ID = '@test/check-tally';
|
|
15
|
+
const entities = defineEntities({});
|
|
16
|
+
const PERMISSIONS = ['tally:act', 'tally:never-held'];
|
|
17
|
+
const ACT = permissionKey.parse('tally:act');
|
|
18
|
+
const NEVER_HELD = permissionKey.parse('tally:never-held');
|
|
19
|
+
const written = z.object({ written: z.number() });
|
|
20
|
+
const nothing = z.object({ ok: z.boolean() });
|
|
21
|
+
export const checkTallyOperations = defineOperations(entities, PERMISSIONS)({
|
|
22
|
+
'tally/checks': { summary: 'Asks, and returns the answer', permission: 'tally:act', output: z.object({ allowed: z.boolean() }) },
|
|
23
|
+
'tally/silent': { summary: 'Writes a row and asks nothing', permission: 'tally:act', output: written },
|
|
24
|
+
'tally/via-helper': { summary: 'Asks inside a helper', permission: 'tally:act', output: nothing },
|
|
25
|
+
'tally/caught': { summary: 'Asks, is refused, and carries on', permission: 'tally:act', output: nothing },
|
|
26
|
+
'tally/malformed': { summary: 'Asks with a key that does not parse', permission: 'tally:act', output: nothing },
|
|
27
|
+
'tally/in-atomic': { summary: 'Asks inside a sub-transaction', permission: 'tally:act', output: nothing },
|
|
28
|
+
'tally/throws': { summary: 'Fails before asking', permission: 'tally:act', output: nothing },
|
|
29
|
+
'tally/guarded-silent': { summary: 'Behind a guard that asks; asks nothing itself', permission: 'tally:act', output: nothing },
|
|
30
|
+
'tally/count': { summary: 'How many rows `silent` left', permission: 'tally:act', output: written },
|
|
31
|
+
'tally/declared-none': {
|
|
32
|
+
summary: 'Declares that it checks nothing',
|
|
33
|
+
narrows: { reason: 'the fixture for the declared exception', checks: [], unchecked: true },
|
|
34
|
+
output: nothing,
|
|
35
|
+
},
|
|
36
|
+
'tally/empty-walk': {
|
|
37
|
+
summary: 'A per-row walk over nothing',
|
|
38
|
+
narrows: { reason: 'checks each row it returns, and returns none', checks: ['tally:act'] },
|
|
39
|
+
output: nothing,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
const manifest = moduleManifest.parse({
|
|
43
|
+
id: CHECK_TALLY_MODULE_ID,
|
|
44
|
+
version: '1.0.0',
|
|
45
|
+
kernelContract: '^0.0.1',
|
|
46
|
+
migrations: { journalDir: './migrations', compatibleFrom: '1.0.0' },
|
|
47
|
+
...manifestOperations(checkTallyOperations, {
|
|
48
|
+
permissions: { 'tally:act': 'drive the check-tally fixture', 'tally:never-held': 'a key no one holds' },
|
|
49
|
+
consumes: [],
|
|
50
|
+
}),
|
|
51
|
+
attachmentTargets: [],
|
|
52
|
+
entitlementKey: 'check-tally',
|
|
53
|
+
// A guard runs on the operation's own context before the handler, and this one asks a key
|
|
54
|
+
// without asserting it: its check is the guard's, never the handler's.
|
|
55
|
+
guards: [{ before: 'tally/guarded-silent', predicate: 'tally/asks-and-allows', config: {} }],
|
|
56
|
+
});
|
|
57
|
+
/** A check made somewhere other than the handler's own body — the shape a real one usually takes. */
|
|
58
|
+
async function mayAct(ctx) {
|
|
59
|
+
return (await ctx.check(ACT)).allowed;
|
|
60
|
+
}
|
|
61
|
+
export const checkTallyMod = {
|
|
62
|
+
manifest,
|
|
63
|
+
migrations: [{ version: '0001-init', sql: 'CREATE TABLE tally_rows (id INTEGER PRIMARY KEY AUTOINCREMENT);' }],
|
|
64
|
+
predicates: {
|
|
65
|
+
'tally/asks-and-allows': async (ctx) => {
|
|
66
|
+
await ctx.check(NEVER_HELD);
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
...operationsFor(checkTallyOperations)({
|
|
70
|
+
'tally/checks': async (ctx) => ({ allowed: (await ctx.check(ACT)).allowed }),
|
|
71
|
+
'tally/silent': async (ctx) => {
|
|
72
|
+
ctx.sql.exec('INSERT INTO tally_rows DEFAULT VALUES', []);
|
|
73
|
+
return { written: 1 };
|
|
74
|
+
},
|
|
75
|
+
'tally/via-helper': async (ctx) => {
|
|
76
|
+
await mayAct(ctx);
|
|
77
|
+
return { ok: true };
|
|
78
|
+
},
|
|
79
|
+
'tally/caught': async (ctx) => {
|
|
80
|
+
try {
|
|
81
|
+
assertAllowed(await ctx.check(NEVER_HELD));
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
/* refused, and the operation goes on without it — still a check it made */
|
|
85
|
+
}
|
|
86
|
+
return { ok: true };
|
|
87
|
+
},
|
|
88
|
+
'tally/malformed': async (ctx) => {
|
|
89
|
+
try {
|
|
90
|
+
await ctx.check('Not A Key!');
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
/* the key did not parse; asking was still the operation's doing */
|
|
94
|
+
}
|
|
95
|
+
return { ok: true };
|
|
96
|
+
},
|
|
97
|
+
'tally/in-atomic': async (ctx) => {
|
|
98
|
+
await ctx.atomic(async () => {
|
|
99
|
+
await ctx.check(ACT);
|
|
100
|
+
});
|
|
101
|
+
return { ok: true };
|
|
102
|
+
},
|
|
103
|
+
'tally/throws': async () => {
|
|
104
|
+
throw new Error('tally/throws: refused before asking anything');
|
|
105
|
+
},
|
|
106
|
+
'tally/count': async (ctx) => {
|
|
107
|
+
await ctx.check(ACT);
|
|
108
|
+
const [row] = ctx.sql.query('SELECT COUNT(*) AS n FROM tally_rows', []);
|
|
109
|
+
return { written: Number(row?.n ?? 0) };
|
|
110
|
+
},
|
|
111
|
+
'tally/guarded-silent': async () => ({ ok: true }),
|
|
112
|
+
'tally/declared-none': async () => ({ ok: true }),
|
|
113
|
+
'tally/empty-walk': async () => ({ ok: true }),
|
|
114
|
+
}),
|
|
115
|
+
};
|
|
116
|
+
export const UNDECLARED_TALLY_MODULE_ID = '@test/check-tally-undeclared';
|
|
117
|
+
/** A module that declares no operation surface, so no key it promised to check. */
|
|
118
|
+
export const undeclaredTallyMod = {
|
|
119
|
+
manifest: moduleManifest.parse({
|
|
120
|
+
id: UNDECLARED_TALLY_MODULE_ID,
|
|
121
|
+
version: '1.0.0',
|
|
122
|
+
kernelContract: '^0.0.1',
|
|
123
|
+
permissions: [],
|
|
124
|
+
events: { emits: [], consumes: [] },
|
|
125
|
+
migrations: { journalDir: './migrations', compatibleFrom: '1.0.0' },
|
|
126
|
+
attachmentTargets: [],
|
|
127
|
+
entitlementKey: 'check-tally',
|
|
128
|
+
}),
|
|
129
|
+
...testOperations({
|
|
130
|
+
'tally-undeclared/silent': (async () => ({ ok: true })),
|
|
131
|
+
}),
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=check-tally-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-tally-module.js","sourceRoot":"","sources":["../src/check-tally-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ModuleLogLine } from '@substrat-run/kernel';
|
|
2
|
+
import type { ScopeHostFixture } from './scope-host-suite.js';
|
|
3
|
+
export declare function checkTallyContractSuite(adapterName: string, makeFixture: () => Promise<ScopeHostFixture & {
|
|
4
|
+
logs: () => ModuleLogLine[];
|
|
5
|
+
}>): void;
|
|
6
|
+
//# sourceMappingURL=check-tally-suite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-tally-suite.d.ts","sourceRoot":"","sources":["../src/check-tally-suite.ts"],"names":[],"mappings":"AAWA,OAAO,EAKL,KAAK,aAAa,EAGnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAmB9D,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,aAAa,EAAE,CAAA;CAAE,CAAC,GAC7E,IAAI,CAuJN"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contract suite for the per-invocation check tally (#2387): an operation that declares a
|
|
3
|
+
* `permission` and returns without calling `ctx.check` is recorded, on both adapters, and refused
|
|
4
|
+
* where a test run asks for it.
|
|
5
|
+
*
|
|
6
|
+
* The record is a `warn` line through the context's own `ctx.log`, so the suite reads the lines
|
|
7
|
+
* the host wrote for one invocation id. Every operation in the fixture completes whatever the
|
|
8
|
+
* caller holds, so each case is about whether the operation ASKED, never about the answer.
|
|
9
|
+
*/
|
|
10
|
+
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
|
|
11
|
+
import { platformActorId, principalId, scopeId, tenantId } from '@substrat-run/contracts';
|
|
12
|
+
import { REFUSE_UNCHECKED_OPERATIONS_KEY, UNCHECKED_OPERATION_FINDING, UNCHECKED_OPERATION_TEMPLATE, ulid, } from '@substrat-run/kernel';
|
|
13
|
+
import { checkTallyMod, undeclaredTallyMod } from './check-tally-module.js';
|
|
14
|
+
const FLAG = Symbol.for(REFUSE_UNCHECKED_OPERATIONS_KEY);
|
|
15
|
+
/** Run `fn` with the refusal flag set to `on`, and put back whatever a preload had set. */
|
|
16
|
+
async function withRefusal(on, fn) {
|
|
17
|
+
const g = globalThis;
|
|
18
|
+
const before = g[FLAG];
|
|
19
|
+
g[FLAG] = on;
|
|
20
|
+
try {
|
|
21
|
+
return await fn();
|
|
22
|
+
}
|
|
23
|
+
finally {
|
|
24
|
+
if (before === undefined)
|
|
25
|
+
delete g[FLAG];
|
|
26
|
+
else
|
|
27
|
+
g[FLAG] = before;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function checkTallyContractSuite(adapterName, makeFixture) {
|
|
31
|
+
describe(`check tally (#2387): ${adapterName}`, () => {
|
|
32
|
+
let fixture;
|
|
33
|
+
let host;
|
|
34
|
+
let stub;
|
|
35
|
+
const t1 = tenantId.parse(ulid());
|
|
36
|
+
const s1 = scopeId.parse(ulid());
|
|
37
|
+
const alice = principalId.parse(ulid());
|
|
38
|
+
const staff = platformActorId.parse(ulid());
|
|
39
|
+
/** The unchecked-operation lines the host wrote for one invocation. */
|
|
40
|
+
const recorded = (invocationId) => fixture
|
|
41
|
+
.logs()
|
|
42
|
+
.filter((l) => l.invocationId === invocationId && l.template === UNCHECKED_OPERATION_TEMPLATE);
|
|
43
|
+
/** Invoke with a fresh invocation id, with the refusal flag off, and return what was recorded. */
|
|
44
|
+
const run = (operation, input) => withRefusal(false, async () => {
|
|
45
|
+
const invocationId = ulid();
|
|
46
|
+
const result = await stub.invoke(operation, input, { invocationId });
|
|
47
|
+
return { result, lines: recorded(invocationId) };
|
|
48
|
+
});
|
|
49
|
+
beforeAll(async () => {
|
|
50
|
+
fixture = await makeFixture();
|
|
51
|
+
host = fixture.host;
|
|
52
|
+
host.registerModule(checkTallyMod);
|
|
53
|
+
host.registerModule(undeclaredTallyMod);
|
|
54
|
+
await host.admin.createTenant(staff, { id: t1, slug: 'tally-tenant', name: 'Tally Tenant' });
|
|
55
|
+
await host.admin.grantEntitlement(staff, t1, 'check-tally');
|
|
56
|
+
await host.provisionScope(staff, { tenantId: t1, scopeId: s1, vertical: 'tally-vertical' });
|
|
57
|
+
await host.admin.activateScope(staff, t1, s1);
|
|
58
|
+
// Alice holds nothing: every check below is refused, and still counts.
|
|
59
|
+
stub = await host.getScope(alice, t1, s1);
|
|
60
|
+
});
|
|
61
|
+
afterAll(async () => {
|
|
62
|
+
await fixture.cleanup();
|
|
63
|
+
});
|
|
64
|
+
it('an operation that checks is not recorded — whatever the answer', async () => {
|
|
65
|
+
const { result, lines } = await run('tally/checks');
|
|
66
|
+
expect(result).toEqual({ allowed: false });
|
|
67
|
+
expect(lines).toEqual([]);
|
|
68
|
+
});
|
|
69
|
+
it('an operation that declares a permission and never checks is recorded, with the host’s stamp', async () => {
|
|
70
|
+
const { result, lines } = await run('tally/silent');
|
|
71
|
+
expect(result).toEqual({ written: 1 });
|
|
72
|
+
expect(lines).toHaveLength(1);
|
|
73
|
+
expect(lines[0]).toMatchObject({
|
|
74
|
+
substrat: 'log',
|
|
75
|
+
level: 'warn',
|
|
76
|
+
message: UNCHECKED_OPERATION_TEMPLATE,
|
|
77
|
+
tenantId: t1,
|
|
78
|
+
scopeId: s1,
|
|
79
|
+
operation: 'tally/silent',
|
|
80
|
+
principalKind: 'principal',
|
|
81
|
+
});
|
|
82
|
+
expect(lines[0].fields).toEqual({ finding: UNCHECKED_OPERATION_FINDING });
|
|
83
|
+
});
|
|
84
|
+
it('recording changes nothing: the unchecked write commits', async () => {
|
|
85
|
+
const before = (await run('tally/count')).result.written;
|
|
86
|
+
await run('tally/silent');
|
|
87
|
+
const after = (await run('tally/count')).result.written;
|
|
88
|
+
expect(after).toBe(before + 1);
|
|
89
|
+
});
|
|
90
|
+
it('a check made inside a helper counts', async () => {
|
|
91
|
+
expect((await run('tally/via-helper')).lines).toEqual([]);
|
|
92
|
+
});
|
|
93
|
+
it('a refused check the handler caught counts', async () => {
|
|
94
|
+
expect((await run('tally/caught')).lines).toEqual([]);
|
|
95
|
+
});
|
|
96
|
+
it('a check that threw counts', async () => {
|
|
97
|
+
expect((await run('tally/malformed')).lines).toEqual([]);
|
|
98
|
+
});
|
|
99
|
+
it('a check inside ctx.atomic counts', async () => {
|
|
100
|
+
expect((await run('tally/in-atomic')).lines).toEqual([]);
|
|
101
|
+
});
|
|
102
|
+
it('a guard that asks is not the handler asking: the handler behind it is still recorded', async () => {
|
|
103
|
+
const { result, lines } = await run('tally/guarded-silent');
|
|
104
|
+
expect(result).toEqual({ ok: true });
|
|
105
|
+
expect(lines.map((l) => l.operation)).toEqual(['tally/guarded-silent']);
|
|
106
|
+
});
|
|
107
|
+
it('under a run that refuses, a guard that asked does not let the handler behind it through', async () => {
|
|
108
|
+
await withRefusal(true, () => expect(() => stub.invoke('tally/guarded-silent')).rejects.toThrow(/tally\/guarded-silent declares a permission/));
|
|
109
|
+
});
|
|
110
|
+
it('an operation that declares it checks nothing (`narrows.unchecked`) is not recorded', async () => {
|
|
111
|
+
expect((await run('tally/declared-none')).lines).toEqual([]);
|
|
112
|
+
});
|
|
113
|
+
it('a per-row walk over nothing is not recorded', async () => {
|
|
114
|
+
expect((await run('tally/empty-walk')).lines).toEqual([]);
|
|
115
|
+
});
|
|
116
|
+
it('a module that declares no operations promised no key, and is not recorded', async () => {
|
|
117
|
+
expect((await run('tally-undeclared/silent')).lines).toEqual([]);
|
|
118
|
+
});
|
|
119
|
+
it('an operation that fails is not recorded — it did not complete', async () => {
|
|
120
|
+
const invocationId = ulid();
|
|
121
|
+
await withRefusal(false, () => expect(() => stub.invoke('tally/throws', undefined, { invocationId })).rejects.toThrow(/refused before asking/));
|
|
122
|
+
expect(recorded(invocationId)).toEqual([]);
|
|
123
|
+
});
|
|
124
|
+
it('counts per invocation, not per request: a check in one call does not cover the next', async () => {
|
|
125
|
+
const invocationId = ulid();
|
|
126
|
+
await withRefusal(false, async () => {
|
|
127
|
+
await stub.invoke('tally/checks', undefined, { invocationId });
|
|
128
|
+
await stub.invoke('tally/silent', undefined, { invocationId });
|
|
129
|
+
await stub.invoke('tally/checks', undefined, { invocationId });
|
|
130
|
+
});
|
|
131
|
+
expect(recorded(invocationId).map((l) => l.operation)).toEqual(['tally/silent']);
|
|
132
|
+
});
|
|
133
|
+
it('under a run that refuses, the unchecked operation fails and its write rolls back', async () => {
|
|
134
|
+
const before = (await run('tally/count')).result.written;
|
|
135
|
+
const invocationId = ulid();
|
|
136
|
+
await withRefusal(true, () => expect(() => stub.invoke('tally/silent', undefined, { invocationId })).rejects.toThrow(/tally\/silent declares a permission but its handler returned without calling ctx\.check/));
|
|
137
|
+
// Recorded before it was refused, so the line says why the call failed.
|
|
138
|
+
expect(recorded(invocationId)).toHaveLength(1);
|
|
139
|
+
const after = (await run('tally/count')).result.written;
|
|
140
|
+
expect(after).toBe(before);
|
|
141
|
+
});
|
|
142
|
+
it('under a run that refuses, everything that asked — or was never held — still completes', async () => {
|
|
143
|
+
await withRefusal(true, async () => {
|
|
144
|
+
for (const op of ['tally/checks', 'tally/via-helper', 'tally/caught', 'tally/malformed', 'tally/in-atomic',
|
|
145
|
+
'tally/declared-none', 'tally/empty-walk', 'tally-undeclared/silent']) {
|
|
146
|
+
expect(await stub.invoke(op)).toBeDefined();
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=check-tally-suite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-tally-suite.js","sourceRoot":"","sources":["../src/check-tally-suite.ts"],"names":[],"mappings":"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"}
|
package/dist/derived-module.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derived-module.d.ts","sourceRoot":"","sources":["../src/derived-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,OAAO,EAA6C,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1G,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC1B,CAAC;AAQH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAHsC,OAAO;6BAAU,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAFnB,QAAQ;6BAAU,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgNnG,CAAC;AAEH,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"derived-module.d.ts","sourceRoot":"","sources":["../src/derived-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,OAAO,EAA6C,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1G,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC1B,CAAC;AAQH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAHsC,OAAO;6BAAU,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAFnB,QAAQ;6BAAU,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgNnG,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiB7B,CAAC;AAMH,eAAO,MAAM,UAAU,EAAE,kBA0DxB,CAAC"}
|
|
@@ -6,6 +6,7 @@ export declare const stateModManifest: {
|
|
|
6
6
|
permissions: {
|
|
7
7
|
key: string & import("zod").$brand<"PermissionKey">;
|
|
8
8
|
description: string;
|
|
9
|
+
holder?: "system" | undefined;
|
|
9
10
|
}[];
|
|
10
11
|
events: {
|
|
11
12
|
emits: {
|
|
@@ -184,6 +185,7 @@ export declare const rebuildModManifest: {
|
|
|
184
185
|
permissions: {
|
|
185
186
|
key: string & import("zod").$brand<"PermissionKey">;
|
|
186
187
|
description: string;
|
|
188
|
+
holder?: "system" | undefined;
|
|
187
189
|
}[];
|
|
188
190
|
events: {
|
|
189
191
|
emits: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-state-module.d.ts","sourceRoot":"","sources":["../src/entity-state-module.ts"],"names":[],"mappings":"AAaA,OAAO,EAML,KAAK,kBAAkB,EAExB,MAAM,sBAAsB,CAAC;AAG9B,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"entity-state-module.d.ts","sourceRoot":"","sources":["../src/entity-state-module.ts"],"names":[],"mappings":"AAaA,OAAO,EAML,KAAK,kBAAkB,EAExB,MAAM,sBAAsB,CAAC;AAG9B,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B3B,CAAC;AAcH,eAAO,MAAM,QAAQ,EAAE,kBA2FtB,CAAC;AAWF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyB7B,CAAC;AAQH,eAAO,MAAM,UAAU,EAAE,kBAmFxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-trash-module.d.ts","sourceRoot":"","sources":["../src/entity-trash-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,OAAO,EAA8B,KAAK,kBAAkB,EAAyB,MAAM,sBAAsB,CAAC;AAGlH,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,8FAA8F;AAC9F,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBxB,CAAC;AAOH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAHuC,MAAM;6BAAU,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuGxF,CAAC;AAEH,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"entity-trash-module.d.ts","sourceRoot":"","sources":["../src/entity-trash-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,OAAO,EAA8B,KAAK,kBAAkB,EAAyB,MAAM,sBAAsB,CAAC;AAGlH,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,8FAA8F;AAC9F,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBxB,CAAC;AAOH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAHuC,MAAM;6BAAU,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuGxF,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB3B,CAAC;AAOH,eAAO,MAAM,QAAQ,EAAE,kBAmHtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,eAAO,MAAM,aAAa;;;;;;;;;;;;CAMxB,CAAC;AAMH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;6BAF+C,QAAQ;6BAAU,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAapG,CAAC;AAKH,eAAO,MAAM,aAAa,EAAE,kBAyC3B,CAAC"}
|
package/dist/erasure-module.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erasure-module.d.ts","sourceRoot":"","sources":["../src/erasure-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,kBAAkB,EAAqC,MAAM,sBAAsB,CAAC;AAGlG,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C1B,CAAC;AAEH,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"erasure-module.d.ts","sourceRoot":"","sources":["../src/erasure-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,kBAAkB,EAAqC,MAAM,sBAAsB,CAAC;AAGlG,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C1B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAW7B,CAAC;AAqFH,eAAO,MAAM,UAAU,EAAE,kBA+BxB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,kBAY7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,kBAsBnC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAsBhC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `version` label a fixture gives a `publishVersion` call, written from the version's own id.
|
|
3
|
+
*
|
|
4
|
+
* `vertical_versions` is unique on `(vertical_slug, version)`, so two versions of one slug must
|
|
5
|
+
* not share a label. The kernel's `ulid()` is monotonic only within a millisecond: in a later one
|
|
6
|
+
* the random half is drawn afresh, so any SUFFIX of an id (`id.slice(-4)` is 20 bits) is
|
|
7
|
+
* independent between versions and two of them collide now and then (#2402). Only the whole id is
|
|
8
|
+
* distinct for two ids from one mint, so the label carries all of it. A label is free-form text
|
|
9
|
+
* (`z.string().min(1)`), which is why a 26-character tail is accepted.
|
|
10
|
+
*/
|
|
11
|
+
export declare function fixtureVersion(id: string, major?: number): string;
|
|
12
|
+
//# sourceMappingURL=fixture-version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixture-version.d.ts","sourceRoot":"","sources":["../src/fixture-version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,CAE5D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `version` label a fixture gives a `publishVersion` call, written from the version's own id.
|
|
3
|
+
*
|
|
4
|
+
* `vertical_versions` is unique on `(vertical_slug, version)`, so two versions of one slug must
|
|
5
|
+
* not share a label. The kernel's `ulid()` is monotonic only within a millisecond: in a later one
|
|
6
|
+
* the random half is drawn afresh, so any SUFFIX of an id (`id.slice(-4)` is 20 bits) is
|
|
7
|
+
* independent between versions and two of them collide now and then (#2402). Only the whole id is
|
|
8
|
+
* distinct for two ids from one mint, so the label carries all of it. A label is free-form text
|
|
9
|
+
* (`z.string().min(1)`), which is why a 26-character tail is accepted.
|
|
10
|
+
*/
|
|
11
|
+
export function fixtureVersion(id, major = 1) {
|
|
12
|
+
return `${major}.0.${id.toLowerCase()}`;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=fixture-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixture-version.js","sourceRoot":"","sources":["../src/fixture-version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,KAAK,GAAG,CAAC;IAClD,OAAO,GAAG,KAAK,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;AAC1C,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -27,6 +27,8 @@ export { timelineContractSuite } from './timeline-suite.js';
|
|
|
27
27
|
export { concurrencyContractSuite } from './concurrency-suite.js';
|
|
28
28
|
export { emittedReportContractSuite } from './emitted-suite.js';
|
|
29
29
|
export { moduleLogContractSuite } from './module-log-suite.js';
|
|
30
|
+
export { checkTallyContractSuite } from './check-tally-suite.js';
|
|
31
|
+
export { checkTallyMod, checkTallyOperations, CHECK_TALLY_MODULE_ID, undeclaredTallyMod } from './check-tally-module.js';
|
|
30
32
|
export { asyncLogContractSuite, type AsyncLogFixture } from './async-log-suite.js';
|
|
31
33
|
export { idempotencyContractSuite } from './idempotency-suite.js';
|
|
32
34
|
export { listContractSuite } from './list-suite.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,8 @@ export { timelineContractSuite } from './timeline-suite.js';
|
|
|
23
23
|
export { concurrencyContractSuite } from './concurrency-suite.js';
|
|
24
24
|
export { emittedReportContractSuite } from './emitted-suite.js';
|
|
25
25
|
export { moduleLogContractSuite } from './module-log-suite.js';
|
|
26
|
+
export { checkTallyContractSuite } from './check-tally-suite.js';
|
|
27
|
+
export { checkTallyMod, checkTallyOperations, CHECK_TALLY_MODULE_ID, undeclaredTallyMod } from './check-tally-module.js';
|
|
26
28
|
export { asyncLogContractSuite } from './async-log-suite.js';
|
|
27
29
|
export { idempotencyContractSuite } from './idempotency-suite.js';
|
|
28
30
|
export { listContractSuite } from './list-suite.js';
|