@substrat-run/engine-invites 0.5.2 → 0.6.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/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -3
- package/dist/index.js.map +1 -1
- package/dist/operations.d.ts +13 -0
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +10 -0
- package/dist/operations.js.map +1 -1
- package/package.json +6 -6
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* engine-invites — composed **by call**, not by event.
|
|
3
|
+
*
|
|
4
|
+
* The in-scope functions are the surface: `sendInvite`, `acceptInvite`,
|
|
5
|
+
* `revokeInvite`, `listInvites`, `expireOverdue`. A vertical imports those into its
|
|
6
|
+
* own operations and runs them inside its own transaction — the dashboard and every
|
|
7
|
+
* hosted vertical need the same invitation surface, which is D-31's "two consumers
|
|
8
|
+
* on day one" and the reason this is an engine at all
|
|
9
|
+
* (`docs/engines/invites.md`).
|
|
10
|
+
*
|
|
11
|
+
* There are no consumers here. Nothing composes this engine by emitting at it.
|
|
12
|
+
*/
|
|
1
13
|
import { type OrgId } from '@substrat-run/contracts';
|
|
2
14
|
/**
|
|
3
15
|
* The conflict reasons this engine raises — its own vocabulary, narrowing the platform's
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* engine-invites — composed **by call**, not by event.
|
|
3
|
+
*
|
|
4
|
+
* The in-scope functions are the surface: `sendInvite`, `acceptInvite`,
|
|
5
|
+
* `revokeInvite`, `listInvites`, `expireOverdue`. A vertical imports those into its
|
|
6
|
+
* own operations and runs them inside its own transaction — the dashboard and every
|
|
7
|
+
* hosted vertical need the same invitation surface, which is D-31's "two consumers
|
|
8
|
+
* on day one" and the reason this is an engine at all
|
|
9
|
+
* (`docs/engines/invites.md`).
|
|
10
|
+
*
|
|
11
|
+
* There are no consumers here. Nothing composes this engine by emitting at it.
|
|
12
|
+
*/
|
|
13
|
+
import { entityRef, moduleManifest, operationInputsOf, pageOverFold, permissionKey, substratError, } from '@substrat-run/contracts';
|
|
2
14
|
/**
|
|
3
15
|
* The conflict reasons this engine raises — its own vocabulary, narrowing the platform's
|
|
4
16
|
* `conflict` code (#113). Exported so a vertical can branch on WHY a refusal happened
|
|
@@ -254,7 +266,14 @@ export function revokeInvite(ctx, invitationId) {
|
|
|
254
266
|
*/
|
|
255
267
|
export function listInvites(ctx, orgId) {
|
|
256
268
|
expireOverdue(ctx, orgId);
|
|
257
|
-
|
|
269
|
+
// Newest first, ordered by `id` rather than `created_at` (#959). Same intent —
|
|
270
|
+
// the id is a ULID, so it carries the same instant — but TOTAL: `created_at`
|
|
271
|
+
// comes from `ctx.now()`, which is stable for a whole invocation, so a seed or
|
|
272
|
+
// a batch that sends several invitations in one operation gives them all the
|
|
273
|
+
// same value and leaves their relative order to SQLite. That is fine for a
|
|
274
|
+
// whole-list read and fatal for the keyset walk `invites/list` now does, where
|
|
275
|
+
// 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]);
|
|
258
277
|
}
|
|
259
278
|
// -- operations: the permission check plus one exported function (D-28) -------
|
|
260
279
|
const sendOp = async (ctx, input) => {
|
|
@@ -267,9 +286,14 @@ const acceptOp = async (ctx, input) => {
|
|
|
267
286
|
// proven by re-hashing the identifier they present.
|
|
268
287
|
return acceptInvite(ctx, input);
|
|
269
288
|
};
|
|
289
|
+
// Paged (#959). `listInvites` above stays unpaged: a vertical composing it inside
|
|
290
|
+
// its own operation is reading one org's invitations to decide something, not
|
|
291
|
+
// rendering a table — the same split `listOrders` kept in #811.
|
|
270
292
|
const listOp = async (ctx, input) => {
|
|
271
293
|
assertAllowed(await ctx.check(INVITES_PERM.read));
|
|
272
|
-
|
|
294
|
+
// Newest first, so the walk descends; the id is a ULID, unique and ordered the
|
|
295
|
+
// same way `created_at` is.
|
|
296
|
+
return pageOverFold(listInvites(ctx, input.orgId), input, (i) => i.id, 'desc');
|
|
273
297
|
};
|
|
274
298
|
const revokeOp = async (ctx, input) => {
|
|
275
299
|
assertAllowed(await ctx.check(INVITES_PERM.revoke));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/operations.d.ts
CHANGED
|
@@ -100,6 +100,19 @@ export declare const invitesOperations: {
|
|
|
100
100
|
expires_at: z.ZodString;
|
|
101
101
|
settled_at: z.ZodNullable<z.ZodString>;
|
|
102
102
|
}, z.core.$strip>;
|
|
103
|
+
/**
|
|
104
|
+
* Handler-composed, not `paged.over` (#959). The read answers the PROJECTION
|
|
105
|
+
* — the row minus the identifier hash — and it expires overdue invitations on
|
|
106
|
+
* the way past, which the kernel's walk has no place for.
|
|
107
|
+
*
|
|
108
|
+
* Newest first, so the page descends. `id` is the cursor rather than
|
|
109
|
+
* `created_at`: it is a ULID, so it is unique AND ordered the same way
|
|
110
|
+
* `created_at` is, and a keyset over a non-unique column skips ties.
|
|
111
|
+
*/
|
|
112
|
+
readonly paged: {
|
|
113
|
+
readonly sortKey: "id";
|
|
114
|
+
readonly order: "desc";
|
|
115
|
+
};
|
|
103
116
|
};
|
|
104
117
|
readonly 'invites/revoke': {
|
|
105
118
|
readonly summary: "Withdraw an invitation before it is accepted";
|
package/dist/operations.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,EAAoB,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAG9D,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,YAAI,cAAc,EAAE,cAAc,EAAE,gBAAgB,CAAU,CAAC;AAI/F,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,EAAoB,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAG9D,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,YAAI,cAAc,EAAE,cAAc,EAAE,gBAAgB,CAAU,CAAC;AAI/F,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAoD1B;;;;;;;;WAQG;;;;;;;;;;;;;;CAaL,CAAC"}
|
package/dist/operations.js
CHANGED
|
@@ -97,6 +97,16 @@ export const invitesOperations = defineOperations(invitesEntities, INVITES_PERMI
|
|
|
97
97
|
// publish the identifier hash, which is the one thing hashing exists to keep
|
|
98
98
|
// unreadable.
|
|
99
99
|
output: invitation,
|
|
100
|
+
/**
|
|
101
|
+
* Handler-composed, not `paged.over` (#959). The read answers the PROJECTION
|
|
102
|
+
* — the row minus the identifier hash — and it expires overdue invitations on
|
|
103
|
+
* the way past, which the kernel's walk has no place for.
|
|
104
|
+
*
|
|
105
|
+
* Newest first, so the page descends. `id` is the cursor rather than
|
|
106
|
+
* `created_at`: it is a ULID, so it is unique AND ordered the same way
|
|
107
|
+
* `created_at` is, and a keyset over a non-unique column skips ties.
|
|
108
|
+
*/
|
|
109
|
+
paged: { sortKey: 'id', order: 'desc' },
|
|
100
110
|
},
|
|
101
111
|
'invites/revoke': {
|
|
102
112
|
summary: 'Withdraw an invitation before it is accepted',
|
package/dist/operations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE5D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,gBAAgB,CAAU,CAAC;AAE/F,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;IACtF,cAAc,EAAE;QACd,OAAO,EAAE,mCAAmC;QAC5C,UAAU,EAAE,cAAc;QAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,wEAAwE;YACxE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B;;;;;;;;eAQG;YACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACnC,CAAC;QACF,0EAA0E;QAC1E,2EAA2E;QAC3E,8EAA8E;QAC9E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;KACrC;IAED,gBAAgB,EAAE;QAChB,OAAO,EAAE;YACP,MAAM,EACJ,sFAAsF;gBACtF,qFAAqF;gBACrF,mFAAmF;gBACnF,YAAY;YACd,MAAM,EAAE,EAAE;YACV,4EAA4E;YAC5E,2EAA2E;YAC3E,sEAAsE;YACtE,SAAS,EAAE,IAAI;SAChB;QACD,OAAO,EAAE,kEAAkE;QAC3E,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,EAAE,UAAU;KACnB;IAED,cAAc,EAAE;QACd,OAAO,EAAE,6CAA6C;QACtD,UAAU,EAAE,cAAc;QAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,2EAA2E;QAC3E,6EAA6E;QAC7E,cAAc;QACd,MAAM,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,OAAO,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE5D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,gBAAgB,CAAU,CAAC;AAE/F,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;IACtF,cAAc,EAAE;QACd,OAAO,EAAE,mCAAmC;QAC5C,UAAU,EAAE,cAAc;QAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,wEAAwE;YACxE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B;;;;;;;;eAQG;YACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACnC,CAAC;QACF,0EAA0E;QAC1E,2EAA2E;QAC3E,8EAA8E;QAC9E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;KACrC;IAED,gBAAgB,EAAE;QAChB,OAAO,EAAE;YACP,MAAM,EACJ,sFAAsF;gBACtF,qFAAqF;gBACrF,mFAAmF;gBACnF,YAAY;YACd,MAAM,EAAE,EAAE;YACV,4EAA4E;YAC5E,2EAA2E;YAC3E,sEAAsE;YACtE,SAAS,EAAE,IAAI;SAChB;QACD,OAAO,EAAE,kEAAkE;QAC3E,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,EAAE,UAAU;KACnB;IAED,cAAc,EAAE;QACd,OAAO,EAAE,6CAA6C;QACtD,UAAU,EAAE,cAAc;QAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,2EAA2E;QAC3E,6EAA6E;QAC7E,cAAc;QACd,MAAM,EAAE,UAAU;QAClB;;;;;;;;WAQG;QACH,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;KACxC;IAED,gBAAgB,EAAE;QAChB,OAAO,EAAE,8CAA8C;QACvD,UAAU,EAAE,gBAAgB;QAC5B,KAAK,EAAE,YAAY;QACnB,mEAAmE;QACnE,yEAAyE;QACzE,kEAAkE;QAClE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE;KACjB;CACF,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@substrat-run/engine-invites",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
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/
|
|
29
|
-
"@substrat-run/
|
|
28
|
+
"@substrat-run/kernel": "^0.94.0",
|
|
29
|
+
"@substrat-run/contracts": "^0.94.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.
|
|
36
|
-
"@substrat-run/
|
|
37
|
-
"@substrat-run/
|
|
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"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"zod": "^4.4.0"
|