@substrat-run/engine-invites 0.6.0 → 0.6.2

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/index.d.ts CHANGED
@@ -24,18 +24,19 @@ export declare const INVITES_CONFLICT_REASONS: readonly ['open_invite_limit'];
24
24
  export type InvitesConflictReason = (typeof INVITES_CONFLICT_REASONS)[number];
25
25
  export { invitation, invitesEntities, invitationRow } from './entities.js';
26
26
  export { invitesOperations, INVITES_PERMISSIONS } from './operations.js';
27
+ import { z } from 'zod';
27
28
  import { type ModuleRegistration, type OperationContext } from '@substrat-run/kernel';
28
29
  export declare const INVITES_PERM: {
29
- send: string & import("zod").$brand<"PermissionKey">;
30
- read: string & import("zod").$brand<"PermissionKey">;
31
- revoke: string & import("zod").$brand<"PermissionKey">;
30
+ send: string & z.$brand<"PermissionKey">;
31
+ read: string & z.$brand<"PermissionKey">;
32
+ revoke: string & z.$brand<"PermissionKey">;
32
33
  };
33
34
  export declare const invitesManifest: {
34
- id: string & import("zod").$brand<"ModuleId">;
35
+ id: string & z.$brand<"ModuleId">;
35
36
  version: string;
36
37
  kernelContract: string;
37
38
  permissions: {
38
- key: string & import("zod").$brand<"PermissionKey">;
39
+ key: string & z.$brand<"PermissionKey">;
39
40
  description: string;
40
41
  }[];
41
42
  events: {
@@ -54,8 +55,8 @@ export declare const invitesManifest: {
54
55
  };
55
56
  attachmentTargets: {
56
57
  entityType: string;
57
- readPermission: string & import("zod").$brand<"PermissionKey">;
58
- writePermission?: (string & import("zod").$brand<"PermissionKey">) | undefined;
58
+ readPermission: string & z.$brand<"PermissionKey">;
59
+ writePermission?: (string & z.$brand<"PermissionKey">) | undefined;
59
60
  }[];
60
61
  entityRelations?: {
61
62
  entityType: string;
@@ -72,7 +73,7 @@ export declare const invitesManifest: {
72
73
  everyMinutes: number;
73
74
  };
74
75
  input?: Record<string, unknown> | undefined;
75
- permissions: (string & import("zod").$brand<"PermissionKey">)[];
76
+ permissions: (string & z.$brand<"PermissionKey">)[];
76
77
  }[] | undefined;
77
78
  withdraws?: string[] | undefined;
78
79
  entitlementKey: string;
@@ -86,7 +87,7 @@ export declare const invitesManifest: {
86
87
  default?: string | undefined;
87
88
  group?: string | undefined;
88
89
  }[] | undefined;
89
- ownerGrants?: (string & import("zod").$brand<"PermissionKey">)[] | undefined;
90
+ ownerGrants?: (string & z.$brand<"PermissionKey">)[] | undefined;
90
91
  entitlements?: string[] | undefined;
91
92
  provides?: string[] | undefined;
92
93
  requires?: string[] | undefined;
@@ -109,13 +110,13 @@ export declare const invitesManifest: {
109
110
  routes?: {
110
111
  path: string;
111
112
  screen: string;
112
- permission: string & import("zod").$brand<"PermissionKey">;
113
+ permission: string & z.$brand<"PermissionKey">;
113
114
  }[] | undefined;
114
115
  nav?: {
115
116
  label: string;
116
117
  icon?: string | undefined;
117
118
  to: string;
118
- permission: string & import("zod").$brand<"PermissionKey">;
119
+ permission: string & z.$brand<"PermissionKey">;
119
120
  }[] | undefined;
120
121
  entityViews?: {
121
122
  entityType: string;
@@ -124,12 +125,12 @@ export declare const invitesManifest: {
124
125
  widgets?: {
125
126
  slot: string;
126
127
  component: string;
127
- permission: string & import("zod").$brand<"PermissionKey">;
128
+ permission: string & z.$brand<"PermissionKey">;
128
129
  }[] | undefined;
129
130
  settingsPanels?: {
130
131
  label: string;
131
132
  component: string;
132
- permission: string & import("zod").$brand<"PermissionKey">;
133
+ permission: string & z.$brand<"PermissionKey">;
133
134
  }[] | undefined;
134
135
  } | undefined;
135
136
  };
@@ -137,21 +138,61 @@ export declare const invitesMigrations: {
137
138
  version: string;
138
139
  sql: string;
139
140
  }[];
140
- export type InviteState = 'invited' | 'accepted' | 'revoked' | 'expired';
141
- export interface InvitationRow {
142
- id: string;
143
- org_id: string;
144
- identifier_hash: string;
145
- role_key: string;
146
- state: InviteState;
147
- invited_by: string;
148
- accepted_by: string | null;
149
- created_at: string;
150
- expires_at: string;
151
- settled_at: string | null;
152
- }
141
+ /**
142
+ * The seam schemas (#771/#970).
143
+ *
144
+ * `entities.ts` describes what is STORED, which is what the journal comparison
145
+ * checks against, so `state` is a bare string there. The engine's own machine is
146
+ * narrower than that, and the narrowing is the point: `state` decides whether an
147
+ * invitation is acceptable, so a row that drifted to a state this engine does not
148
+ * know must be a throw at the seam rather than a value `acceptInvite` compares
149
+ * against and silently refuses.
150
+ */
151
+ declare const inviteState: z.ZodEnum<{
152
+ accepted: "accepted";
153
+ expired: "expired";
154
+ invited: "invited";
155
+ revoked: "revoked";
156
+ }>;
157
+ export type InviteState = z.infer<typeof inviteState>;
158
+ /** The stored row, hash included — never returned, only matched against. */
159
+ declare const invitationStored: z.ZodObject<{
160
+ id: z.ZodString;
161
+ org_id: z.ZodString;
162
+ identifier_hash: z.ZodString;
163
+ role_key: z.ZodString;
164
+ invited_by: z.ZodString;
165
+ accepted_by: z.ZodNullable<z.ZodString>;
166
+ created_at: z.ZodString;
167
+ expires_at: z.ZodString;
168
+ settled_at: z.ZodNullable<z.ZodString>;
169
+ state: z.ZodEnum<{
170
+ accepted: "accepted";
171
+ expired: "expired";
172
+ invited: "invited";
173
+ revoked: "revoked";
174
+ }>;
175
+ }, z.core.$strip>;
176
+ export type InvitationRow = z.infer<typeof invitationStored>;
177
+ /** What crosses the seam: the row minus the hash (`entities.ts` omits it). */
178
+ declare const invitationPublished: z.ZodObject<{
179
+ id: z.ZodString;
180
+ org_id: z.ZodString;
181
+ role_key: z.ZodString;
182
+ invited_by: z.ZodString;
183
+ accepted_by: z.ZodNullable<z.ZodString>;
184
+ created_at: z.ZodString;
185
+ expires_at: z.ZodString;
186
+ settled_at: z.ZodNullable<z.ZodString>;
187
+ state: z.ZodEnum<{
188
+ accepted: "accepted";
189
+ expired: "expired";
190
+ invited: "invited";
191
+ revoked: "revoked";
192
+ }>;
193
+ }, z.core.$strip>;
153
194
  /** Public shape: the hash never leaves the engine. */
154
- export type Invitation = Omit<InvitationRow, 'identifier_hash'>;
195
+ export type Invitation = z.infer<typeof invitationPublished>;
155
196
  /**
156
197
  * Hash an identifier with the scope's own salt (Web Crypto, never a node-only
157
198
  * import).
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAQL,KAAK,KAAK,EAEX,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,YACnC,mBAAmB,CACX,CAAC;AACX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAS9E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG3E,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAoB9B,eAAO,MAAM,YAAY;IACvB,IAAI;IACJ,IAAI;IACJ,MAAM;CACP,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC1B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;GAmB7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,sDAAsD;AACtD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AAmBhE;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK3F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAMvE;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAyCzB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAClD,OAAO,CAAC,UAAU,CAAC,CAyDrB;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAc9E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAG,UAAU,EAAE,CAa7E;AAqCD,eAAO,MAAM,aAAa,EAAE,kBAW3B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAQL,KAAK,KAAK,EAEX,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,YACnC,mBAAmB,CACX,CAAC;AACX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAS9E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI3E,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAoB9B,eAAO,MAAM,YAAY;IACvB,IAAI;IACJ,IAAI;IACJ,MAAM;CACP,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqC1B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;GAmB7B,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,WAAW;;;;;EAAwD,CAAC;AAC1E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,4EAA4E;AAC5E,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;iBAA+C,CAAC;AACtE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D,8EAA8E;AAC9E,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;iBAA4C,CAAC;AAEtE,sDAAsD;AACtD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAmC7D;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAK3F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAMvE;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAyCzB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAClD,OAAO,CAAC,UAAU,CAAC,CAgErB;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAc9E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,GAAG,UAAU,EAAE,CAe7E;AAqCD,eAAO,MAAM,aAAa,EAAE,kBAW3B,CAAC"}
package/dist/index.js CHANGED
@@ -29,10 +29,13 @@ const conflict = (reason, message) => substratError('conflict', message, { reaso
29
29
  // entity-type constants its relation edges name, and the row schema to declare
30
30
  // an operation's output against without retyping this engine's shape.
31
31
  export { invitation, invitesEntities, invitationRow } from './entities.js';
32
+ import { invitation, invitationRow } from './entities.js';
32
33
  // The declared operation surface (#865): what each operation checks and takes,
33
34
  // readable by the conformance kit and by a composing vertical's routes.
34
35
  export { invitesOperations, INVITES_PERMISSIONS } from './operations.js';
35
36
  import { invitesOperations } from './operations.js';
37
+ import { columnsOf, returns } from './seam.js';
38
+ import { z } from 'zod';
36
39
  import { assertAllowed, ulid, } from '@substrat-run/kernel';
37
40
  // ============================================================================
38
41
  // The invites engine (membership.md §6; mechanics from booking-social.md
@@ -114,7 +117,35 @@ export const invitesMigrations = [
114
117
  `,
115
118
  },
116
119
  ];
117
- const PUBLIC_COLUMNS = 'id, org_id, role_key, state, invited_by, accepted_by, created_at, expires_at, settled_at';
120
+ /**
121
+ * The seam schemas (#771/#970).
122
+ *
123
+ * `entities.ts` describes what is STORED, which is what the journal comparison
124
+ * checks against, so `state` is a bare string there. The engine's own machine is
125
+ * narrower than that, and the narrowing is the point: `state` decides whether an
126
+ * invitation is acceptable, so a row that drifted to a state this engine does not
127
+ * know must be a throw at the seam rather than a value `acceptInvite` compares
128
+ * against and silently refuses.
129
+ */
130
+ const inviteState = z.enum(['invited', 'accepted', 'revoked', 'expired']);
131
+ /** The stored row, hash included — never returned, only matched against. */
132
+ const invitationStored = invitationRow.extend({ state: inviteState });
133
+ /** What crosses the seam: the row minus the hash (`entities.ts` omits it). */
134
+ const invitationPublished = invitation.extend({ state: inviteState });
135
+ /**
136
+ * The SELECT lists, DERIVED from those schemas rather than transcribed (#771).
137
+ *
138
+ * `PUBLIC_COLUMNS` was a hand-written string, and it was the only thing keeping
139
+ * the hash out of a read — one `SELECT *` and the property this engine exists to
140
+ * hold would have been gone with nothing to notice. Deriving it from the schema
141
+ * that already omits `identifier_hash` makes the omission structural.
142
+ */
143
+ const PUBLIC_COLUMNS = columnsOf(invitationPublished);
144
+ const ROW_COLUMNS = columnsOf(invitationStored);
145
+ /** A stored row, parsed BEFORE anything is made of it. */
146
+ const storedInvitation = (r) => returns(invitationStored, `invitation row ${r.id}`, r);
147
+ /** A row on its way OUT, parsed by the shape a composing vertical declared. */
148
+ const publishedInvitation = (r) => returns(invitationPublished, `invitation ${r.id}`, r);
118
149
  /** How long an unaccepted invitation stands. Bounded, because a standing offer should be. */
119
150
  const DEFAULT_TTL_MS = 14 * 24 * 60 * 60 * 1000;
120
151
  /** Open invitations one sender may hold per org — booking-social's rate limit. */
@@ -195,13 +226,17 @@ export async function sendInvite(ctx, input) {
195
226
  * state that this transaction cannot reach atomically.
196
227
  */
197
228
  export async function acceptInvite(ctx, input) {
198
- const row = ctx.sql.query('SELECT * FROM invites_invitation WHERE id = ?', [
199
- input.invitationId,
200
- ])[0];
229
+ const raw = ctx.sql.query(`SELECT ${ROW_COLUMNS} FROM invites_invitation WHERE id = ?`, [input.invitationId])[0];
201
230
  // One message for every failure mode — wrong id, wrong person, already settled,
202
231
  // expired. Distinguishing them would turn this into an oracle.
203
232
  const refuse = () => new Error('invitation is not acceptable');
204
- if (!row || row.state !== 'invited')
233
+ if (!raw)
234
+ throw refuse();
235
+ // Parsed before the state machine reads it: a `state` this engine does not know
236
+ // is an engine fault, and answering `refuse()` for it would file that fault
237
+ // under "not acceptable" — indistinguishable from a wrong identifier forever.
238
+ const row = storedInvitation(raw);
239
+ if (row.state !== 'invited')
205
240
  throw refuse();
206
241
  if (row.expires_at <= ctx.now()) {
207
242
  ctx.sql.exec(`UPDATE invites_invitation SET state = 'expired', settled_at = ? WHERE id = ?`, [
@@ -243,7 +278,9 @@ export async function acceptInvite(ctx, input) {
243
278
  invitationId: row.id,
244
279
  },
245
280
  });
246
- return ctx.sql.query(`SELECT ${PUBLIC_COLUMNS} FROM invites_invitation WHERE id = ?`, [row.id])[0];
281
+ return publishedInvitation(ctx.sql.query(`SELECT ${PUBLIC_COLUMNS} FROM invites_invitation WHERE id = ?`, [
282
+ row.id,
283
+ ])[0]);
247
284
  }
248
285
  /** Withdraw an unaccepted invitation. Settled invitations are left alone. */
249
286
  export function revokeInvite(ctx, invitationId) {
@@ -273,7 +310,9 @@ export function listInvites(ctx, orgId) {
273
310
  // same value and leaves their relative order to SQLite. That is fine for a
274
311
  // whole-list read and fatal for the keyset walk `invites/list` now does, where
275
312
  // a cursor over a column with ties skips or repeats rows.
276
- return ctx.sql.query(`SELECT ${PUBLIC_COLUMNS} FROM invites_invitation WHERE org_id = ? ORDER BY id DESC`, [orgId]);
313
+ return ctx.sql
314
+ .query(`SELECT ${PUBLIC_COLUMNS} FROM invites_invitation WHERE org_id = ? ORDER BY id DESC`, [orgId])
315
+ .map(publishedInvitation);
277
316
  }
278
317
  // -- operations: the permission check plus one exported function (D-28) -------
279
318
  const sendOp = async (ctx, input) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The artifact of record for this engine (#697/#844, #976).
3
+ *
4
+ * `pnpm lint:model --check` re-emits this into `engines/invites/model.json`, so a
5
+ * changed table, a renamed field or a moved parent edge has to appear in a PR
6
+ * diff. No `lifecycles` option: this engine declares no state machine, and an
7
+ * empty one would claim otherwise.
8
+ *
9
+ * Imported by nothing, so the direction stays acyclic.
10
+ */
11
+ export declare const invitesModel: import("@substrat-run/contracts").EmittedModel;
12
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,gDAA6B,CAAC"}
package/dist/model.js ADDED
@@ -0,0 +1,14 @@
1
+ import { emitModel } from '@substrat-run/contracts';
2
+ import { invitesEntities } from './entities.js';
3
+ /**
4
+ * The artifact of record for this engine (#697/#844, #976).
5
+ *
6
+ * `pnpm lint:model --check` re-emits this into `engines/invites/model.json`, so a
7
+ * changed table, a renamed field or a moved parent edge has to appear in a PR
8
+ * diff. No `lifecycles` option: this engine declares no state machine, and an
9
+ * empty one would claim otherwise.
10
+ *
11
+ * Imported by nothing, so the direction stays acyclic.
12
+ */
13
+ export const invitesModel = emitModel(invitesEntities);
14
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC"}
package/dist/seam.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /** How this engine names itself in a seam failure. */
2
+ export declare const columnsOf: (schema: {
3
+ readonly shape: Readonly<Record<string, unknown>>;
4
+ }) => string, returns: <T>(schema: import("zod").ZodType<T>, surface: string, value: unknown) => T;
5
+ //# sourceMappingURL=seam.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seam.d.ts","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAgBA,sDAAsD;AACtD,eAAO,MAAQ,SAAS;;cAAE,OAAO,6EAAiC,CAAC"}
package/dist/seam.js ADDED
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The engine seam (#771) for engine-invites — the NAME, and nothing else.
3
+ *
4
+ * `returns(schema, surface, value)` and `columnsOf(schema)` live in
5
+ * `@substrat-run/contracts` (#970), where the prose explaining what they are for
6
+ * lives with them; an engine supplies only the name it answers under.
7
+ *
8
+ * What is specific to this engine is what the seam must NOT publish. The stored
9
+ * row carries `identifier_hash`, and the whole non-enumerability property depends
10
+ * on it never leaving — so the published schema is the row minus the hash, and
11
+ * `columnsOf` derives the SELECT list from THAT. The exclusion is then a fact
12
+ * about the read rather than a column list somebody remembered to keep in step:
13
+ * `SELECT *` here would have leaked the hash on the first read that forgot.
14
+ */
15
+ import { engineSeam } from '@substrat-run/contracts';
16
+ /** How this engine names itself in a seam failure. */
17
+ export const { columnsOf, returns } = engineSeam('engine-invites');
18
+ //# sourceMappingURL=seam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seam.js","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,sDAAsD;AACtD,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/engine-invites",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "Substrat engine: invitations — invite by verified hashed identifier, accept-required, non-enumerable",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
@@ -25,16 +25,16 @@
25
25
  "access": "public"
26
26
  },
27
27
  "dependencies": {
28
- "@substrat-run/kernel": "^0.94.0",
29
- "@substrat-run/contracts": "^0.94.0"
28
+ "@substrat-run/kernel": "^0.96.0",
29
+ "@substrat-run/contracts": "^0.96.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "typescript": "^7.0.0",
33
33
  "vitest": "^3.2.7",
34
34
  "zod": "^4.4.3",
35
- "@substrat-run/contract-tests": "^0.94.0",
36
- "@substrat-run/model-emit": "0.8.9",
37
- "@substrat-run/engine-test-kit": "^0.3.21"
35
+ "@substrat-run/contract-tests": "^0.96.0",
36
+ "@substrat-run/engine-test-kit": "^0.3.23",
37
+ "@substrat-run/model-emit": "0.8.12"
38
38
  },
39
39
  "peerDependencies": {
40
40
  "zod": "^4.4.0"