@substrat-run/contract-tests 0.138.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.
Files changed (113) hide show
  1. package/dist/attachment-text-fixtures.d.ts +17 -0
  2. package/dist/attachment-text-fixtures.d.ts.map +1 -1
  3. package/dist/attachment-text-fixtures.js +344 -4
  4. package/dist/attachment-text-fixtures.js.map +1 -1
  5. package/dist/attachment-text-suite.d.ts +16 -1
  6. package/dist/attachment-text-suite.d.ts.map +1 -1
  7. package/dist/attachment-text-suite.js +212 -28
  8. package/dist/attachment-text-suite.js.map +1 -1
  9. package/dist/capability-suite.d.ts.map +1 -1
  10. package/dist/capability-suite.js +5 -0
  11. package/dist/capability-suite.js.map +1 -1
  12. package/dist/caused-by-module.d.ts +23 -0
  13. package/dist/caused-by-module.d.ts.map +1 -0
  14. package/dist/caused-by-module.js +56 -0
  15. package/dist/caused-by-module.js.map +1 -0
  16. package/dist/caused-by-suite.d.ts +28 -0
  17. package/dist/caused-by-suite.d.ts.map +1 -0
  18. package/dist/caused-by-suite.js +223 -0
  19. package/dist/caused-by-suite.js.map +1 -0
  20. package/dist/connect-link-suite.d.ts +19 -0
  21. package/dist/connect-link-suite.d.ts.map +1 -0
  22. package/dist/connect-link-suite.js +215 -0
  23. package/dist/connect-link-suite.js.map +1 -0
  24. package/dist/entity-state-migration-suite.d.ts +16 -0
  25. package/dist/entity-state-migration-suite.d.ts.map +1 -0
  26. package/dist/entity-state-migration-suite.js +305 -0
  27. package/dist/entity-state-migration-suite.js.map +1 -0
  28. package/dist/entity-state-module.d.ts +317 -0
  29. package/dist/entity-state-module.d.ts.map +1 -0
  30. package/dist/entity-state-module.js +278 -0
  31. package/dist/entity-state-module.js.map +1 -0
  32. package/dist/entity-state-suite.d.ts +9 -0
  33. package/dist/entity-state-suite.d.ts.map +1 -0
  34. package/dist/entity-state-suite.js +557 -0
  35. package/dist/entity-state-suite.js.map +1 -0
  36. package/dist/entity-trash-module.d.ts +439 -0
  37. package/dist/entity-trash-module.d.ts.map +1 -0
  38. package/dist/entity-trash-module.js +287 -0
  39. package/dist/entity-trash-module.js.map +1 -0
  40. package/dist/entity-trash-suite.d.ts +59 -0
  41. package/dist/entity-trash-suite.d.ts.map +1 -0
  42. package/dist/entity-trash-suite.js +568 -0
  43. package/dist/entity-trash-suite.js.map +1 -0
  44. package/dist/erasure-module.d.ts +259 -0
  45. package/dist/erasure-module.d.ts.map +1 -0
  46. package/dist/erasure-module.js +251 -0
  47. package/dist/erasure-module.js.map +1 -0
  48. package/dist/findings-atomic-suite.d.ts +21 -0
  49. package/dist/findings-atomic-suite.d.ts.map +1 -0
  50. package/dist/findings-atomic-suite.js +131 -0
  51. package/dist/findings-atomic-suite.js.map +1 -0
  52. package/dist/findings-suite.d.ts +11 -0
  53. package/dist/findings-suite.d.ts.map +1 -0
  54. package/dist/findings-suite.js +391 -0
  55. package/dist/findings-suite.js.map +1 -0
  56. package/dist/index.d.ts +22 -3
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +20 -2
  59. package/dist/index.js.map +1 -1
  60. package/dist/list-suite.d.ts.map +1 -1
  61. package/dist/list-suite.js +101 -1
  62. package/dist/list-suite.js.map +1 -1
  63. package/dist/membership-executor-suite.d.ts +6 -2
  64. package/dist/membership-executor-suite.d.ts.map +1 -1
  65. package/dist/membership-executor-suite.js +318 -21
  66. package/dist/membership-executor-suite.js.map +1 -1
  67. package/dist/migration-comments-suite.d.ts +3 -0
  68. package/dist/migration-comments-suite.d.ts.map +1 -0
  69. package/dist/migration-comments-suite.js +92 -0
  70. package/dist/migration-comments-suite.js.map +1 -0
  71. package/dist/migration-comments.d.ts +3 -0
  72. package/dist/migration-comments.d.ts.map +1 -0
  73. package/dist/migration-comments.js +50 -0
  74. package/dist/migration-comments.js.map +1 -0
  75. package/dist/migration-digest-suite.d.ts +3 -0
  76. package/dist/migration-digest-suite.d.ts.map +1 -0
  77. package/dist/migration-digest-suite.js +175 -0
  78. package/dist/migration-digest-suite.js.map +1 -0
  79. package/dist/modules.d.ts +759 -0
  80. package/dist/modules.d.ts.map +1 -1
  81. package/dist/modules.js +158 -6
  82. package/dist/modules.js.map +1 -1
  83. package/dist/peer-suite.d.ts +2 -1
  84. package/dist/peer-suite.d.ts.map +1 -1
  85. package/dist/peer-suite.js +103 -1
  86. package/dist/peer-suite.js.map +1 -1
  87. package/dist/permission-suite.d.ts.map +1 -1
  88. package/dist/permission-suite.js +590 -2
  89. package/dist/permission-suite.js.map +1 -1
  90. package/dist/scope-host-suite.d.ts.map +1 -1
  91. package/dist/scope-host-suite.js +102 -1
  92. package/dist/scope-host-suite.js.map +1 -1
  93. package/dist/split-cases.d.ts +12 -0
  94. package/dist/split-cases.d.ts.map +1 -0
  95. package/dist/split-cases.js +59 -0
  96. package/dist/split-cases.js.map +1 -0
  97. package/dist/subject-erasure-suite.d.ts +6 -0
  98. package/dist/subject-erasure-suite.d.ts.map +1 -0
  99. package/dist/subject-erasure-suite.js +287 -0
  100. package/dist/subject-erasure-suite.js.map +1 -0
  101. package/dist/switch-audit-fault.d.ts +48 -0
  102. package/dist/switch-audit-fault.d.ts.map +1 -0
  103. package/dist/switch-audit-fault.js +80 -0
  104. package/dist/switch-audit-fault.js.map +1 -0
  105. package/dist/system-switch-suite.d.ts +2 -1
  106. package/dist/system-switch-suite.d.ts.map +1 -1
  107. package/dist/system-switch-suite.js +90 -0
  108. package/dist/system-switch-suite.js.map +1 -1
  109. package/dist/vertical-events-suite.d.ts +55 -0
  110. package/dist/vertical-events-suite.d.ts.map +1 -1
  111. package/dist/vertical-events-suite.js +55 -0
  112. package/dist/vertical-events-suite.js.map +1 -1
  113. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-trash-suite.js","sourceRoot":"","sources":["../src/entity-trash-suite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,259 @@
