@soda-gql/core 0.1.0 → 0.3.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 (70) hide show
  1. package/README.md +108 -161
  2. package/dist/adapter.cjs +35 -0
  3. package/dist/adapter.cjs.map +1 -0
  4. package/dist/adapter.d.cts +35 -0
  5. package/dist/adapter.d.cts.map +1 -0
  6. package/dist/adapter.d.ts +35 -0
  7. package/dist/adapter.d.ts.map +1 -0
  8. package/dist/adapter.js +34 -0
  9. package/dist/adapter.js.map +1 -0
  10. package/dist/index-DH3lMepk.d.cts +569 -0
  11. package/dist/index-DH3lMepk.d.cts.map +1 -0
  12. package/dist/index-WU6aMZjg.d.ts +569 -0
  13. package/dist/index-WU6aMZjg.d.ts.map +1 -0
  14. package/dist/index.cjs +485 -470
  15. package/dist/index.cjs.map +1 -0
  16. package/dist/index.d.cts +97 -3
  17. package/dist/index.d.cts.map +1 -0
  18. package/dist/index.d.ts +97 -3
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +458 -443
  21. package/dist/index.js.map +1 -1
  22. package/dist/runtime.cjs +85 -0
  23. package/dist/runtime.cjs.map +1 -0
  24. package/dist/runtime.d.cts +40 -0
  25. package/dist/runtime.d.cts.map +1 -0
  26. package/dist/runtime.d.ts +40 -0
  27. package/dist/runtime.d.ts.map +1 -0
  28. package/dist/runtime.js +82 -0
  29. package/dist/runtime.js.map +1 -0
  30. package/dist/schema-BElqa12z.d.cts +520 -0
  31. package/dist/schema-BElqa12z.d.cts.map +1 -0
  32. package/dist/schema-BbCrsNkQ.js +86 -0
  33. package/dist/schema-BbCrsNkQ.js.map +1 -0
  34. package/dist/schema-C7q047S0.d.ts +520 -0
  35. package/dist/schema-C7q047S0.d.ts.map +1 -0
  36. package/dist/schema-DuWaRhdp.cjs +122 -0
  37. package/dist/schema-DuWaRhdp.cjs.map +1 -0
  38. package/dist/schema-builder-DDfulXP3.d.cts +40 -0
  39. package/dist/schema-builder-DDfulXP3.d.cts.map +1 -0
  40. package/dist/schema-builder-DfyTaFMt.d.ts +40 -0
  41. package/dist/schema-builder-DfyTaFMt.d.ts.map +1 -0
  42. package/package.json +34 -14
  43. package/dist/index-DYwkqPzd.d.ts +0 -1015
  44. package/dist/index-DYwkqPzd.d.ts.map +0 -1
  45. package/dist/index-Db9ogofS.d.ts +0 -365
  46. package/dist/index-Db9ogofS.d.ts.map +0 -1
  47. package/dist/index-Dth0NSJt.d.cts +0 -1015
  48. package/dist/index-Dth0NSJt.d.cts.map +0 -1
  49. package/dist/index-zGZ61WLt.d.cts +0 -365
  50. package/dist/index-zGZ61WLt.d.cts.map +0 -1
  51. package/dist/merge-CeMx09is.js +0 -74
  52. package/dist/merge-CeMx09is.js.map +0 -1
  53. package/dist/merge-ZxKV1syS.cjs +0 -85
  54. package/dist/metadata/index.cjs +0 -62
  55. package/dist/metadata/index.d.cts +0 -71
  56. package/dist/metadata/index.d.cts.map +0 -1
  57. package/dist/metadata/index.d.ts +0 -71
  58. package/dist/metadata/index.d.ts.map +0 -1
  59. package/dist/metadata/index.js +0 -59
  60. package/dist/metadata/index.js.map +0 -1
  61. package/dist/runtime/index.cjs +0 -107
  62. package/dist/runtime/index.d.cts +0 -72
  63. package/dist/runtime/index.d.cts.map +0 -1
  64. package/dist/runtime/index.d.ts +0 -72
  65. package/dist/runtime/index.d.ts.map +0 -1
  66. package/dist/runtime/index.js +0 -104
  67. package/dist/runtime/index.js.map +0 -1
  68. package/dist/slice-BuSNc8vw.js +0 -278
  69. package/dist/slice-BuSNc8vw.js.map +0 -1
  70. package/dist/slice-C-FIQK-f.cjs +0 -373
