@prisma-next/operations 0.3.0-pr.103.9 → 0.3.0-pr.104.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.mts CHANGED
@@ -21,11 +21,11 @@ interface OperationSignature {
21
21
  readonly returns: ReturnSpec;
22
22
  readonly capabilities?: ReadonlyArray<string>;
23
23
  }
24
- interface OperationRegistry {
25
- register(op: OperationSignature): void;
26
- byType(typeId: string): ReadonlyArray<OperationSignature>;
24
+ interface OperationRegistry<T extends OperationSignature = OperationSignature> {
25
+ register(op: T): void;
26
+ byType(typeId: string): ReadonlyArray<T>;
27
27
  }
28
- declare function createOperationRegistry(): OperationRegistry;
28
+ declare function createOperationRegistry<T extends OperationSignature = OperationSignature>(): OperationRegistry<T>;
29
29
  declare function hasAllCapabilities(capabilities: ReadonlyArray<string>, contractCapabilities?: Record<string, Record<string, boolean>>): boolean;
30
30
  //#endregion
31
31
  export { ArgSpec, OperationRegistry, OperationSignature, ReturnSpec, createOperationRegistry, hasAllCapabilities };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";KAAY,OAAA;EAAA,SAAA,IAAO,EAAA,QAAA;EAKP,SAAA,IAAU,EAAA,MAAA;AAItB,CAAA,GAAiB;EAGc,SAAA,IAAA,EAAA,OAAA;CAAd,GAAA;EACG,SAAA,IAAA,EAAA,SAAA;CACM;AAAa,KAT3B,UAAA,GAS2B;EAGtB,SAAA,IAAA,EAAA,QAAiB;EACnB,SAAA,IAAA,EAAA,MAAA;CACyB,GAAA;EAAd,SAAA,IAAA,EAAA,SAAA;EAAa,SAAA,IAAA,EAAA,QAAA,GAAA,SAAA,GAAA,QAAA;AAuBvC,CAAA;AAIgB,UArCC,kBAAA,CAqCiB;EAClB,SAAA,SAAA,EAAA,MAAA;EACwB,SAAA,MAAA,EAAA,MAAA;EAAf,SAAA,IAAA,EApCR,aAoCQ,CApCM,OAoCN,CAAA;EAAM,SAAA,OAAA,EAnCX,UAmCW;0BAlCL;;UAGT,iBAAA;eACF;0BACW,cAAc;;iBAuBxB,uBAAA,CAAA,GAA2B;iBAI3B,kBAAA,eACA,8CACS,eAAe"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";KAAY,OAAA;EAAA,SAAA,IAAO,EAAA,QAAA;EAKP,SAAA,IAAU,EAAA,MAAA;AAItB,CAAA,GAAiB;EAGc,SAAA,IAAA,EAAA,OAAA;CAAd,GAAA;EACG,SAAA,IAAA,EAAA,SAAA;CACM;AAAa,KAT3B,UAAA,GAS2B;EAGtB,SAAA,IAAA,EAAA,QAAiB;EAAW,SAAA,IAAA,EAAA,MAAA;CAAqB,GAAA;EACnD,SAAA,IAAA,EAAA,SAAA;EACyB,SAAA,IAAA,EAAA,QAAA,GAAA,SAAA,GAAA,QAAA;CAAd;AAAa,UAVtB,kBAAA,CAUsB;EAyBvB,SAAA,SAAA,EAAA,MAAuB;EAC3B,SAAA,MAAA,EAAA,MAAA;EAAqB,SAAA,IAAA,EAjChB,aAiCgB,CAjCF,OAiCE,CAAA;EACV,SAAA,OAAA,EAjCH,UAiCG;EAAlB,SAAA,YAAA,CAAA,EAhCqB,aAgCrB,CAAA,MAAA,CAAA;;AAIW,UAjCC,iBAiCiB,CAAA,UAjCW,kBAiCX,GAjCgC,kBAiChC,CAAA,CAAA;EAClB,QAAA,CAAA,EAAA,EAjCD,CAiCC,CAAA,EAAA,IAAA;EACwB,MAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAjCd,aAiCc,CAjCA,CAiCA,CAAA;;AAAT,iBARf,uBAQe,CAAA,UAPnB,kBAOmB,GAPE,kBAOF,CAAA,CAAA,CAAA,EAN1B,iBAM0B,CANR,CAMQ,CAAA;iBAFf,kBAAA,eACA,8CACS,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["export type ArgSpec =\n | { readonly kind: 'typeId'; readonly type: string }\n | { readonly kind: 'param' }\n | { readonly kind: 'literal' };\n\nexport type ReturnSpec =\n | { readonly kind: 'typeId'; readonly type: string }\n | { readonly kind: 'builtin'; readonly type: 'number' | 'boolean' | 'string' };\n\nexport interface OperationSignature {\n readonly forTypeId: string;\n readonly method: string;\n readonly args: ReadonlyArray<ArgSpec>;\n readonly returns: ReturnSpec;\n readonly capabilities?: ReadonlyArray<string>;\n}\n\nexport interface OperationRegistry {\n register(op: OperationSignature): void;\n byType(typeId: string): ReadonlyArray<OperationSignature>;\n}\n\nclass OperationRegistryImpl implements OperationRegistry {\n private readonly operations = new Map<string, OperationSignature[]>();\n\n register(op: OperationSignature): void {\n const existing = this.operations.get(op.forTypeId) ?? [];\n const duplicate = existing.find((existingOp) => existingOp.method === op.method);\n if (duplicate) {\n throw new Error(\n `Operation method \"${op.method}\" already registered for typeId \"${op.forTypeId}\"`,\n );\n }\n existing.push(op);\n this.operations.set(op.forTypeId, existing);\n }\n\n byType(typeId: string): ReadonlyArray<OperationSignature> {\n return this.operations.get(typeId) ?? [];\n }\n}\n\nexport function createOperationRegistry(): OperationRegistry {\n return new OperationRegistryImpl();\n}\n\nexport function hasAllCapabilities(\n capabilities: ReadonlyArray<string>,\n contractCapabilities?: Record<string, Record<string, boolean>>,\n): boolean {\n if (!contractCapabilities) {\n return false;\n }\n\n return capabilities.every((cap) => {\n const [namespace, ...rest] = cap.split('.');\n const key = rest.join('.');\n const namespaceCaps = namespace ? contractCapabilities[namespace] : undefined;\n return namespaceCaps?.[key] === true;\n });\n}\n"],"mappings":";AAsBA,IAAM,wBAAN,MAAyD;CACvD,AAAiB,6BAAa,IAAI,KAAmC;CAErE,SAAS,IAA8B;EACrC,MAAM,WAAW,KAAK,WAAW,IAAI,GAAG,UAAU,IAAI,EAAE;AAExD,MADkB,SAAS,MAAM,eAAe,WAAW,WAAW,GAAG,OAAO,CAE9E,OAAM,IAAI,MACR,qBAAqB,GAAG,OAAO,mCAAmC,GAAG,UAAU,GAChF;AAEH,WAAS,KAAK,GAAG;AACjB,OAAK,WAAW,IAAI,GAAG,WAAW,SAAS;;CAG7C,OAAO,QAAmD;AACxD,SAAO,KAAK,WAAW,IAAI,OAAO,IAAI,EAAE;;;AAI5C,SAAgB,0BAA6C;AAC3D,QAAO,IAAI,uBAAuB;;AAGpC,SAAgB,mBACd,cACA,sBACS;AACT,KAAI,CAAC,qBACH,QAAO;AAGT,QAAO,aAAa,OAAO,QAAQ;EACjC,MAAM,CAAC,WAAW,GAAG,QAAQ,IAAI,MAAM,IAAI;EAC3C,MAAM,MAAM,KAAK,KAAK,IAAI;AAE1B,UADsB,YAAY,qBAAqB,aAAa,UAC7C,SAAS;GAChC"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["export type ArgSpec =\n | { readonly kind: 'typeId'; readonly type: string }\n | { readonly kind: 'param' }\n | { readonly kind: 'literal' };\n\nexport type ReturnSpec =\n | { readonly kind: 'typeId'; readonly type: string }\n | { readonly kind: 'builtin'; readonly type: 'number' | 'boolean' | 'string' };\n\nexport interface OperationSignature {\n readonly forTypeId: string;\n readonly method: string;\n readonly args: ReadonlyArray<ArgSpec>;\n readonly returns: ReturnSpec;\n readonly capabilities?: ReadonlyArray<string>;\n}\n\nexport interface OperationRegistry<T extends OperationSignature = OperationSignature> {\n register(op: T): void;\n byType(typeId: string): ReadonlyArray<T>;\n}\n\nclass OperationRegistryImpl<T extends OperationSignature = OperationSignature>\n implements OperationRegistry<T>\n{\n private readonly operations = new Map<string, T[]>();\n\n register(op: T): void {\n const existing = this.operations.get(op.forTypeId) ?? [];\n const duplicate = existing.find((existingOp) => existingOp.method === op.method);\n if (duplicate) {\n throw new Error(\n `Operation method \"${op.method}\" already registered for typeId \"${op.forTypeId}\"`,\n );\n }\n existing.push(op);\n this.operations.set(op.forTypeId, existing);\n }\n\n byType(typeId: string): ReadonlyArray<T> {\n return this.operations.get(typeId) ?? [];\n }\n}\n\nexport function createOperationRegistry<\n T extends OperationSignature = OperationSignature,\n>(): OperationRegistry<T> {\n return new OperationRegistryImpl<T>();\n}\n\nexport function hasAllCapabilities(\n capabilities: ReadonlyArray<string>,\n contractCapabilities?: Record<string, Record<string, boolean>>,\n): boolean {\n if (!contractCapabilities) {\n return false;\n }\n\n return capabilities.every((cap) => {\n const [namespace, ...rest] = cap.split('.');\n const key = rest.join('.');\n const namespaceCaps = namespace ? contractCapabilities[namespace] : undefined;\n return namespaceCaps?.[key] === true;\n });\n}\n"],"mappings":";AAsBA,IAAM,wBAAN,MAEA;CACE,AAAiB,6BAAa,IAAI,KAAkB;CAEpD,SAAS,IAAa;EACpB,MAAM,WAAW,KAAK,WAAW,IAAI,GAAG,UAAU,IAAI,EAAE;AAExD,MADkB,SAAS,MAAM,eAAe,WAAW,WAAW,GAAG,OAAO,CAE9E,OAAM,IAAI,MACR,qBAAqB,GAAG,OAAO,mCAAmC,GAAG,UAAU,GAChF;AAEH,WAAS,KAAK,GAAG;AACjB,OAAK,WAAW,IAAI,GAAG,WAAW,SAAS;;CAG7C,OAAO,QAAkC;AACvC,SAAO,KAAK,WAAW,IAAI,OAAO,IAAI,EAAE;;;AAI5C,SAAgB,0BAEU;AACxB,QAAO,IAAI,uBAA0B;;AAGvC,SAAgB,mBACd,cACA,sBACS;AACT,KAAI,CAAC,qBACH,QAAO;AAGT,QAAO,aAAa,OAAO,QAAQ;EACjC,MAAM,CAAC,WAAW,GAAG,QAAQ,IAAI,MAAM,IAAI;EAC3C,MAAM,MAAM,KAAK,KAAK,IAAI;AAE1B,UADsB,YAAY,qBAAqB,aAAa,UAC7C,SAAS;GAChC"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@prisma-next/operations",
3
- "version": "0.3.0-pr.103.9",
3
+ "version": "0.3.0-pr.104.2",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "description": "Target-neutral operation registry and capability helpers for Prisma Next",
7
7
  "dependencies": {
8
- "@prisma-next/plan": "0.3.0-pr.103.9"
8
+ "@prisma-next/plan": "0.3.0-pr.104.2"
9
9
  },
10
10
  "devDependencies": {
11
11
  "tsdown": "0.18.4",
package/src/index.ts CHANGED
@@ -15,15 +15,17 @@ export interface OperationSignature {
15
15
  readonly capabilities?: ReadonlyArray<string>;
16
16
  }
17
17
 
18
- export interface OperationRegistry {
19
- register(op: OperationSignature): void;
20
- byType(typeId: string): ReadonlyArray<OperationSignature>;
18
+ export interface OperationRegistry<T extends OperationSignature = OperationSignature> {
19
+ register(op: T): void;
20
+ byType(typeId: string): ReadonlyArray<T>;
21
21
  }
22
22
 
23
- class OperationRegistryImpl implements OperationRegistry {
24
- private readonly operations = new Map<string, OperationSignature[]>();
23
+ class OperationRegistryImpl<T extends OperationSignature = OperationSignature>
24
+ implements OperationRegistry<T>
25
+ {
26
+ private readonly operations = new Map<string, T[]>();
25
27
 
26
- register(op: OperationSignature): void {
28
+ register(op: T): void {
27
29
  const existing = this.operations.get(op.forTypeId) ?? [];
28
30
  const duplicate = existing.find((existingOp) => existingOp.method === op.method);
29
31
  if (duplicate) {
@@ -35,13 +37,15 @@ class OperationRegistryImpl implements OperationRegistry {
35
37
  this.operations.set(op.forTypeId, existing);
36
38
  }
37
39
 
38
- byType(typeId: string): ReadonlyArray<OperationSignature> {
40
+ byType(typeId: string): ReadonlyArray<T> {
39
41
  return this.operations.get(typeId) ?? [];
40
42
  }
41
43
  }
42
44
 
43
- export function createOperationRegistry(): OperationRegistry {
44
- return new OperationRegistryImpl();
45
+ export function createOperationRegistry<
46
+ T extends OperationSignature = OperationSignature,
47
+ >(): OperationRegistry<T> {
48
+ return new OperationRegistryImpl<T>();
45
49
  }
46
50
 
47
51
  export function hasAllCapabilities(