1
+ /**
2
+ * The fixture behind `subjectErasureContractSuite` (#2068): a module whose entities differ in
3
+ * exactly how an erasure reaches them, declared through `defineEntities` and turned into the
4
+ * manifest by `manifestEntities` — the path a vertical takes — so the suite exercises the
5
+ * derivation as well as the kernel.
6
+ *
7
+ * - `erperson` — blank, keyed by its own id: a nullable field becomes NULL, a NOT NULL one ''.
8
+ * - `ernote` — blank, keyed by a second column (`author`), and SEARCHABLE over its body, so the
9
+ * suite can see an erased word leave the index and the index's shadow tables.
10
+ * - `ersignup` — delete: its erasable `email` is in its `key`, so a blank would collide.
11
+ * - `errating` — custom: reached only through the note it rates, which the hook follows.
12
+ * - `erloose` — erasable and declaring nothing, so every receipt names it unreached.
13
+ * - `erbomb` — not erasable: the switchboard the suite uses to make the hook misbehave for ONE
14
+ * subject (throw, read the spine, read another module, run a PRAGMA, return a promise),
15
+ * so every other subject in every other suite is erased normally.
16
+ *
17
+ * `@test/erasure-other` owns one table and nothing erasable: the "another module" a hook must
18
+ * not reach.
19
+ *
20
+ * Every operation is a thin pass-through and checks nothing itself; the erasure is a staff
21
+ * verb, and the operations exist only to set up and read back the rows it acts on.
22
+ */
23
+ import { z } from 'zod';
24
+ import type { ModuleRegistration } from '@substrat-run/kernel';
25
+ export declare const erasureEntities: {
26
+ readonly erperson: {
27
+ readonly table: "er_people";
28
+ readonly fields: z.ZodObject<{
29
+ id: z.ZodString;
30
+ email: z.ZodNullable<z.ZodString>;
31
+ name: z.ZodString;
32
+ }, z.core.$strip>;
33
+ readonly erasable: readonly ["email", "name"];
34
+ readonly erasure: {
35
+ readonly subjects: readonly ["id"];
36
+ };
37
+ };
38
+ readonly ernote: {
39
+ readonly table: "er_notes";
40
+ readonly fields: z.ZodObject<{
41
+ id: z.ZodString;
42
+ author: z.ZodNullable<z.ZodString>;
43
+ editor: z.ZodNullable<z.ZodString>;
44
+ title: z.ZodNullable<z.ZodString>;
45
+ body: z.ZodString;
46
+ }, z.core.$strip>;
47
+ readonly erasable: readonly ["title", "body"];
48
+ readonly erasure: {
49
+ readonly subjects: readonly ["author", "editor"];
50
+ };
51
+ };
52
+ readonly ersignup: {
53
+ readonly table: "er_signups";
54
+ readonly fields: z.ZodObject<{
55
+ id: z.ZodString;
56
+ kind: z.ZodString;
57
+ email: z.ZodString;
58
+ }, z.core.$strip>;
59
+ readonly key: readonly ["kind", "email"];
60
+ readonly erasable: readonly ["email"];
61
+ readonly erasure: {
62
+ readonly subjects: readonly ["id"];
63
+ readonly mode: "delete";
64
+ };
65
+ };
66
+ readonly errating: {
67
+ readonly table: "er_ratings";
68
+ readonly fields: z.ZodObject<{
69
+ note_id: z.ZodString;
70
+ comment: z.ZodNullable<z.ZodString>;
71
+ }, z.core.$strip>;
72
+ readonly primaryKey: readonly ["note_id"];
73
+ readonly erasable: readonly ["comment"];
74
+ readonly erasure: {
75
+ readonly mode: "custom";
76
+ };
77
+ };
78
+ readonly erloose: {
79
+ readonly table: "er_loose";
80
+ readonly fields: z.ZodObject<{
81
+ id: z.ZodString;
82
+ memo: z.ZodNullable<z.ZodString>;
83
+ }, z.core.$strip>;
84
+ readonly erasable: readonly ["memo"];
85
+ };
86
+ readonly erbomb: {
87
+ readonly table: "er_bombs";
88
+ readonly fields: z.ZodObject<{
89
+ subject: z.ZodString;
90
+ kind: z.ZodString;
91
+ }, z.core.$strip>;
92
+ readonly primaryKey: readonly ["subject"];
93
+ };
94
+ };
95
+ export declare const erasureModManifest: {
96
+ id: string & z.$brand<"ModuleId">;
97
+ version: string;
98
+ kernelContract: string;
99
+ permissions: {
100
+ key: string & z.$brand<"PermissionKey">;
101
+ description: string;
102
+ }[];
103
+ events: {
104
+ emits: {
105
+ type: string;
106
+ schemaVersion: number;
107
+ }[];
108
+ consumes: {
109
+ type: string;
110
+ schemaVersion: number;
111
+ from?: string | undefined;
112
+ }[];
113
+ exports?: {
114
+ type: string;
115
+ schemaVersion: number;
116
+ readPermission: string & z.$brand<"PermissionKey">;
117
+ }[] | undefined;
118
+ };
119
+ migrations: {
120
+ journalDir: string;
121
+ compatibleFrom: string;
122
+ };
123
+ attachmentTargets: {
124
+ entityType: string;
125
+ readPermission: string & z.$brand<"PermissionKey">;
126
+ writePermission?: (string & z.$brand<"PermissionKey">) | undefined;
127
+ }[];
128
+ liveTargets?: {
129
+ entityType: string;
130
+ readPermission: string & z.$brand<"PermissionKey">;
131
+ }[] | undefined;
132
+ entityRelations?: {
133
+ entityType: string;
134
+ parentType: string;
135
+ }[] | undefined;
136
+ guards?: {
137
+ before: string;
138
+ predicate: string;
139
+ config: Record<string, unknown>;
140
+ }[] | undefined;
141
+ schedules?: {
142
+ operation: string;
143
+ cadence: {
144
+ everyMinutes: number;
145
+ };
146
+ input?: Record<string, unknown> | undefined;
147
+ permissions: (string & z.$brand<"PermissionKey">)[];
148
+ purge?: {
149
+ entityType: string;
150
+ } | undefined;
151
+ }[] | undefined;
152
+ peers?: {
153
+ vertical: string;
154
+ operations: string[];
155
+ permissions: (string & z.$brand<"PermissionKey">)[];
156
+ }[] | undefined;
157
+ freshness?: {
158
+ eventType: string;
159
+ within: {
160
+ hours: number;
161
+ };
162
+ }[] | undefined;
163
+ withdraws?: string[] | undefined;
164
+ entitlementKey: string;
165
+ envSpec?: {
166
+ key: string;
167
+ label?: string | undefined;
168
+ description: string;
169
+ placeholder?: string | undefined;
170
+ required: boolean;
171
+ secret: boolean;
172
+ default?: string | undefined;
173
+ group?: string | undefined;
174
+ }[] | undefined;
175
+ ownerGrants?: (string & z.$brand<"PermissionKey">)[] | undefined;
176
+ entitlements?: string[] | undefined;
177
+ provides?: string[] | undefined;
178
+ requires?: string[] | undefined;
179
+ api?: string | undefined;
180
+ searchables?: {
181
+ entityType: string;
182
+ fields: string[];
183
+ table?: string | undefined;
184
+ idColumn?: string | undefined;
185
+ tokenizer?: "prefix" | "substring" | undefined;
186
+ }[] | undefined;
187
+ lists?: {
188
+ entityType: string;
189
+ sortable: string[];
190
+ filterable?: string[] | undefined;
191
+ table?: string | undefined;
192
+ idColumn?: string | undefined;
193
+ }[] | undefined;
194
+ entityStates?: {
195
+ archivePermission?: (string & z.$brand<"PermissionKey">) | undefined;
196
+ trashPermission?: (string & z.$brand<"PermissionKey">) | undefined;
197
+ purgeAfterDays?: number | undefined;
198
+ table?: string | undefined;
199
+ idColumn?: string | undefined;
200
+ entityType: string;
201
+ }[] | undefined;
202
+ erasure?: {
203
+ tables: string[];
204
+ entities: {
205
+ entityType: string;
206
+ table: string;
207
+ mode: "blank" | "custom" | "delete" | "unreached";
208
+ subjects?: string[] | undefined;
209
+ fields: {
210
+ name: string;
211
+ blank: "" | null;
212
+ }[];
213
+ }[];
214
+ } | undefined;
215
+ ui?: {
216
+ routes?: {
217
+ path: string;
218
+ screen: string;
219
+ permission: string & z.$brand<"PermissionKey">;
220
+ }[] | undefined;
221
+ nav?: {
222
+ label: string;
223
+ icon?: string | undefined;
224
+ to: string;
225
+ permission: string & z.$brand<"PermissionKey">;
226
+ }[] | undefined;
227
+ entityViews?: {
228
+ entityType: string;
229
+ view: string;
230
+ }[] | undefined;
231
+ widgets?: {
232
+ slot: string;
233
+ component: string;
234
+ permission: string & z.$brand<"PermissionKey">;
235
+ }[] | undefined;
236
+ settingsPanels?: {
237
+ label: string;
238
+ component: string;
239
+ permission: string & z.$brand<"PermissionKey">;
240
+ }[] | undefined;
241
+ } | undefined;
242
+ };
243
+ export declare const erasureMod: ModuleRegistration;
244
+ export declare const erasureOtherMod: ModuleRegistration;
245
+ /**
246
+ * A module whose model claims a table its migrations never create — `er_other`, which belongs
247
+ * to `@test/erasure-other`. Registering it must be refused: its declared blank would otherwise
248
+ * run against another module's rows through the kernel's own handle.
249
+ */
250
+ export declare const erasureMisdeclaredMod: ModuleRegistration;
251
+ /**
252
+ * A module whose migration says `CREATE TABLE IF NOT EXISTS er_other` — `@test/erasure-other`'s
253
+ * table, which already exists — and whose model then declares an erasure on it. The migration
254
+ * text reads as a creation, so registration lets it through; the scope records nothing for it,
255
+ * and the erasure refuses. Not in `contractTestModules`: on every scope it would refuse every
256
+ * other suite's erasure. `adapter-sqlite/test/erasure-ownership.test.ts` mounts it alone.
257
+ */
258
+ export declare const erasureSquatterMod: ModuleRegistration;
259
+ //# sourceMappingURL=erasure-module.d.ts.map
@@ -0,0 +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;AAElG,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,251 @@
1
+ /**
2
+ * The fixture behind `subjectErasureContractSuite` (#2068): a module whose entities differ in
3
+ * exactly how an erasure reaches them, declared through `defineEntities` and turned into the
4
+ * manifest by `manifestEntities` — the path a vertical takes — so the suite exercises the
5
+ * derivation as well as the kernel.
6
+ *
7
+ * - `erperson` — blank, keyed by its own id: a nullable field becomes NULL, a NOT NULL one ''.
8
+ * - `ernote` — blank, keyed by a second column (`author`), and SEARCHABLE over its body, so the
9
+ * suite can see an erased word leave the index and the index's shadow tables.
10
+ * - `ersignup` — delete: its erasable `email` is in its `key`, so a blank would collide.
11
+ * - `errating` — custom: reached only through the note it rates, which the hook follows.
12
+ * - `erloose` — erasable and declaring nothing, so every receipt names it unreached.
13
+ * - `erbomb` — not erasable: the switchboard the suite uses to make the hook misbehave for ONE
14
+ * subject (throw, read the spine, read another module, run a PRAGMA, return a promise),
15
+ * so every other subject in every other suite is erased normally.
16
+ *
17
+ * `@test/erasure-other` owns one table and nothing erasable: the "another module" a hook must
18
+ * not reach.
19
+ *
20
+ * Every operation is a thin pass-through and checks nothing itself; the erasure is a staff
21
+ * verb, and the operations exist only to set up and read back the rows it acts on.
22
+ */
23
+ import { z } from 'zod';
24
+ import { dataSubjectId, defineEntities, manifestEntities, moduleManifest } from '@substrat-run/contracts';
25
+ export const erasureEntities = defineEntities({
26
+ erperson: {
27
+ table: 'er_people',
28
+ fields: z.object({ id: z.string(), email: z.string().nullable(), name: z.string() }),
29
+ erasable: ['email', 'name'],
30
+ erasure: { subjects: ['id'] },
31
+ },
32
+ ernote: {
33
+ table: 'er_notes',
34
+ fields: z.object({
35
+ id: z.string(),
36
+ author: z.string().nullable(),
37
+ editor: z.string().nullable(),
38
+ title: z.string().nullable(),
39
+ body: z.string(),
40
+ }),
41
+ erasable: ['title', 'body'],
42
+ erasure: { subjects: ['author', 'editor'] },
43
+ },
44
+ ersignup: {
45
+ table: 'er_signups',
46
+ fields: z.object({ id: z.string(), kind: z.string(), email: z.string() }),
47
+ key: ['kind', 'email'],
48
+ erasable: ['email'],
49
+ erasure: { subjects: ['id'], mode: 'delete' },
50
+ },
51
+ errating: {
52
+ table: 'er_ratings',
53
+ fields: z.object({ note_id: z.string(), comment: z.string().nullable() }),
54
+ primaryKey: ['note_id'],
55
+ erasable: ['comment'],
56
+ erasure: { mode: 'custom' },
57
+ },
58
+ erloose: {
59
+ table: 'er_loose',
60
+ fields: z.object({ id: z.string(), memo: z.string().nullable() }),
61
+ erasable: ['memo'],
62
+ },
63
+ erbomb: {
64
+ table: 'er_bombs',
65
+ fields: z.object({ subject: z.string(), kind: z.string() }),
66
+ primaryKey: ['subject'],
67
+ },
68
+ });
69
+ export const erasureModManifest = moduleManifest.parse({
70
+ id: '@test/erasure',
71
+ version: '1.0.0',
72
+ kernelContract: '^0.0.1',
73
+ permissions: [],
74
+ events: { emits: [{ type: 'erasure.noted', schemaVersion: 1 }], consumes: [] },
75
+ migrations: { journalDir: './migrations', compatibleFrom: '1.0.0' },
76
+ entitlementKey: 'erasure',
77
+ ...manifestEntities(erasureEntities, {
78
+ searchables: [{ entityType: 'ernote', fields: ['body'] }],
79
+ }),
80
+ });
81
+ /** The tables `@test/erasure` owns, as its migration creates them. */
82
+ const ERASURE_DDL = `
83
+ CREATE TABLE er_people (id TEXT PRIMARY KEY, email TEXT, name TEXT NOT NULL);
84
+ CREATE TABLE er_notes (id TEXT PRIMARY KEY, author TEXT, editor TEXT, title TEXT, body TEXT NOT NULL);
85
+ CREATE TABLE er_signups (id TEXT PRIMARY KEY, kind TEXT NOT NULL, email TEXT NOT NULL, UNIQUE (kind, email));
86
+ CREATE TABLE er_ratings (note_id TEXT PRIMARY KEY, comment TEXT);
87
+ CREATE TABLE er_loose (id TEXT PRIMARY KEY, memo TEXT);
88
+ CREATE TABLE er_bombs (subject TEXT PRIMARY KEY, kind TEXT NOT NULL);
89
+ -- IF NOT EXISTS: the kit's wipe and restore paths replay this migration onto a store whose
90
+ -- tables were dropped and replayed, and a view is not a table they touch.
91
+ CREATE VIEW IF NOT EXISTS er_view AS SELECT id, memo FROM er_loose;
92
+ `;
93
+ /**
94
+ * The hook: a rating is the subject's when the note it rates was written by them. Idempotent —
95
+ * it touches only ratings still holding a comment — and synchronous, unless `er_bombs` tells it
96
+ * to misbehave for this subject.
97
+ */
98
+ const onSubjectErased = (ctx, { subjectId }) => {
99
+ const bomb = ctx.sql.query('SELECT kind FROM er_bombs WHERE subject = ?', [subjectId])[0];
100
+ // Looks before it writes: a hook's write makes the kernel switch the module's search indexes
101
+ // to secure-delete for the erasure, which an erasure holding nothing here need not do.
102
+ const held = ctx.sql.query(`SELECT note_id FROM er_ratings
103
+ WHERE comment IS NOT NULL AND note_id IN (SELECT id FROM er_notes WHERE author = ?)`, [subjectId]);
104
+ if (held.length > 0) {
105
+ ctx.sql.exec(`UPDATE er_ratings SET comment = NULL
106
+ WHERE comment IS NOT NULL AND note_id IN (SELECT id FROM er_notes WHERE author = ?)`, [subjectId]);
107
+ }
108
+ switch (bomb?.kind) {
109
+ case 'throw':
110
+ throw new Error('the hook failed half-way');
111
+ case 'spine':
112
+ ctx.sql.query('SELECT payload FROM _substrat_outbox');
113
+ break;
114
+ case 'foreign':
115
+ ctx.sql.query('SELECT * FROM er_other');
116
+ break;
117
+ case 'pragma':
118
+ ctx.sql.query('PRAGMA table_info(er_notes)');
119
+ break;
120
+ case 'chained':
121
+ ctx.sql.exec('UPDATE er_loose SET memo = NULL WHERE id = ?; DELETE FROM er_other', [subjectId]);
122
+ break;
123
+ case 'view':
124
+ // A view the module's own migration created is still not one of its tables.
125
+ ctx.sql.query('SELECT memo FROM er_view');
126
+ break;
127
+ case 'cte':
128
+ ctx.sql.query('WITH er_notes AS (SELECT secret AS body FROM er_other) SELECT body FROM er_notes');
129
+ break;
130
+ case 'comma':
131
+ ctx.sql.query('SELECT * FROM (SELECT 1 AS one) AS a, er_other');
132
+ break;
133
+ case 'async':
134
+ return Promise.resolve();
135
+ case 'generator':
136
+ // A generator hook: calling it returns an iterator and runs none of its body.
137
+ return (function* () {
138
+ ctx.sql.exec("UPDATE er_loose SET memo = 'never runs' WHERE id = ?", [subjectId]);
139
+ })();
140
+ case 'value':
141
+ return 1;
142
+ case 'async-write':
143
+ // Refused for returning a promise; its continuation then tries to write anyway.
144
+ return (async () => {
145
+ await Promise.resolve();
146
+ ctx.sql.exec("UPDATE er_loose SET memo = 'written after the erasure' WHERE id = ?", [subjectId]);
147
+ })();
148
+ case 'stash':
149
+ // Keeps the handle where a later operation can reach it.
150
+ globalThis.__erasureStash = ctx.sql;
151
+ break;
152
+ }
153
+ };
154
+ export const erasureMod = {
155
+ manifest: erasureModManifest,
156
+ migrations: [{ version: '0001-init', sql: ERASURE_DDL }],
157
+ operations: {
158
+ /** Write a fixture row: `{ sql, params }` against the module's own tables. */
159
+ 'erasure/put': ((ctx, input) => {
160
+ ctx.sql.exec(input.sql, input.params ?? []);
161
+ }),
162
+ /** Read rows back: `{ sql, params }`. */
163
+ 'erasure/read': ((ctx, input) => ctx.sql.query(input.sql, input.params ?? [])),
164
+ 'erasure/search': ((ctx, input) => ctx.search('ernote', input.term)),
165
+ /** Use a hook's `ctx.sql` that a hook stashed on a global, after its erasure finished. */
166
+ 'erasure/use-stash': ((_ctx, input) => {
167
+ const stash = globalThis.__erasureStash;
168
+ if (!stash)
169
+ throw new Error('nothing stashed');
170
+ stash.exec("UPDATE er_loose SET memo = 'written through a stashed handle' WHERE id = ?", [input.subject]);
171
+ }),
172
+ /** A classified event about the subject, so the spine half of a rolled-back erasure is visible. */
173
+ 'erasure/emit': ((ctx, input) => {
174
+ ctx.emit({
175
+ type: 'erasure.noted',
176
+ schemaVersion: 1,
177
+ entity: { entityType: 'erperson', entityId: input.subject },
178
+ piiClass: 'pseudonymous',
179
+ subjectId: dataSubjectId.parse(input.subject),
180
+ payload: { secret: input.secret },
181
+ });
182
+ }),
183
+ },
184
+ onSubjectErased,
185
+ };
186
+ export const erasureOtherMod = {
187
+ manifest: moduleManifest.parse({
188
+ id: '@test/erasure-other',
189
+ version: '1.0.0',
190
+ kernelContract: '^0.0.1',
191
+ permissions: [],
192
+ events: { emits: [], consumes: [] },
193
+ migrations: { journalDir: './migrations', compatibleFrom: '1.0.0' },
194
+ attachmentTargets: [],
195
+ entitlementKey: 'erasure-other',
196
+ }),
197
+ migrations: [{ version: '0001-init', sql: 'CREATE TABLE er_other (id TEXT PRIMARY KEY, secret TEXT);' }],
198
+ };
199
+ /**
200
+ * A module whose model claims a table its migrations never create — `er_other`, which belongs
201
+ * to `@test/erasure-other`. Registering it must be refused: its declared blank would otherwise
202
+ * run against another module's rows through the kernel's own handle.
203
+ */
204
+ export const erasureMisdeclaredMod = {
205
+ manifest: moduleManifest.parse({
206
+ id: '@test/erasure-misdeclared',
207
+ version: '1.0.0',
208
+ kernelContract: '^0.0.1',
209
+ permissions: [],
210
+ events: { emits: [], consumes: [] },
211
+ migrations: { journalDir: './migrations', compatibleFrom: '1.0.0' },
212
+ entitlementKey: 'erasure-misdeclared',
213
+ ...manifestEntities(defineEntities({
214
+ stolen: {
215
+ table: 'er_other',
216
+ fields: z.object({ id: z.string(), secret: z.string().nullable() }),
217
+ erasable: ['secret'],
218
+ erasure: { subjects: ['id'] },
219
+ },
220
+ }), {}),
221
+ }),
222
+ migrations: [{ version: '0001-init', sql: 'CREATE TABLE er_misdeclared_own (id TEXT PRIMARY KEY);' }],
223
+ };
224
+ /**
225
+ * A module whose migration says `CREATE TABLE IF NOT EXISTS er_other` — `@test/erasure-other`'s
226
+ * table, which already exists — and whose model then declares an erasure on it. The migration
227
+ * text reads as a creation, so registration lets it through; the scope records nothing for it,
228
+ * and the erasure refuses. Not in `contractTestModules`: on every scope it would refuse every
229
+ * other suite's erasure. `adapter-sqlite/test/erasure-ownership.test.ts` mounts it alone.
230
+ */
231
+ export const erasureSquatterMod = {
232
+ manifest: moduleManifest.parse({
233
+ id: '@test/erasure-squatter',
234
+ version: '1.0.0',
235
+ kernelContract: '^0.0.1',
236
+ permissions: [],
237
+ events: { emits: [], consumes: [] },
238
+ migrations: { journalDir: './migrations', compatibleFrom: '1.0.0' },
239
+ entitlementKey: 'erasure-squatter',
240
+ ...manifestEntities(defineEntities({
241
+ other: {
242
+ table: 'er_other',
243
+ fields: z.object({ id: z.string(), secret: z.string().nullable() }),
244
+ erasable: ['secret'],
245
+ erasure: { subjects: ['id'] },
246
+ },
247
+ }), {}),
248
+ }),
249
+ migrations: [{ version: '0001', sql: 'CREATE TABLE IF NOT EXISTS er_other (id TEXT PRIMARY KEY, secret TEXT);' }],
250
+ };
251
+ //# sourceMappingURL=erasure-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erasure-module.js","sourceRoot":"","sources":["../src/erasure-module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type ScopeHost } from '@substrat-run/kernel';
2
+ import type { ScopeHostFixture } from './scope-host-suite.js';
3
+ /**
4
+ * Raw SQL on the adapter's directory store — the one thing this suite needs that the seam does
5
+ * not offer. It installs and drops the fault triggers below, nothing else.
6
+ */
7
+ export type DirectoryExec = (host: ScopeHost, sql: string) => Promise<void>;
8
+ /**
9
+ * Findings (#1748): what is written together stays together, on every adapter.
10
+ *
11
+ * - The evidence and the finding it implies commit as one unit. A detector that fails takes the
12
+ * evidence with it, so the caller's retry — or a drain's replay under the same request id —
13
+ * writes both, rather than finding the evidence already there and the observation lost.
14
+ * - A verdict, a rule created and a rule revoked commit with their audit row, or not at all
15
+ * — and so does a stale resolution in `pruneFindings`.
16
+ *
17
+ * The failures are injected by SQLite triggers on the directory, the one fault both stores
18
+ * raise the same way, and each is dropped before the retry.
19
+ */
20
+ export declare function findingsAtomicContractSuite(adapterName: string, makeFixture: () => Promise<ScopeHostFixture>, exec: DirectoryExec): void;
21
+ //# sourceMappingURL=findings-atomic-suite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findings-atomic-suite.d.ts","sourceRoot":"","sources":["../src/findings-atomic-suite.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5E;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAC5C,IAAI,EAAE,aAAa,GAClB,IAAI,CAqIN"}