@@ -1,85 +0,0 @@
1
-
2
- //#region packages/core/src/metadata/merge.ts
3
- /**
4
- * Default merge strategy for combining slice metadata with operation metadata.
5
- * Performs a shallow merge where operation-level values take precedence.
6
- *
7
- * @param operationMetadata - Metadata defined on the operation itself
8
- * @param sliceMetadataList - Array of metadata from all embedded slices
9
- * @returns Merged metadata with operation values taking precedence
10
- */
11
- const defaultMergeSliceMetadata = (operationMetadata, sliceMetadataList) => {
12
- const mergedSliceMetadata = sliceMetadataList.reduce((acc, slice) => ({
13
- headers: {
14
- ...acc.headers,
15
- ...slice.headers
16
- },
17
- extensions: {
18
- ...acc.extensions,
19
- ...slice.extensions
20
- },
21
- custom: {
22
- ...acc.custom,
23
- ...slice.custom
24
- }
25
- }), {
26
- headers: {},
27
- extensions: {},
28
- custom: {}
29
- });
30
- return {
31
- ...operationMetadata,
32
- headers: {
33
- ...mergedSliceMetadata.headers,
34
- ...operationMetadata.headers
35
- },
36
- extensions: {
37
- ...mergedSliceMetadata.extensions,
38
- ...operationMetadata.extensions
39
- },
40
- custom: {
41
- ...mergedSliceMetadata.custom,
42
- ...operationMetadata.custom
43
- }
44
- };
45
- };
46
- /**
47
- * Merge schema-level default metadata with operation-level metadata.
48
- * Schema defaults are applied first, then operation metadata overrides.
49
- *
50
- * @param defaults - Schema-level default metadata
51
- * @param operationMetadata - Operation-specific metadata
52
- * @returns Merged metadata with operation values taking precedence
53
- */
54
- const mergeWithDefaults = (defaults, operationMetadata) => {
55
- return {
56
- ...defaults,
57
- ...operationMetadata,
58
- headers: {
59
- ...defaults.headers,
60
- ...operationMetadata.headers
61
- },
62
- extensions: {
63
- ...defaults.extensions,
64
- ...operationMetadata.extensions
65
- },
66
- custom: {
67
- ...defaults.custom,
68
- ...operationMetadata.custom
69
- }
70
- };
71
- };
72
-
73
- //#endregion
74
- Object.defineProperty(exports, 'defaultMergeSliceMetadata', {
75
- enumerable: true,
76
- get: function () {
77
- return defaultMergeSliceMetadata;
78
- }
79
- });
80
- Object.defineProperty(exports, 'mergeWithDefaults', {
81
- enumerable: true,
82
- get: function () {
83
- return mergeWithDefaults;
84
- }
85
- });
@@ -1,62 +0,0 @@
1
- const require_merge = require('../merge-ZxKV1syS.cjs');
2
-
3
- //#region packages/core/src/metadata/adapter.ts
4
- /**
5
- * Creates a type-safe metadata adapter for a schema.
6
- * The adapter defines how metadata is processed at build time.
7
- *
8
- * @example
9
- * ```typescript
10
- * import { createMetadataAdapter } from "@soda-gql/core/metadata";
11
- * import { createHash } from "crypto";
12
- *
13
- * export const metadataAdapter = createMetadataAdapter({
14
- * defaults: {
15
- * headers: { "X-GraphQL-Client": "soda-gql" },
16
- * },
17
- *
18
- * transform: ({ document, metadata }) => ({
19
- * ...metadata,
20
- * extensions: {
21
- * ...metadata.extensions,
22
- * persistedQuery: {
23
- * version: 1,
24
- * sha256Hash: createHash("sha256").update(document).digest("hex"),
25
- * },
26
- * },
27
- * }),
28
- * });
29
- * ```
30
- */
31
- const createMetadataAdapter = (adapter) => adapter;
32
- /**
33
- * Processes metadata through an adapter, applying defaults, merging slice metadata,
34
- * and running the transform function.
35
- *
36
- * @param adapter - The metadata adapter to use
37
- * @param operationMetadata - Metadata defined on the operation
38
- * @param sliceMetadataList - Metadata from embedded slices
39
- * @param transformInput - Additional input for the transform function
40
- * @returns Processed metadata ready for runtime use
41
- */
42
- const processMetadata = (adapter, operationMetadata, sliceMetadataList, transformInput) => {
43
- const mergedFromSlices = (adapter.mergeSliceMetadata ?? require_merge.defaultMergeSliceMetadata)(operationMetadata ?? {}, sliceMetadataList);
44
- const withDefaults = require_merge.mergeWithDefaults(adapter.defaults, mergedFromSlices);
45
- if (adapter.transform) return adapter.transform({
46
- ...transformInput,
47
- metadata: withDefaults
48
- });
49
- return withDefaults;
50
- };
51
- /**
52
- * Creates a no-op metadata adapter that passes through metadata unchanged.
53
- * Useful when no metadata processing is needed.
54
- */
55
- const createNoopMetadataAdapter = () => ({ defaults: {} });
56
-
57
- //#endregion
58
- exports.createMetadataAdapter = createMetadataAdapter;
59
- exports.createNoopMetadataAdapter = createNoopMetadataAdapter;
60
- exports.defaultMergeSliceMetadata = require_merge.defaultMergeSliceMetadata;
61
- exports.mergeWithDefaults = require_merge.mergeWithDefaults;
62
- exports.processMetadata = processMetadata;
@@ -1,71 +0,0 @@
1
- import { a as MetadataTransformInput, i as MetadataAdapter, l as OperationMetadata, u as SliceMetadata } from "../index-zGZ61WLt.cjs";
2
-
3
- //#region packages/core/src/metadata/adapter.d.ts
4
-
5
- /**
6
- * Creates a type-safe metadata adapter for a schema.
7
- * The adapter defines how metadata is processed at build time.
8
- *
9
- * @example
10
- * ```typescript
11
- * import { createMetadataAdapter } from "@soda-gql/core/metadata";
12
- * import { createHash } from "crypto";
13
- *
14
- * export const metadataAdapter = createMetadataAdapter({
15
- * defaults: {
16
- * headers: { "X-GraphQL-Client": "soda-gql" },
17
- * },
18
- *
19
- * transform: ({ document, metadata }) => ({
20
- * ...metadata,
21
- * extensions: {
22
- * ...metadata.extensions,
23
- * persistedQuery: {
24
- * version: 1,
25
- * sha256Hash: createHash("sha256").update(document).digest("hex"),
26
- * },
27
- * },
28
- * }),
29
- * });
30
- * ```
31
- */
32
- declare const createMetadataAdapter: <TInputMetadata extends OperationMetadata = OperationMetadata, TOutputMetadata extends OperationMetadata = TInputMetadata>(adapter: MetadataAdapter<TInputMetadata, TOutputMetadata>) => MetadataAdapter<TInputMetadata, TOutputMetadata>;
33
- /**
34
- * Processes metadata through an adapter, applying defaults, merging slice metadata,
35
- * and running the transform function.
36
- *
37
- * @param adapter - The metadata adapter to use
38
- * @param operationMetadata - Metadata defined on the operation
39
- * @param sliceMetadataList - Metadata from embedded slices
40
- * @param transformInput - Additional input for the transform function
41
- * @returns Processed metadata ready for runtime use
42
- */
43
- declare const processMetadata: <TInputMetadata extends OperationMetadata, TOutputMetadata extends OperationMetadata>(adapter: MetadataAdapter<TInputMetadata, TOutputMetadata>, operationMetadata: TInputMetadata | undefined, sliceMetadataList: readonly SliceMetadata[], transformInput: Omit<MetadataTransformInput<TInputMetadata>, "metadata">) => TOutputMetadata;
44
- /**
45
- * Creates a no-op metadata adapter that passes through metadata unchanged.
46
- * Useful when no metadata processing is needed.
47
- */
48
- declare const createNoopMetadataAdapter: () => MetadataAdapter<OperationMetadata, OperationMetadata>;
49
- //#endregion
50
- //#region packages/core/src/metadata/merge.d.ts
51
- /**
52
- * Default merge strategy for combining slice metadata with operation metadata.
53
- * Performs a shallow merge where operation-level values take precedence.
54
- *
55
- * @param operationMetadata - Metadata defined on the operation itself
56
- * @param sliceMetadataList - Array of metadata from all embedded slices
57
- * @returns Merged metadata with operation values taking precedence
58
- */
59
- declare const defaultMergeSliceMetadata: <TMetadata extends OperationMetadata>(operationMetadata: TMetadata, sliceMetadataList: readonly SliceMetadata[]) => TMetadata;
60
- /**
61
- * Merge schema-level default metadata with operation-level metadata.
62
- * Schema defaults are applied first, then operation metadata overrides.
63
- *
64
- * @param defaults - Schema-level default metadata
65
- * @param operationMetadata - Operation-specific metadata
66
- * @returns Merged metadata with operation values taking precedence
67
- */
68
- declare const mergeWithDefaults: <TMetadata extends OperationMetadata>(defaults: TMetadata, operationMetadata: TMetadata) => TMetadata;
69
- //#endregion
70
- export { createMetadataAdapter, createNoopMetadataAdapter, defaultMergeSliceMetadata, mergeWithDefaults, processMetadata };
71
- //# sourceMappingURL=index.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/metadata/adapter.ts","../../src/metadata/merge.ts"],"sourcesContent":[],"mappings":";;;;;;AA8BA;;;;;;;;;;;;AAiBA;;;;;;;;;;;;;AA4Ba,cA7CA,qBA+CX,EAAA,CAAA,uBA9CuB,iBA8CvB,GA9C2C,iBA8C3C,EAAA,wBA7CwB,iBA6CxB,GA7C4C,cA6C5C,CAAA,CAAA,OAAA,EA3CS,eA2CT,CA3CyB,cA2CzB,EA3CyC,eA2CzC,CAAA,EAAA,GA1CC,eA0CD,CA1CiB,cA0CjB,EA1CiC,eA0CjC,CAAA;;;;;;;;ACnEF;;;AAE8B,cDmCjB,eCnCiB,EAAA,CAAA,uBDmCyB,iBCnCzB,EAAA,wBDmCoE,iBCnCpE,CAAA,CAAA,OAAA,EDoCnB,eCpCmB,CDoCH,cCpCG,EDoCa,eCpCb,CAAA,EAAA,iBAAA,EDqCT,cCrCS,GAAA,SAAA,EAAA,iBAAA,EAAA,SDsCA,aCtCA,EAAA,EAAA,cAAA,EDuCZ,ICvCY,CDuCP,sBCvCO,CDuCgB,cCvChB,CAAA,EAAA,UAAA,CAAA,EAAA,GDwC3B,eCxC2B;;;AA6B9B;;AACY,cDiCC,yBCjCD,EAAA,GAAA,GDiCiC,eCjCjC,CDiCiD,iBCjCjD,EDiCoE,iBCjCpE,CAAA;;;;;ADZZ;;;;;;AAI2C,cCxB9B,yBDwB8B,EAAA,CAAA,kBCxBiB,iBDwBjB,CAAA,CAAA,iBAAA,ECvBtB,SDuBsB,EAAA,iBAAA,EAAA,SCtBb,aDsBa,EAAA,EAAA,GCrBxC,SDqBwC;;;;;;AAa3C;;;AAC2B,cCPd,iBDOc,EAAA,CAAA,kBCPyB,iBDOzB,CAAA,CAAA,QAAA,ECNf,SDMe,EAAA,iBAAA,ECLN,SDKM,EAAA,GCJxB,SDIwB"}
@@ -1,71 +0,0 @@
1
- import { a as MetadataTransformInput, i as MetadataAdapter, l as OperationMetadata, u as SliceMetadata } from "../index-Db9ogofS.js";
2
-
3
- //#region packages/core/src/metadata/adapter.d.ts
4
-
5
- /**
6
- * Creates a type-safe metadata adapter for a schema.
7
- * The adapter defines how metadata is processed at build time.
8
- *
9
- * @example
10
- * ```typescript
11
- * import { createMetadataAdapter } from "@soda-gql/core/metadata";
12
- * import { createHash } from "crypto";
13
- *
14
- * export const metadataAdapter = createMetadataAdapter({
15
- * defaults: {
16
- * headers: { "X-GraphQL-Client": "soda-gql" },
17
- * },
18
- *
19
- * transform: ({ document, metadata }) => ({
20
- * ...metadata,
21
- * extensions: {
22
- * ...metadata.extensions,
23
- * persistedQuery: {
24
- * version: 1,
25
- * sha256Hash: createHash("sha256").update(document).digest("hex"),
26
- * },
27
- * },
28
- * }),
29
- * });
30
- * ```
31
- */
32
- declare const createMetadataAdapter: <TInputMetadata extends OperationMetadata = OperationMetadata, TOutputMetadata extends OperationMetadata = TInputMetadata>(adapter: MetadataAdapter<TInputMetadata, TOutputMetadata>) => MetadataAdapter<TInputMetadata, TOutputMetadata>;
33
- /**
34
- * Processes metadata through an adapter, applying defaults, merging slice metadata,
35
- * and running the transform function.
36
- *
37
- * @param adapter - The metadata adapter to use
38
- * @param operationMetadata - Metadata defined on the operation
39
- * @param sliceMetadataList - Metadata from embedded slices
40
- * @param transformInput - Additional input for the transform function
41
- * @returns Processed metadata ready for runtime use
42
- */
43
- declare const processMetadata: <TInputMetadata extends OperationMetadata, TOutputMetadata extends OperationMetadata>(adapter: MetadataAdapter<TInputMetadata, TOutputMetadata>, operationMetadata: TInputMetadata | undefined, sliceMetadataList: readonly SliceMetadata[], transformInput: Omit<MetadataTransformInput<TInputMetadata>, "metadata">) => TOutputMetadata;
44
- /**
45
- * Creates a no-op metadata adapter that passes through metadata unchanged.
46
- * Useful when no metadata processing is needed.
47
- */
48
- declare const createNoopMetadataAdapter: () => MetadataAdapter<OperationMetadata, OperationMetadata>;
49
- //#endregion
50
- //#region packages/core/src/metadata/merge.d.ts
51
- /**
52
- * Default merge strategy for combining slice metadata with operation metadata.
53
- * Performs a shallow merge where operation-level values take precedence.
54
- *
55
- * @param operationMetadata - Metadata defined on the operation itself
56
- * @param sliceMetadataList - Array of metadata from all embedded slices
57
- * @returns Merged metadata with operation values taking precedence
58
- */
59
- declare const defaultMergeSliceMetadata: <TMetadata extends OperationMetadata>(operationMetadata: TMetadata, sliceMetadataList: readonly SliceMetadata[]) => TMetadata;
60
- /**
61
- * Merge schema-level default metadata with operation-level metadata.
62
- * Schema defaults are applied first, then operation metadata overrides.
63
- *
64
- * @param defaults - Schema-level default metadata
65
- * @param operationMetadata - Operation-specific metadata
66
- * @returns Merged metadata with operation values taking precedence
67
- */
68
- declare const mergeWithDefaults: <TMetadata extends OperationMetadata>(defaults: TMetadata, operationMetadata: TMetadata) => TMetadata;
69
- //#endregion
70
- export { createMetadataAdapter, createNoopMetadataAdapter, defaultMergeSliceMetadata, mergeWithDefaults, processMetadata };
71
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/metadata/adapter.ts","../../src/metadata/merge.ts"],"sourcesContent":[],"mappings":";;;;;;AA8BA;;;;;;;;;;;;AAiBA;;;;;;;;;;;;;AA4Ba,cA7CA,qBA+CX,EAAA,CAAA,uBA9CuB,iBA8CvB,GA9C2C,iBA8C3C,EAAA,wBA7CwB,iBA6CxB,GA7C4C,cA6C5C,CAAA,CAAA,OAAA,EA3CS,eA2CT,CA3CyB,cA2CzB,EA3CyC,eA2CzC,CAAA,EAAA,GA1CC,eA0CD,CA1CiB,cA0CjB,EA1CiC,eA0CjC,CAAA;;;;;;;;ACnEF;;;AAE8B,cDmCjB,eCnCiB,EAAA,CAAA,uBDmCyB,iBCnCzB,EAAA,wBDmCoE,iBCnCpE,CAAA,CAAA,OAAA,EDoCnB,eCpCmB,CDoCH,cCpCG,EDoCa,eCpCb,CAAA,EAAA,iBAAA,EDqCT,cCrCS,GAAA,SAAA,EAAA,iBAAA,EAAA,SDsCA,aCtCA,EAAA,EAAA,cAAA,EDuCZ,ICvCY,CDuCP,sBCvCO,CDuCgB,cCvChB,CAAA,EAAA,UAAA,CAAA,EAAA,GDwC3B,eCxC2B;;;AA6B9B;;AACY,cDiCC,yBCjCD,EAAA,GAAA,GDiCiC,eCjCjC,CDiCiD,iBCjCjD,EDiCoE,iBCjCpE,CAAA;;;;;ADZZ;;;;;;AAI2C,cCxB9B,yBDwB8B,EAAA,CAAA,kBCxBiB,iBDwBjB,CAAA,CAAA,iBAAA,ECvBtB,SDuBsB,EAAA,iBAAA,EAAA,SCtBb,aDsBa,EAAA,EAAA,GCrBxC,SDqBwC;;;;;;AAa3C;;;AAC2B,cCPd,iBDOc,EAAA,CAAA,kBCPyB,iBDOzB,CAAA,CAAA,QAAA,ECNf,SDMe,EAAA,iBAAA,ECLN,SDKM,EAAA,GCJxB,SDIwB"}
@@ -1,59 +0,0 @@
1
- import { n as mergeWithDefaults, t as defaultMergeSliceMetadata } from "../merge-CeMx09is.js";
2
-
3
- //#region packages/core/src/metadata/adapter.ts
4
- /**
5
- * Creates a type-safe metadata adapter for a schema.
6
- * The adapter defines how metadata is processed at build time.
7
- *
8
- * @example
9
- * ```typescript
10
- * import { createMetadataAdapter } from "@soda-gql/core/metadata";
11
- * import { createHash } from "crypto";
12
- *
13
- * export const metadataAdapter = createMetadataAdapter({
14
- * defaults: {
15
- * headers: { "X-GraphQL-Client": "soda-gql" },
16
- * },
17
- *
18
- * transform: ({ document, metadata }) => ({
19
- * ...metadata,
20
- * extensions: {
21
- * ...metadata.extensions,
22
- * persistedQuery: {
23
- * version: 1,
24
- * sha256Hash: createHash("sha256").update(document).digest("hex"),
25
- * },
26
- * },
27
- * }),
28
- * });
29
- * ```
30
- */
31
- const createMetadataAdapter = (adapter) => adapter;
32
- /**
33
- * Processes metadata through an adapter, applying defaults, merging slice metadata,
34
- * and running the transform function.
35
- *
36
- * @param adapter - The metadata adapter to use
37
- * @param operationMetadata - Metadata defined on the operation
38
- * @param sliceMetadataList - Metadata from embedded slices
39
- * @param transformInput - Additional input for the transform function
40
- * @returns Processed metadata ready for runtime use
41
- */
42
- const processMetadata = (adapter, operationMetadata, sliceMetadataList, transformInput) => {
43
- const mergedFromSlices = (adapter.mergeSliceMetadata ?? defaultMergeSliceMetadata)(operationMetadata ?? {}, sliceMetadataList);
44
- const withDefaults = mergeWithDefaults(adapter.defaults, mergedFromSlices);
45
- if (adapter.transform) return adapter.transform({
46
- ...transformInput,
47
- metadata: withDefaults
48
- });
49
- return withDefaults;
50
- };
51
- /**
52
- * Creates a no-op metadata adapter that passes through metadata unchanged.
53
- * Useful when no metadata processing is needed.
54
- */
55
- const createNoopMetadataAdapter = () => ({ defaults: {} });
56
-
57
- //#endregion
58
- export { createMetadataAdapter, createNoopMetadataAdapter, defaultMergeSliceMetadata, mergeWithDefaults, processMetadata };
59
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/metadata/adapter.ts"],"sourcesContent":["import type { MetadataAdapter, MetadataTransformInput, OperationMetadata, SliceMetadata } from \"../types/metadata\";\nimport { defaultMergeSliceMetadata, mergeWithDefaults } from \"./merge\";\n\n/**\n * Creates a type-safe metadata adapter for a schema.\n * The adapter defines how metadata is processed at build time.\n *\n * @example\n * ```typescript\n * import { createMetadataAdapter } from \"@soda-gql/core/metadata\";\n * import { createHash } from \"crypto\";\n *\n * export const metadataAdapter = createMetadataAdapter({\n * defaults: {\n * headers: { \"X-GraphQL-Client\": \"soda-gql\" },\n * },\n *\n * transform: ({ document, metadata }) => ({\n * ...metadata,\n * extensions: {\n * ...metadata.extensions,\n * persistedQuery: {\n * version: 1,\n * sha256Hash: createHash(\"sha256\").update(document).digest(\"hex\"),\n * },\n * },\n * }),\n * });\n * ```\n */\nexport const createMetadataAdapter = <\n TInputMetadata extends OperationMetadata = OperationMetadata,\n TOutputMetadata extends OperationMetadata = TInputMetadata,\n>(\n adapter: MetadataAdapter<TInputMetadata, TOutputMetadata>,\n): MetadataAdapter<TInputMetadata, TOutputMetadata> => adapter;\n\n/**\n * Processes metadata through an adapter, applying defaults, merging slice metadata,\n * and running the transform function.\n *\n * @param adapter - The metadata adapter to use\n * @param operationMetadata - Metadata defined on the operation\n * @param sliceMetadataList - Metadata from embedded slices\n * @param transformInput - Additional input for the transform function\n * @returns Processed metadata ready for runtime use\n */\nexport const processMetadata = <TInputMetadata extends OperationMetadata, TOutputMetadata extends OperationMetadata>(\n adapter: MetadataAdapter<TInputMetadata, TOutputMetadata>,\n operationMetadata: TInputMetadata | undefined,\n sliceMetadataList: readonly SliceMetadata[],\n transformInput: Omit<MetadataTransformInput<TInputMetadata>, \"metadata\">,\n): TOutputMetadata => {\n // Step 1: Merge slice metadata with operation metadata\n const mergeSliceMetadata = adapter.mergeSliceMetadata ?? defaultMergeSliceMetadata;\n const mergedFromSlices = mergeSliceMetadata(operationMetadata ?? ({} as TInputMetadata), sliceMetadataList);\n\n // Step 2: Merge with schema defaults\n const withDefaults = mergeWithDefaults(adapter.defaults, mergedFromSlices);\n\n // Step 3: Apply transform if provided\n if (adapter.transform) {\n return adapter.transform({\n ...transformInput,\n metadata: withDefaults,\n });\n }\n\n return withDefaults as unknown as TOutputMetadata;\n};\n\n/**\n * Creates a no-op metadata adapter that passes through metadata unchanged.\n * Useful when no metadata processing is needed.\n */\nexport const createNoopMetadataAdapter = (): MetadataAdapter<OperationMetadata, OperationMetadata> => ({\n defaults: {},\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAa,yBAIX,YACqD;;;;;;;;;;;AAYvD,MAAa,mBACX,SACA,mBACA,mBACA,mBACoB;CAGpB,MAAM,oBADqB,QAAQ,sBAAsB,2BACb,qBAAsB,EAAE,EAAqB,kBAAkB;CAG3G,MAAM,eAAe,kBAAkB,QAAQ,UAAU,iBAAiB;AAG1E,KAAI,QAAQ,UACV,QAAO,QAAQ,UAAU;EACvB,GAAG;EACH,UAAU;EACX,CAAC;AAGJ,QAAO;;;;;;AAOT,MAAa,mCAA0F,EACrG,UAAU,EAAE,EACb"}
@@ -1,107 +0,0 @@
1
- const require_slice = require('../slice-C-FIQK-f.cjs');
2
-
3
- //#region packages/core/src/runtime/runtime-registry.ts
4
- const composedOperationRegistry = /* @__PURE__ */ new Map();
5
- const inlineOperationRegistry = /* @__PURE__ */ new Map();
6
- const registerComposedOperation = (operation) => {
7
- composedOperationRegistry.set(operation.operationName, operation);
8
- };
9
- const registerInlineOperation = (operation) => {
10
- inlineOperationRegistry.set(operation.operationName, operation);
11
- };
12
- const getComposedOperation = (name) => {
13
- const operation = composedOperationRegistry.get(name);
14
- if (!operation) throw new Error(`Operation ${name} not found`);
15
- return operation;
16
- };
17
- const getInlineOperation = (name) => {
18
- const operation = inlineOperationRegistry.get(name);
19
- if (!operation) throw new Error(`Operation ${name} not found`);
20
- return operation;
21
- };
22
- /**
23
- * Test-only function to reset the operation registry
24
- * @internal
25
- */
26
- const __resetRuntimeRegistry = () => {
27
- composedOperationRegistry.clear();
28
- inlineOperationRegistry.clear();
29
- };
30
- /**
31
- * Test-only function to get all registered composed operations
32
- * @internal
33
- */
34
- const __getRegisteredComposedOperations = () => {
35
- return composedOperationRegistry;
36
- };
37
- /**
38
- * Test-only function to get all registered inline operations
39
- * @internal
40
- */
41
- const __getRegisteredInlineOperations = () => {
42
- return inlineOperationRegistry;
43
- };
44
-
45
- //#endregion
46
- //#region packages/core/src/runtime/composed-operation.ts
47
- const createRuntimeComposedOperation = (input) => {
48
- const operation = {
49
- operationType: input.prebuild.operationType,
50
- operationName: input.prebuild.operationName,
51
- variableNames: input.prebuild.variableNames,
52
- projectionPathGraph: input.prebuild.projectionPathGraph,
53
- document: input.prebuild.document,
54
- parse: require_slice.createExecutionResultParser({
55
- fragments: input.runtime.getSlices({ $: require_slice.createVarRefs(Object.fromEntries(input.prebuild.variableNames.map((name) => [name, null]))) }),
56
- projectionPathGraph: input.prebuild.projectionPathGraph
57
- }),
58
- metadata: input.prebuild.metadata
59
- };
60
- registerComposedOperation(operation);
61
- return operation;
62
- };
63
-
64
- //#endregion
65
- //#region packages/core/src/runtime/inline-operation.ts
66
- const createRuntimeInlineOperation = (input) => {
67
- const operation = {
68
- operationType: input.prebuild.operationType,
69
- operationName: input.prebuild.operationName,
70
- variableNames: input.prebuild.variableNames,
71
- documentSource: require_slice.hidden(),
72
- document: input.prebuild.document,
73
- metadata: input.prebuild.metadata
74
- };
75
- registerInlineOperation(operation);
76
- return operation;
77
- };
78
-
79
- //#endregion
80
- //#region packages/core/src/runtime/model.ts
81
- const createRuntimeModel = (input) => ({
82
- typename: input.prebuild.typename,
83
- fragment: require_slice.hidden(),
84
- normalize: input.runtime.normalize
85
- });
86
-
87
- //#endregion
88
- //#region packages/core/src/runtime/runtime-adapter.ts
89
- const createRuntimeAdapter = (factory) => factory({ type: require_slice.hidden });
90
-
91
- //#endregion
92
- //#region packages/core/src/runtime/index.ts
93
- const gqlRuntime = {
94
- model: createRuntimeModel,
95
- composedOperation: createRuntimeComposedOperation,
96
- inlineOperation: createRuntimeInlineOperation,
97
- slice: require_slice.createRuntimeSlice,
98
- getComposedOperation,
99
- getInlineOperation
100
- };
101
-
102
- //#endregion
103
- exports.__getRegisteredComposedOperations = __getRegisteredComposedOperations;
104
- exports.__getRegisteredInlineOperations = __getRegisteredInlineOperations;
105
- exports.__resetRuntimeRegistry = __resetRuntimeRegistry;
106
- exports.createRuntimeAdapter = createRuntimeAdapter;
107
- exports.gqlRuntime = gqlRuntime;
@@ -1,72 +0,0 @@
1
- import { C as OperationRoots, w as OperationType } from "../index-zGZ61WLt.cjs";
2
- import { At as StripFunctions, E as AnyInlineOperationOf, G as AnyExecutionResultProjectionsBuilder, J as AnyComposedOperationOf, Pt as Hidden, S as AnyModel, kt as AnyGraphqlRuntimeAdapter, nt as AnySliceOf, rt as AnySlicePayload, sn as AnyAssignableInput } from "../index-Dth0NSJt.cjs";
3
-
4
- //#region packages/core/src/runtime/model.d.ts
5
- type RuntimeModelInput = {
6
- prebuild: StripFunctions<AnyModel>;
7
- runtime: {
8
- normalize: (raw: any) => object;
9
- };
10
- };
11
- //#endregion
12
- //#region packages/core/src/runtime/composed-operation.d.ts
13
- type RuntimeComposedOperationInput = {
14
- prebuild: StripFunctions<AnyComposedOperationOf<OperationType>>;
15
- runtime: {
16
- getSlices: (tools: {
17
- $: AnyAssignableInput;
18
- }) => {
19
- [key: string]: AnySlicePayload;
20
- };
21
- };
22
- };
23
- //#endregion
24
- //#region packages/core/src/runtime/inline-operation.d.ts
25
- type RuntimeInlineOperationInput = {
26
- prebuild: StripFunctions<AnyInlineOperationOf<OperationType>>;
27
- runtime: {};
28
- };
29
- //#endregion
30
- //#region packages/core/src/runtime/slice.d.ts
31
- type RuntimeSliceInput = {
32
- prebuild: StripFunctions<AnySliceOf<OperationType>>;
33
- runtime: {
34
- buildProjection: AnyExecutionResultProjectionsBuilder;
35
- };
36
- };
37
- //#endregion
38
- //#region packages/core/src/runtime/runtime-adapter.d.ts
39
- type RuntimeAdapterFactory<TRuntimeAdapter extends AnyGraphqlRuntimeAdapter> = (tools: {
40
- type: <T>() => Hidden<T>;
41
- }) => TRuntimeAdapter;
42
- declare const createRuntimeAdapter: <TRuntimeAdapter extends AnyGraphqlRuntimeAdapter>(factory: RuntimeAdapterFactory<TRuntimeAdapter>) => TRuntimeAdapter;
43
- //#endregion
44
- //#region packages/core/src/runtime/runtime-registry.d.ts
45
- /**
46
- * Test-only function to reset the operation registry
47
- * @internal
48
- */
49
- declare const __resetRuntimeRegistry: () => void;
50
- /**
51
- * Test-only function to get all registered composed operations
52
- * @internal
53
- */
54
- declare const __getRegisteredComposedOperations: () => ReadonlyMap<string, AnyComposedOperationOf<OperationType>>;
55
- /**
56
- * Test-only function to get all registered inline operations
57
- * @internal
58
- */
59
- declare const __getRegisteredInlineOperations: () => ReadonlyMap<string, AnyInlineOperationOf<OperationType>>;
60
- //#endregion
61
- //#region packages/core/src/runtime/index.d.ts
62
- declare const gqlRuntime: {
63
- model: (input: RuntimeModelInput) => AnyModel;
64
- composedOperation: (input: RuntimeComposedOperationInput) => AnyComposedOperationOf<OperationType>;
65
- inlineOperation: (input: RuntimeInlineOperationInput) => AnyInlineOperationOf<OperationType>;
66
- slice: (input: RuntimeSliceInput) => AnySliceOf<OperationType>;
67
- getComposedOperation: (name: string) => AnyComposedOperationOf<keyof OperationRoots>;
68
- getInlineOperation: (name: string) => AnyInlineOperationOf<keyof OperationRoots>;
69
- };
70
- //#endregion
71
- export { type RuntimeComposedOperationInput, type RuntimeInlineOperationInput, type RuntimeModelInput, type RuntimeSliceInput, __getRegisteredComposedOperations, __getRegisteredInlineOperations, __resetRuntimeRegistry, createRuntimeAdapter, gqlRuntime };
72
- //# sourceMappingURL=index.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/runtime/model.ts","../../src/runtime/composed-operation.ts","../../src/runtime/inline-operation.ts","../../src/runtime/slice.ts","../../src/runtime/runtime-adapter.ts","../../src/runtime/runtime-registry.ts","../../src/runtime/index.ts"],"sourcesContent":[],"mappings":";;;;KAIY,iBAAA;YACA,eAAe;EADf,OAAA,EAAA;;;;;;AAAA,KCKA,6BAAA,GDJe;YCKf,eAAe,uBAAuB;;;MADtC,CAAA,EAGgB,kBAHhB;IACsC,CAAA,EAAA,GAAA;MAAvB,CAAA,GAAA,EAAA,MAAA,CAAA,EAE2C,eAF3C;IAAf,CAAA;EAEgB,CAAA;CAA0C;;;KCN1D,2BAAA;EFFA,QAAA,EEGA,cFHiB,CEGF,oBFFf,CEEoC,aFFtB,CAAA,CAAA;;;;;KGCd,iBAAA;EHFA,QAAA,EGGA,cHHiB,CGGF,UHFA,CGEW,aHF1B,CAAA,CAAA;;qBGIS;;AFArB,CAAA;;;KGLK,8CAA8C;iBAClC,OAAO;AJDxB,CAAA,EAAA,GIEM,eJFM;cIIC,+CAAgD,mCAClD,sBAAsB,qBAAgB;;;;;AHAjD;;AAC2B,cIwBd,sBJxBc,EAAA,GAAA,GAAA,IAAA;;;;;cIiCd,yCAAwC,oBAAoB,uBAAuB;;;AHrChG;;AAC2B,cG4Cd,+BH5Cc,EAAA,GAAA,GG4CwB,WH5CxB,CAAA,MAAA,EG4C4C,oBH5C5C,CG4CiE,aH5CjE,CAAA,CAAA;;;cIUd;iBAOZ;ELfW,iBAAA,EAAA,CAAA,KAAA,+BAA6B,EAAA,yBAAA,eAAA;EACS,eAAA,EAAA,CAAA,KAAA,6BAAA,EAAA,uBAAA,eAAA;EAAvB,KAAA,EAAA,CAAA,KAAA,mBAAA,EAAA,aAAA,eAAA;EAAf,oBAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,yBAAA,CAAA,oBAAA,CAAA;EAEgB,kBAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,uBAAA,CAAA,oBAAA,CAAA;CAA0C"}
@@ -1,72 +0,0 @@
1
- import { C as OperationRoots, w as OperationType } from "../index-Db9ogofS.js";
2
- import { At as StripFunctions, E as AnyInlineOperationOf, G as AnyExecutionResultProjectionsBuilder, J as AnyComposedOperationOf, Pt as Hidden, S as AnyModel, kt as AnyGraphqlRuntimeAdapter, nt as AnySliceOf, rt as AnySlicePayload, sn as AnyAssignableInput } from "../index-DYwkqPzd.js";
3
-
4
- //#region packages/core/src/runtime/model.d.ts
5
- type RuntimeModelInput = {
6
- prebuild: StripFunctions<AnyModel>;
7
- runtime: {
8
- normalize: (raw: any) => object;
9
- };
10
- };
11
- //#endregion
12
- //#region packages/core/src/runtime/composed-operation.d.ts
13
- type RuntimeComposedOperationInput = {
14
- prebuild: StripFunctions<AnyComposedOperationOf<OperationType>>;
15
- runtime: {
16
- getSlices: (tools: {
17
- $: AnyAssignableInput;
18
- }) => {
19
- [key: string]: AnySlicePayload;
20
- };
21
- };
22
- };
23
- //#endregion
24
- //#region packages/core/src/runtime/inline-operation.d.ts
25
- type RuntimeInlineOperationInput = {
26
- prebuild: StripFunctions<AnyInlineOperationOf<OperationType>>;
27
- runtime: {};
28
- };
29
- //#endregion
30
- //#region packages/core/src/runtime/slice.d.ts
31
- type RuntimeSliceInput = {
32
- prebuild: StripFunctions<AnySliceOf<OperationType>>;
33
- runtime: {
34
- buildProjection: AnyExecutionResultProjectionsBuilder;
35
- };
36
- };
37
- //#endregion
38
- //#region packages/core/src/runtime/runtime-adapter.d.ts
39
- type RuntimeAdapterFactory<TRuntimeAdapter extends AnyGraphqlRuntimeAdapter> = (tools: {
40
- type: <T>() => Hidden<T>;
41
- }) => TRuntimeAdapter;
42
- declare const createRuntimeAdapter: <TRuntimeAdapter extends AnyGraphqlRuntimeAdapter>(factory: RuntimeAdapterFactory<TRuntimeAdapter>) => TRuntimeAdapter;
43
- //#endregion
44
- //#region packages/core/src/runtime/runtime-registry.d.ts
45
- /**
46
- * Test-only function to reset the operation registry
47
- * @internal
48
- */
49
- declare const __resetRuntimeRegistry: () => void;
50
- /**
51
- * Test-only function to get all registered composed operations
52
- * @internal
53
- */
54
- declare const __getRegisteredComposedOperations: () => ReadonlyMap<string, AnyComposedOperationOf<OperationType>>;
55
- /**
56
- * Test-only function to get all registered inline operations
57
- * @internal
58
- */
59
- declare const __getRegisteredInlineOperations: () => ReadonlyMap<string, AnyInlineOperationOf<OperationType>>;
60
- //#endregion
61
- //#region packages/core/src/runtime/index.d.ts
62
- declare const gqlRuntime: {
63
- model: (input: RuntimeModelInput) => AnyModel;
64
- composedOperation: (input: RuntimeComposedOperationInput) => AnyComposedOperationOf<OperationType>;
65
- inlineOperation: (input: RuntimeInlineOperationInput) => AnyInlineOperationOf<OperationType>;
66
- slice: (input: RuntimeSliceInput) => AnySliceOf<OperationType>;
67
- getComposedOperation: (name: string) => AnyComposedOperationOf<keyof OperationRoots>;
68
- getInlineOperation: (name: string) => AnyInlineOperationOf<keyof OperationRoots>;
69
- };
70
- //#endregion
71
- export { type RuntimeComposedOperationInput, type RuntimeInlineOperationInput, type RuntimeModelInput, type RuntimeSliceInput, __getRegisteredComposedOperations, __getRegisteredInlineOperations, __resetRuntimeRegistry, createRuntimeAdapter, gqlRuntime };
72
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/runtime/model.ts","../../src/runtime/composed-operation.ts","../../src/runtime/inline-operation.ts","../../src/runtime/slice.ts","../../src/runtime/runtime-adapter.ts","../../src/runtime/runtime-registry.ts","../../src/runtime/index.ts"],"sourcesContent":[],"mappings":";;;;KAIY,iBAAA;YACA,eAAe;EADf,OAAA,EAAA;;;;;;AAAA,KCKA,6BAAA,GDJe;YCKf,eAAe,uBAAuB;;;MADtC,CAAA,EAGgB,kBAHhB;IACsC,CAAA,EAAA,GAAA;MAAvB,CAAA,GAAA,EAAA,MAAA,CAAA,EAE2C,eAF3C;IAAf,CAAA;EAEgB,CAAA;CAA0C;;;KCN1D,2BAAA;EFFA,QAAA,EEGA,cFHiB,CEGF,oBFFf,CEEoC,aFFtB,CAAA,CAAA;;;;;KGCd,iBAAA;EHFA,QAAA,EGGA,cHHiB,CGGF,UHFA,CGEW,aHF1B,CAAA,CAAA;;qBGIS;;AFArB,CAAA;;;KGLK,8CAA8C;iBAClC,OAAO;AJDxB,CAAA,EAAA,GIEM,eJFM;cIIC,+CAAgD,mCAClD,sBAAsB,qBAAgB;;;;;AHAjD;;AAC2B,cIwBd,sBJxBc,EAAA,GAAA,GAAA,IAAA;;;;;cIiCd,yCAAwC,oBAAoB,uBAAuB;;;AHrChG;;AAC2B,cG4Cd,+BH5Cc,EAAA,GAAA,GG4CwB,WH5CxB,CAAA,MAAA,EG4C4C,oBH5C5C,CG4CiE,aH5CjE,CAAA,CAAA;;;cIUd;iBAOZ;ELfW,iBAAA,EAAA,CAAA,KAAA,+BAA6B,EAAA,yBAAA,eAAA;EACS,eAAA,EAAA,CAAA,KAAA,6BAAA,EAAA,uBAAA,eAAA;EAAvB,KAAA,EAAA,CAAA,KAAA,mBAAA,EAAA,aAAA,eAAA;EAAf,oBAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,yBAAA,CAAA,oBAAA,CAAA;EAEgB,kBAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,uBAAA,CAAA,oBAAA,CAAA;CAA0C"}