@distilled.cloud/core 0.30.3 → 1.0.0-rc.10

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 (216) hide show
  1. package/LICENSE +201 -0
  2. package/lib/api.d.ts +165 -0
  3. package/lib/api.d.ts.map +1 -0
  4. package/lib/api.js +190 -0
  5. package/lib/api.js.map +1 -0
  6. package/lib/category.d.ts +4 -4
  7. package/lib/category.js +4 -4
  8. package/lib/codegen/boolean-string-enums.d.ts +36 -0
  9. package/lib/codegen/boolean-string-enums.d.ts.map +1 -0
  10. package/lib/codegen/boolean-string-enums.js +94 -0
  11. package/lib/codegen/boolean-string-enums.js.map +1 -0
  12. package/lib/codegen/boolean-string-enums.test.d.ts +2 -0
  13. package/lib/codegen/boolean-string-enums.test.d.ts.map +1 -0
  14. package/lib/codegen/boolean-string-enums.test.js +147 -0
  15. package/lib/codegen/boolean-string-enums.test.js.map +1 -0
  16. package/lib/codegen/cli.d.ts +79 -0
  17. package/lib/codegen/cli.d.ts.map +1 -0
  18. package/lib/codegen/cli.js +149 -0
  19. package/lib/codegen/cli.js.map +1 -0
  20. package/lib/codegen/emit.d.ts +125 -0
  21. package/lib/codegen/emit.d.ts.map +1 -0
  22. package/lib/codegen/emit.js +101 -0
  23. package/lib/codegen/emit.js.map +1 -0
  24. package/lib/codegen/format.d.ts +23 -0
  25. package/lib/codegen/format.d.ts.map +1 -0
  26. package/lib/codegen/format.js +28 -0
  27. package/lib/codegen/format.js.map +1 -0
  28. package/lib/codegen/generator.d.ts +334 -0
  29. package/lib/codegen/generator.d.ts.map +1 -0
  30. package/lib/codegen/generator.js +813 -0
  31. package/lib/codegen/generator.js.map +1 -0
  32. package/lib/codegen/graph.d.ts +36 -0
  33. package/lib/codegen/graph.d.ts.map +1 -0
  34. package/lib/codegen/graph.js +136 -0
  35. package/lib/codegen/graph.js.map +1 -0
  36. package/lib/codegen/graphql-client.d.ts +62 -0
  37. package/lib/codegen/graphql-client.d.ts.map +1 -0
  38. package/lib/codegen/graphql-client.js +294 -0
  39. package/lib/codegen/graphql-client.js.map +1 -0
  40. package/lib/codegen/graphql-client.test.d.ts +2 -0
  41. package/lib/codegen/graphql-client.test.d.ts.map +1 -0
  42. package/lib/codegen/graphql-client.test.js +311 -0
  43. package/lib/codegen/graphql-client.test.js.map +1 -0
  44. package/lib/codegen/graphql.d.ts +207 -0
  45. package/lib/codegen/graphql.d.ts.map +1 -0
  46. package/lib/codegen/graphql.js +799 -0
  47. package/lib/codegen/graphql.js.map +1 -0
  48. package/lib/codegen/members.d.ts +25 -0
  49. package/lib/codegen/members.d.ts.map +1 -0
  50. package/lib/codegen/members.js +55 -0
  51. package/lib/codegen/members.js.map +1 -0
  52. package/lib/codegen/naming.d.ts +29 -0
  53. package/lib/codegen/naming.d.ts.map +1 -0
  54. package/lib/codegen/naming.js +74 -0
  55. package/lib/codegen/naming.js.map +1 -0
  56. package/lib/codegen/openapi-cli.d.ts +52 -0
  57. package/lib/codegen/openapi-cli.d.ts.map +1 -0
  58. package/lib/codegen/openapi-cli.js +109 -0
  59. package/lib/codegen/openapi-cli.js.map +1 -0
  60. package/lib/codegen/openapi.d.ts +178 -0
  61. package/lib/codegen/openapi.d.ts.map +1 -0
  62. package/lib/codegen/openapi.js +1377 -0
  63. package/lib/codegen/openapi.js.map +1 -0
  64. package/lib/codegen/operations.d.ts +24 -0
  65. package/lib/codegen/operations.d.ts.map +1 -0
  66. package/lib/codegen/operations.js +56 -0
  67. package/lib/codegen/operations.js.map +1 -0
  68. package/lib/codegen/pagination.d.ts +39 -0
  69. package/lib/codegen/pagination.d.ts.map +1 -0
  70. package/lib/codegen/pagination.js +33 -0
  71. package/lib/codegen/pagination.js.map +1 -0
  72. package/lib/codegen/patches.d.ts +65 -0
  73. package/lib/codegen/patches.d.ts.map +1 -0
  74. package/lib/codegen/patches.js +236 -0
  75. package/lib/codegen/patches.js.map +1 -0
  76. package/lib/codegen/patches.test.d.ts +2 -0
  77. package/lib/codegen/patches.test.d.ts.map +1 -0
  78. package/lib/codegen/patches.test.js +105 -0
  79. package/lib/codegen/patches.test.js.map +1 -0
  80. package/lib/codegen/prelude.d.ts +15 -0
  81. package/lib/codegen/prelude.d.ts.map +1 -0
  82. package/lib/codegen/prelude.js +60 -0
  83. package/lib/codegen/prelude.js.map +1 -0
  84. package/lib/codegen/proto.d.ts +121 -0
  85. package/lib/codegen/proto.d.ts.map +1 -0
  86. package/lib/codegen/proto.js +962 -0
  87. package/lib/codegen/proto.js.map +1 -0
  88. package/lib/codegen/rewrite-operation-ids.d.ts +131 -0
  89. package/lib/codegen/rewrite-operation-ids.d.ts.map +1 -0
  90. package/lib/codegen/rewrite-operation-ids.js +1079 -0
  91. package/lib/codegen/rewrite-operation-ids.js.map +1 -0
  92. package/lib/codegen/rewrite-operation-ids.test.d.ts +2 -0
  93. package/lib/codegen/rewrite-operation-ids.test.d.ts.map +1 -0
  94. package/lib/codegen/rewrite-operation-ids.test.js +533 -0
  95. package/lib/codegen/rewrite-operation-ids.test.js.map +1 -0
  96. package/lib/codegen/spec-path.d.ts +16 -0
  97. package/lib/codegen/spec-path.d.ts.map +1 -0
  98. package/lib/codegen/spec-path.js +101 -0
  99. package/lib/codegen/spec-path.js.map +1 -0
  100. package/lib/error-category.d.ts +28 -0
  101. package/lib/error-category.d.ts.map +1 -0
  102. package/lib/error-category.js +46 -0
  103. package/lib/error-category.js.map +1 -0
  104. package/lib/errors.d.ts +1 -0
  105. package/lib/errors.d.ts.map +1 -1
  106. package/lib/errors.js +18 -13
  107. package/lib/errors.js.map +1 -1
  108. package/lib/graphql.d.ts +284 -0
  109. package/lib/graphql.d.ts.map +1 -0
  110. package/lib/graphql.fixture.d.ts +249 -0
  111. package/lib/graphql.fixture.d.ts.map +1 -0
  112. package/lib/graphql.fixture.js +240 -0
  113. package/lib/graphql.fixture.js.map +1 -0
  114. package/lib/graphql.js +718 -0
  115. package/lib/graphql.js.map +1 -0
  116. package/lib/graphql.test.d.ts +2 -0
  117. package/lib/graphql.test.d.ts.map +1 -0
  118. package/lib/graphql.test.js +780 -0
  119. package/lib/graphql.test.js.map +1 -0
  120. package/lib/graphql.types.d.ts +2 -0
  121. package/lib/graphql.types.d.ts.map +1 -0
  122. package/lib/graphql.types.js +45 -0
  123. package/lib/graphql.types.js.map +1 -0
  124. package/lib/json-patch.d.ts +30 -30
  125. package/lib/json-patch.d.ts.map +1 -1
  126. package/lib/json-patch.js +73 -107
  127. package/lib/json-patch.js.map +1 -1
  128. package/lib/pagination.d.ts +77 -51
  129. package/lib/pagination.d.ts.map +1 -1
  130. package/lib/pagination.js +162 -94
  131. package/lib/pagination.js.map +1 -1
  132. package/lib/protocol-http.d.ts +74 -0
  133. package/lib/protocol-http.d.ts.map +1 -0
  134. package/lib/protocol-http.js +590 -0
  135. package/lib/protocol-http.js.map +1 -0
  136. package/lib/protocol-http.test.d.ts +2 -0
  137. package/lib/protocol-http.test.d.ts.map +1 -0
  138. package/lib/protocol-http.test.js +88 -0
  139. package/lib/protocol-http.test.js.map +1 -0
  140. package/lib/protocol-rest.d.ts +134 -0
  141. package/lib/protocol-rest.d.ts.map +1 -0
  142. package/lib/protocol-rest.js +256 -0
  143. package/lib/protocol-rest.js.map +1 -0
  144. package/lib/retry.d.ts +8 -2
  145. package/lib/retry.d.ts.map +1 -1
  146. package/lib/retry.js +22 -16
  147. package/lib/retry.js.map +1 -1
  148. package/lib/schema.d.ts +8 -9
  149. package/lib/schema.d.ts.map +1 -1
  150. package/lib/schema.js +8 -9
  151. package/lib/schema.js.map +1 -1
  152. package/lib/trait.d.ts +174 -0
  153. package/lib/trait.d.ts.map +1 -0
  154. package/lib/trait.js +123 -0
  155. package/lib/trait.js.map +1 -0
  156. package/package.json +24 -78
  157. package/src/api.ts +460 -0
  158. package/src/category.ts +4 -4
  159. package/src/codegen/boolean-string-enums.test.ts +168 -0
  160. package/src/codegen/boolean-string-enums.ts +106 -0
  161. package/src/codegen/cli.ts +285 -0
  162. package/src/codegen/emit.ts +203 -0
  163. package/src/codegen/format.ts +47 -0
  164. package/src/codegen/generator.ts +1283 -0
  165. package/src/codegen/graph.ts +151 -0
  166. package/src/codegen/graphql-client.test.ts +386 -0
  167. package/src/codegen/graphql-client.ts +419 -0
  168. package/src/codegen/graphql.ts +1217 -0
  169. package/src/codegen/members.ts +71 -0
  170. package/src/codegen/naming.ts +86 -0
  171. package/src/codegen/openapi-cli.ts +182 -0
  172. package/src/codegen/openapi.ts +1689 -0
  173. package/src/codegen/operations.ts +76 -0
  174. package/src/codegen/pagination.ts +71 -0
  175. package/src/codegen/patches.test.ts +130 -0
  176. package/src/codegen/patches.ts +291 -0
  177. package/src/codegen/prelude.ts +70 -0
  178. package/src/codegen/proto.ts +1128 -0
  179. package/src/codegen/rewrite-operation-ids.test.ts +563 -0
  180. package/src/codegen/rewrite-operation-ids.ts +1206 -0
  181. package/src/codegen/spec-path.ts +115 -0
  182. package/src/error-category.ts +84 -0
  183. package/src/errors.ts +22 -25
  184. package/src/graphql.fixture.ts +371 -0
  185. package/src/graphql.test.ts +974 -0
  186. package/src/graphql.ts +1321 -0
  187. package/src/graphql.types.ts +185 -0
  188. package/src/json-patch.ts +95 -122
  189. package/src/pagination.ts +217 -146
  190. package/src/protocol-http.test.ts +107 -0
  191. package/src/protocol-http.ts +735 -0
  192. package/src/protocol-rest.ts +391 -0
  193. package/src/retry.ts +21 -22
  194. package/src/schema.ts +9 -10
  195. package/src/trait.ts +274 -0
  196. package/README.md +0 -30
  197. package/lib/client.d.ts +0 -167
  198. package/lib/client.d.ts.map +0 -1
  199. package/lib/client.js +0 -659
  200. package/lib/client.js.map +0 -1
  201. package/lib/schemas.d.ts +0 -60
  202. package/lib/schemas.d.ts.map +0 -1
  203. package/lib/schemas.js +0 -79
  204. package/lib/schemas.js.map +0 -1
  205. package/lib/sensitive.d.ts +0 -71
  206. package/lib/sensitive.d.ts.map +0 -1
  207. package/lib/sensitive.js +0 -96
  208. package/lib/sensitive.js.map +0 -1
  209. package/lib/traits.d.ts +0 -421
  210. package/lib/traits.d.ts.map +0 -1
  211. package/lib/traits.js +0 -737
  212. package/lib/traits.js.map +0 -1
  213. package/src/client.ts +0 -1177
  214. package/src/schemas.ts +0 -128
  215. package/src/sensitive.ts +0 -119
  216. package/src/traits.ts +0 -996
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/codegen/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ export type ShapeMap = Record<string, any>;
2
+ /**
3
+ * Direct dependencies of a shape: structure/union member targets, list
4
+ * member, map key/value. Operations/services are not traversed here —
5
+ * providers seed reachability from operation I/O explicitly.
6
+ */
7
+ export declare const shapeDeps: (def: any) => string[];
8
+ /**
9
+ * Every shape reachable from `roots` through `deps`, excluding prelude
10
+ * shapes and ids missing from the map.
11
+ */
12
+ export declare const reachableFrom: (shapes: ShapeMap, roots: Iterable<string>, deps?: (def: any) => string[]) => Set<string>;
13
+ /**
14
+ * Dependencies-first topological order over `ids`. Cycles are tolerated:
15
+ * a back-edge is simply skipped, so mutually-recursive shapes come out in
16
+ * discovery order and emitters break the cycle with `S.suspend` at
17
+ * forward references (see {@link forwardRef}).
18
+ */
19
+ export declare const topoOrder: (shapes: ShapeMap, ids: Iterable<string>, deps?: (def: any) => string[]) => string[];
20
+ /** Position index for {@link forwardRef} decisions. */
21
+ export declare const orderIndex: (order: readonly string[]) => Map<string, number>;
22
+ /**
23
+ * Whether a reference from the shape at `selfIdx` to `target` points
24
+ * forward in emission order (including into a cycle) and therefore needs
25
+ * `S.suspend(() => …)` to defer evaluation.
26
+ */
27
+ export declare const isForwardRef: (indexOf: ReadonlyMap<string, number>, target: string, selfIdx: number) => boolean;
28
+ /**
29
+ * All shape ids that participate in a dependency cycle (Tarjan SCC —
30
+ * components of size > 1, plus direct self-loops). Used by generators
31
+ * that must know cyclicity independent of emission position (e.g. to add
32
+ * an explicit `S.Schema<T>` return type on suspended thunks and break
33
+ * circular type inference).
34
+ */
35
+ export declare const cyclicShapeIds: (shapes: ShapeMap, ids: Iterable<string>, deps?: (def: any) => string[]) => Set<string>;
36
+ //# sourceMappingURL=graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/codegen/graph.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,SAAS,QAAS,GAAG,KAAG,MAAM,EAU1C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,WAChB,QAAQ,SACT,QAAQ,CAAC,MAAM,CAAC,SACjB,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,EAAE,KAC3B,GAAG,CAAC,MAAM,CASZ,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,WACZ,QAAQ,OACX,QAAQ,CAAC,MAAM,CAAC,SACf,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,EAAE,KAC3B,MAAM,EAcR,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,UAAU,UAAW,SAAS,MAAM,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAIvE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,YACd,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,UAC5B,MAAM,WACL,MAAM,KACd,OAGF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,WACjB,QAAQ,OACX,QAAQ,CAAC,MAAM,CAAC,SACf,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,EAAE,KAC3B,GAAG,CAAC,MAAM,CA4CZ,CAAC"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Shared shape-graph utilities for the SDK generators (dev-time only).
3
+ *
4
+ * Works over plain Smithy-JSON shape maps (`{ "ns#Name": { type, members,
5
+ * … } }`). Providers supply the shape map and (optionally) a custom
6
+ * dependency extractor; reachability, topological ordering, and cycle
7
+ * analysis are generic.
8
+ */
9
+ import { isPrelude } from "./naming.js";
10
+ /**
11
+ * Direct dependencies of a shape: structure/union member targets, list
12
+ * member, map key/value. Operations/services are not traversed here —
13
+ * providers seed reachability from operation I/O explicitly.
14
+ */
15
+ export const shapeDeps = (def) => {
16
+ if (!def)
17
+ return [];
18
+ if (def.type === "structure" || def.type === "union") {
19
+ return Object.values(def.members ?? {}).map((m) => m.target);
20
+ }
21
+ if (def.type === "list")
22
+ return [def.member.target];
23
+ if (def.type === "map") {
24
+ return def.key ? [def.key.target, def.value.target] : [def.value.target];
25
+ }
26
+ return [];
27
+ };
28
+ /**
29
+ * Every shape reachable from `roots` through `deps`, excluding prelude
30
+ * shapes and ids missing from the map.
31
+ */
32
+ export const reachableFrom = (shapes, roots, deps = shapeDeps) => {
33
+ const reachable = new Set();
34
+ const visit = (id) => {
35
+ if (isPrelude(id) || reachable.has(id) || !shapes[id])
36
+ return;
37
+ reachable.add(id);
38
+ for (const dep of deps(shapes[id]))
39
+ visit(dep);
40
+ };
41
+ for (const r of roots)
42
+ visit(r);
43
+ return reachable;
44
+ };
45
+ /**
46
+ * Dependencies-first topological order over `ids`. Cycles are tolerated:
47
+ * a back-edge is simply skipped, so mutually-recursive shapes come out in
48
+ * discovery order and emitters break the cycle with `S.suspend` at
49
+ * forward references (see {@link forwardRef}).
50
+ */
51
+ export const topoOrder = (shapes, ids, deps = shapeDeps) => {
52
+ const order = [];
53
+ const done = new Set();
54
+ const stack = new Set();
55
+ const walk = (id) => {
56
+ if (done.has(id) || stack.has(id) || isPrelude(id) || !shapes[id])
57
+ return;
58
+ stack.add(id);
59
+ for (const dep of deps(shapes[id]))
60
+ walk(dep);
61
+ stack.delete(id);
62
+ done.add(id);
63
+ order.push(id);
64
+ };
65
+ for (const id of ids)
66
+ walk(id);
67
+ return order;
68
+ };
69
+ /** Position index for {@link forwardRef} decisions. */
70
+ export const orderIndex = (order) => {
71
+ const indexOf = new Map();
72
+ order.forEach((id, i) => indexOf.set(id, i));
73
+ return indexOf;
74
+ };
75
+ /**
76
+ * Whether a reference from the shape at `selfIdx` to `target` points
77
+ * forward in emission order (including into a cycle) and therefore needs
78
+ * `S.suspend(() => …)` to defer evaluation.
79
+ */
80
+ export const isForwardRef = (indexOf, target, selfIdx) => {
81
+ const ti = indexOf.get(target);
82
+ return ti !== undefined && ti > selfIdx;
83
+ };
84
+ /**
85
+ * All shape ids that participate in a dependency cycle (Tarjan SCC —
86
+ * components of size > 1, plus direct self-loops). Used by generators
87
+ * that must know cyclicity independent of emission position (e.g. to add
88
+ * an explicit `S.Schema<T>` return type on suspended thunks and break
89
+ * circular type inference).
90
+ */
91
+ export const cyclicShapeIds = (shapes, ids, deps = shapeDeps) => {
92
+ const idSet = new Set(ids);
93
+ const index = new Map();
94
+ const low = new Map();
95
+ const onStack = new Set();
96
+ const stack = [];
97
+ const cyclic = new Set();
98
+ let counter = 0;
99
+ const strongConnect = (v) => {
100
+ index.set(v, counter);
101
+ low.set(v, counter);
102
+ counter++;
103
+ stack.push(v);
104
+ onStack.add(v);
105
+ for (const w of deps(shapes[v])) {
106
+ if (!idSet.has(w) || !shapes[w])
107
+ continue;
108
+ if (!index.has(w)) {
109
+ strongConnect(w);
110
+ low.set(v, Math.min(low.get(v), low.get(w)));
111
+ }
112
+ else if (onStack.has(w)) {
113
+ low.set(v, Math.min(low.get(v), index.get(w)));
114
+ }
115
+ }
116
+ if (low.get(v) === index.get(v)) {
117
+ const component = [];
118
+ let w;
119
+ do {
120
+ w = stack.pop();
121
+ onStack.delete(w);
122
+ component.push(w);
123
+ } while (w !== v);
124
+ if (component.length > 1 || deps(shapes[v]).some((d) => d === v)) {
125
+ for (const c of component)
126
+ cyclic.add(c);
127
+ }
128
+ }
129
+ };
130
+ for (const id of idSet) {
131
+ if (!index.has(id) && shapes[id])
132
+ strongConnect(id);
133
+ }
134
+ return cyclic;
135
+ };
136
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/codegen/graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /** GraphQL-native introspection compiler. No traversal limits or RPC projection. */
2
+ import { type TypeRef } from "./graphql.ts";
3
+ export interface GraphQLArgument {
4
+ readonly type: string;
5
+ readonly description?: string;
6
+ readonly defaultValue?: string;
7
+ }
8
+ export interface GraphQLField {
9
+ readonly type: string;
10
+ readonly args: Record<string, GraphQLArgument>;
11
+ readonly errors: readonly string[];
12
+ readonly description?: string;
13
+ readonly deprecated?: string | true;
14
+ }
15
+ export interface GraphQLType {
16
+ readonly kind: string;
17
+ readonly description?: string;
18
+ readonly fields?: Record<string, GraphQLField>;
19
+ readonly inputFields?: Record<string, GraphQLArgument>;
20
+ readonly enumValues?: readonly string[];
21
+ readonly possibleTypes?: readonly string[];
22
+ readonly interfaces?: readonly string[];
23
+ /** TypeScript scalar representation; custom JSON scalars default to unknown. */
24
+ readonly scalar?: string;
25
+ }
26
+ export interface GraphQLErrorDefinition {
27
+ readonly description?: string;
28
+ readonly category?: string;
29
+ readonly retryable?: boolean;
30
+ readonly matchers: readonly {
31
+ readonly code?: string;
32
+ readonly message?: string;
33
+ readonly messageIncludes?: string;
34
+ }[];
35
+ }
36
+ export interface GraphQLModel {
37
+ readonly version: 1;
38
+ readonly queryType: string;
39
+ readonly mutationType?: string;
40
+ readonly subscriptionType?: string;
41
+ readonly types: Record<string, GraphQLType>;
42
+ readonly errors: Record<string, GraphQLErrorDefinition>;
43
+ readonly globalErrors: readonly string[];
44
+ }
45
+ export declare const graphqlTypeString: (ref: TypeRef) => string;
46
+ /** Retain every schema coordinate, wrapper, default and abstract-type relationship. */
47
+ export declare const convertGraphQLClient: (introspection: unknown, options?: {
48
+ readonly scalars?: Readonly<Record<string, string>>;
49
+ }) => GraphQLModel;
50
+ /** Reject dangling schema/error references after patches, before generating code. */
51
+ export declare const validateGraphQLModel: (model: GraphQLModel) => void;
52
+ export interface GenerateGraphQLClientOptions {
53
+ readonly transportImport: string;
54
+ readonly transportName?: string;
55
+ readonly requirementsType: string;
56
+ readonly requirementsImport: string;
57
+ /** Optional legacy-name aliases, e.g. createProject -> projectCreate. */
58
+ readonly operationAliases?: Readonly<Record<string, string>>;
59
+ }
60
+ /** Emit schema-indexed types and the matching runtime graph from one patched model. */
61
+ export declare const generateGraphQLClient: (model: GraphQLModel, options: GenerateGraphQLClientOptions) => string;
62
+ //# sourceMappingURL=graphql-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/codegen/graphql-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,294 @@
1
+ /** GraphQL-native introspection compiler. No traversal limits or RPC projection. */
2
+ import { readIntrospection } from "./graphql.js";
3
+ export const graphqlTypeString = (ref) => {
4
+ if (ref.kind === "NON_NULL" || ref.kind === "LIST") {
5
+ if (!ref.ofType)
6
+ throw new Error(`Incomplete GraphQL ${ref.kind} reference`);
7
+ const inner = graphqlTypeString(ref.ofType);
8
+ return ref.kind === "NON_NULL" ? `${inner}!` : `[${inner}]`;
9
+ }
10
+ if (!ref.name)
11
+ throw new Error("Unnamed GraphQL type reference");
12
+ return ref.name;
13
+ };
14
+ /** Retain every schema coordinate, wrapper, default and abstract-type relationship. */
15
+ export const convertGraphQLClient = (introspection, options = {}) => {
16
+ const schema = readIntrospection(introspection);
17
+ const scalars = {
18
+ String: "string",
19
+ ID: "string",
20
+ Int: "number",
21
+ Float: "number",
22
+ Boolean: "boolean",
23
+ ...options.scalars,
24
+ };
25
+ const argument = (value) => ({
26
+ type: graphqlTypeString(value.type),
27
+ ...(value.description ? { description: value.description } : {}),
28
+ ...(value.defaultValue != null ? { defaultValue: value.defaultValue } : {}),
29
+ });
30
+ const types = {};
31
+ for (const type of [...schema.types].sort((a, b) => a.name.localeCompare(b.name))) {
32
+ if (type.name.startsWith("__"))
33
+ continue;
34
+ types[type.name] = {
35
+ kind: type.kind,
36
+ ...(type.description ? { description: type.description } : {}),
37
+ ...(type.kind === "SCALAR"
38
+ ? { scalar: scalars[type.name] ?? "unknown" }
39
+ : {}),
40
+ ...(type.fields
41
+ ? {
42
+ fields: Object.fromEntries([...type.fields]
43
+ .sort((a, b) => a.name.localeCompare(b.name))
44
+ .map((field) => [
45
+ field.name,
46
+ {
47
+ type: graphqlTypeString(field.type),
48
+ args: Object.fromEntries(field.args.map((arg) => [arg.name, argument(arg)])),
49
+ errors: [],
50
+ ...(field.description
51
+ ? { description: field.description }
52
+ : {}),
53
+ ...(field.isDeprecated
54
+ ? {
55
+ deprecated: field.deprecationReason || true,
56
+ }
57
+ : {}),
58
+ },
59
+ ])),
60
+ }
61
+ : {}),
62
+ ...(type.inputFields
63
+ ? {
64
+ inputFields: Object.fromEntries(type.inputFields.map((field) => [field.name, argument(field)])),
65
+ }
66
+ : {}),
67
+ ...(type.enumValues
68
+ ? { enumValues: type.enumValues.map((value) => value.name) }
69
+ : {}),
70
+ ...(type.possibleTypes
71
+ ? { possibleTypes: type.possibleTypes.map((ref) => ref.name) }
72
+ : {}),
73
+ ...("interfaces" in type && Array.isArray(type.interfaces)
74
+ ? {
75
+ interfaces: type.interfaces.map((ref) => ref.name),
76
+ }
77
+ : {}),
78
+ };
79
+ }
80
+ return {
81
+ version: 1,
82
+ queryType: schema.queryType.name,
83
+ ...(schema.mutationType ? { mutationType: schema.mutationType.name } : {}),
84
+ ...(schema.subscriptionType
85
+ ? { subscriptionType: schema.subscriptionType.name }
86
+ : {}),
87
+ types,
88
+ errors: {},
89
+ globalErrors: [],
90
+ };
91
+ };
92
+ /** Reject dangling schema/error references after patches, before generating code. */
93
+ export const validateGraphQLModel = (model) => {
94
+ const checkType = (ref, coordinate) => {
95
+ const name = ref.replace(/[\[\]!]/g, "");
96
+ if (!model.types[name])
97
+ throw new Error(`${coordinate}: unknown GraphQL type ${name}`);
98
+ };
99
+ const checkError = (error, coordinate) => {
100
+ if (!model.errors[error])
101
+ throw new Error(`${coordinate}: unknown GraphQL error ${error}`);
102
+ };
103
+ for (const name of [
104
+ model.queryType,
105
+ model.mutationType,
106
+ model.subscriptionType,
107
+ ]) {
108
+ if (name && !model.types[name])
109
+ throw new Error(`Unknown GraphQL root ${name}`);
110
+ }
111
+ for (const error of model.globalErrors)
112
+ checkError(error, "globalErrors");
113
+ for (const [name, type] of Object.entries(model.types)) {
114
+ for (const [fieldName, field] of Object.entries(type.fields ?? {})) {
115
+ const coordinate = `${name}.${fieldName}`;
116
+ checkType(field.type, coordinate);
117
+ for (const [argName, arg] of Object.entries(field.args))
118
+ checkType(arg.type, `${coordinate}(${argName})`);
119
+ for (const error of field.errors)
120
+ checkError(error, coordinate);
121
+ }
122
+ for (const [fieldName, field] of Object.entries(type.inputFields ?? {}))
123
+ checkType(field.type, `${name}.${fieldName}`);
124
+ for (const member of [
125
+ ...(type.possibleTypes ?? []),
126
+ ...(type.interfaces ?? []),
127
+ ])
128
+ checkType(member, name);
129
+ }
130
+ };
131
+ const literal = (value) => JSON.stringify(value);
132
+ const union = (values) => values.length ? values.join(" | ") : "never";
133
+ const documentation = (description) => description ? `/** ${description.replaceAll("*/", "* /")} */\n` : "";
134
+ /** Emit schema-indexed types and the matching runtime graph from one patched model. */
135
+ export const generateGraphQLClient = (model, options) => {
136
+ validateGraphQLModel(model);
137
+ const inputType = (ref) => {
138
+ if (ref.endsWith("!"))
139
+ return requiredInput(ref.slice(0, -1));
140
+ return `${requiredInput(ref)} | null`;
141
+ };
142
+ const requiredInput = (ref) => {
143
+ if (ref.startsWith("["))
144
+ return `ReadonlyArray<${inputType(ref.slice(1, -1))}>`;
145
+ const type = model.types[ref];
146
+ return type.kind === "INPUT_OBJECT"
147
+ ? `Inputs[${literal(ref)}]`
148
+ : `Scalars[${literal(ref)}]`;
149
+ };
150
+ const argsType = (args) => `{ ${Object.entries(args)
151
+ .map(([name, arg]) => `${literal(name)}${arg.type.endsWith("!") && arg.defaultValue === undefined ? "" : "?"}: ${inputType(arg.type)}`)
152
+ .join("; ")} }`;
153
+ // GraphQL names are not necessarily valid or unoccupied TypeScript symbols.
154
+ // Schema names remain quoted map keys; exported values get stable safe names.
155
+ const occupied = new Set([
156
+ ..."await break case catch class const continue debugger default delete do else enum export extends false finally for function if import in instanceof new null return super switch this throw true try typeof var void while with yield implements interface let package private protected public static arguments eval abstract any as asserts async bigint boolean constructor declare from get global infer intrinsic is keyof module namespace never number object of override readonly require satisfies set string symbol type undefined unique unknown using".split(" "),
157
+ "G",
158
+ "S",
159
+ "Category",
160
+ "Scalars",
161
+ "Inputs",
162
+ "Errors",
163
+ "Types",
164
+ "PossibleTypes",
165
+ "Schema",
166
+ "Selection",
167
+ "Result",
168
+ "SelectedErrors",
169
+ "GraphQLIssue",
170
+ "Report",
171
+ "catchTags",
172
+ "isErrorTag",
173
+ "GraphQLFailure",
174
+ "GraphQLTransportError",
175
+ "GraphQLDecodeError",
176
+ "GraphQLRequestError",
177
+ "UnknownGraphQLError",
178
+ "query",
179
+ "mutation",
180
+ "report",
181
+ "client",
182
+ "schema",
183
+ "errorClasses",
184
+ options.transportName ?? "transport",
185
+ options.requirementsType,
186
+ ]);
187
+ const identifier = (name) => name.replace(/[^A-Za-z0-9_$]/g, "_").replace(/^(?=[0-9])/, "_") ||
188
+ "generated";
189
+ const allocate = (preferred, fallback) => {
190
+ let name = identifier(preferred);
191
+ if (occupied.has(name))
192
+ name = identifier(fallback);
193
+ const base = name;
194
+ for (let suffix = 2; occupied.has(name); suffix++)
195
+ name = `${base}${suffix}`;
196
+ occupied.add(name);
197
+ return name;
198
+ };
199
+ const errorNames = new Map(Object.keys(model.errors).map((tag) => [
200
+ tag,
201
+ allocate(tag, `${identifier(tag)}Error`),
202
+ ]));
203
+ const lines = [
204
+ "// Generated by @distilled.cloud/core/codegen/graphql-client. DO NOT EDIT.",
205
+ 'import * as G from "@distilled.cloud/core/graphql";',
206
+ 'import * as S from "effect/Schema";',
207
+ 'import * as Category from "@distilled.cloud/core/category";',
208
+ `import { ${options.transportName ?? "transport"} } from ${literal(options.transportImport)};`,
209
+ `import type { ${options.requirementsType} } from ${literal(options.requirementsImport)};`,
210
+ `export type { ${options.requirementsType} } from ${literal(options.requirementsImport)};`,
211
+ 'export { catchTags, isErrorTag, GraphQLFailure, GraphQLTransportError, GraphQLDecodeError, GraphQLRequestError, UnknownGraphQLError, type GraphQLIssue, type Report } from "@distilled.cloud/core/graphql";',
212
+ "",
213
+ "export type Scalars = {",
214
+ ];
215
+ for (const [name, type] of Object.entries(model.types)) {
216
+ if (type.kind === "SCALAR" || type.kind === "ENUM")
217
+ lines.push(`${literal(name)}: ${type.kind === "SCALAR" ? (type.scalar ?? "unknown") : union(type.enumValues.map(literal))};`);
218
+ }
219
+ lines.push("}", "export type Inputs = {");
220
+ for (const [name, type] of Object.entries(model.types)) {
221
+ if (type.kind === "INPUT_OBJECT")
222
+ lines.push(documentation(type.description), `${literal(name)}: ${argsType(type.inputFields ?? {})};`);
223
+ }
224
+ lines.push("}");
225
+ const categories = {
226
+ auth: "withAuthError",
227
+ badRequest: "withBadRequestError",
228
+ notFound: "withNotFoundError",
229
+ throttling: "withThrottlingError",
230
+ quota: "withQuotaError",
231
+ server: "withServerError",
232
+ conflict: "withConflictError",
233
+ };
234
+ for (const [tag, error] of Object.entries(model.errors)) {
235
+ const name = errorNames.get(tag);
236
+ const pipes = [
237
+ error.category
238
+ ? categories[error.category] && `Category.${categories[error.category]}`
239
+ : undefined,
240
+ error.retryable
241
+ ? `Category.withRetryable(${error.category === "throttling" ? "{ throttling: true }" : ""})`
242
+ : undefined,
243
+ ].filter(Boolean);
244
+ lines.push(documentation(error.description), `export class ${name} extends S.TaggedError<${name}>()(${literal(tag)}, G.errorFields)${pipes.length ? `.pipe(${pipes.join(", ")})` : ""} {}`);
245
+ }
246
+ lines.push("export type Errors = {");
247
+ for (const [tag, name] of errorNames)
248
+ lines.push(`${literal(tag)}: ${name};`);
249
+ lines.push("}", "export type Types = {");
250
+ for (const [name, type] of Object.entries(model.types)) {
251
+ if (!["OBJECT", "INTERFACE", "UNION"].includes(type.kind))
252
+ continue;
253
+ lines.push(documentation(type.description), `${literal(name)}: {`);
254
+ for (const [fieldName, field] of Object.entries(type.fields ?? {})) {
255
+ lines.push(documentation(field.description), `${literal(fieldName)}: G.Field<${argsType(field.args)}, ${literal(field.type)}, ${union(field.errors.map(literal))}>;`);
256
+ }
257
+ lines.push("};");
258
+ }
259
+ lines.push("}", "export type PossibleTypes = {");
260
+ for (const [name, type] of Object.entries(model.types)) {
261
+ if (type.kind === "INTERFACE" || type.kind === "UNION")
262
+ lines.push(`${literal(name)}: ${union((type.possibleTypes ?? []).map(literal))};`);
263
+ }
264
+ lines.push("}", "export type Schema = {", "types: Types; scalars: Scalars; errors: Errors; possibleTypes: PossibleTypes;", `query: ${literal(model.queryType)};`, `mutation: ${model.mutationType ? literal(model.mutationType) : "never"};`, `subscription: ${model.subscriptionType ? literal(model.subscriptionType) : "never"};`, `globalErrors: ${union(model.globalErrors.map(literal))};`, "};");
265
+ lines.push("export type Selection<Name extends keyof Types> = G.Selection<Schema, Name>;", "export type Result<Name extends string, Select> = G.Result<Schema, Name, Select>;", "export type SelectedErrors<Name extends keyof Types, Select> = G.Errors<Schema, Name, Select>;");
266
+ lines.push(`export const schema: G.GraphQLModel = ${JSON.stringify(model)};`);
267
+ lines.push(`export const errorClasses = { ${[...errorNames].map(([tag, name]) => `${literal(tag)}: ${name}`).join(", ")} };`);
268
+ lines.push(`export const client = G.makeClient<Schema, ${options.requirementsType}>(schema, ${options.transportName ?? "transport"}, errorClasses);`, "export const query = client.query;", "export const mutation = client.mutation;", "export const report = client.report;");
269
+ const operationNames = new Map();
270
+ for (const [kind, name] of [
271
+ ["query", model.queryType],
272
+ ["mutation", model.mutationType],
273
+ ]) {
274
+ for (const field of Object.keys(model.types[name ?? ""]?.fields ?? {})) {
275
+ const exportName = allocate(field, `${kind}${field[0].toUpperCase()}${field.slice(1)}`);
276
+ if (!operationNames.has(field))
277
+ operationNames.set(field, exportName);
278
+ lines.push(`export const ${exportName} = client.operation(${literal(kind)}, ${literal(field)});`);
279
+ }
280
+ }
281
+ for (const [alias, target] of Object.entries(options.operationAliases ?? {})) {
282
+ const targetName = operationNames.get(target);
283
+ // Legacy aliases are optional conveniences; never displace a real export.
284
+ if (targetName &&
285
+ alias !== target &&
286
+ identifier(alias) === alias &&
287
+ !occupied.has(alias)) {
288
+ occupied.add(alias);
289
+ lines.push(`export const ${alias} = ${targetName};`);
290
+ }
291
+ }
292
+ return lines.join("\n") + "\n";
293
+ };
294
+ //# sourceMappingURL=graphql-client.js.map