@redocly/client-generator 0.0.0-snapshot.manual → 0.1.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 (182) hide show
  1. package/README.md +118 -422
  2. package/lib/config-file.d.ts +2 -2
  3. package/lib/config-file.d.ts.map +1 -1
  4. package/lib/config-file.js +0 -18
  5. package/lib/config-file.js.map +1 -1
  6. package/lib/emitters/client-assembly.d.ts.map +1 -1
  7. package/lib/emitters/client-assembly.js +14 -15
  8. package/lib/emitters/client-assembly.js.map +1 -1
  9. package/lib/emitters/descriptor.d.ts.map +1 -1
  10. package/lib/emitters/descriptor.js +10 -29
  11. package/lib/emitters/descriptor.js.map +1 -1
  12. package/lib/emitters/emit-options.d.ts +16 -20
  13. package/lib/emitters/emit-options.d.ts.map +1 -1
  14. package/lib/emitters/emit-options.js +3 -2
  15. package/lib/emitters/emit-options.js.map +1 -1
  16. package/lib/emitters/faker.d.ts.map +1 -1
  17. package/lib/emitters/faker.js +25 -8
  18. package/lib/emitters/faker.js.map +1 -1
  19. package/lib/emitters/identifier.d.ts +6 -0
  20. package/lib/emitters/identifier.d.ts.map +1 -1
  21. package/lib/emitters/identifier.js +11 -1
  22. package/lib/emitters/identifier.js.map +1 -1
  23. package/lib/emitters/inline-runtime.js +1 -1
  24. package/lib/emitters/inline-runtime.js.map +1 -1
  25. package/lib/emitters/mock.d.ts +2 -2
  26. package/lib/emitters/mock.d.ts.map +1 -1
  27. package/lib/emitters/mock.js +59 -37
  28. package/lib/emitters/mock.js.map +1 -1
  29. package/lib/emitters/operation-aliases.d.ts.map +1 -1
  30. package/lib/emitters/operation-aliases.js +6 -0
  31. package/lib/emitters/operation-aliases.js.map +1 -1
  32. package/lib/emitters/operation-signature.d.ts +1 -0
  33. package/lib/emitters/operation-signature.d.ts.map +1 -1
  34. package/lib/emitters/operation-signature.js +11 -3
  35. package/lib/emitters/operation-signature.js.map +1 -1
  36. package/lib/emitters/operation-types.js +1 -1
  37. package/lib/emitters/operation-types.js.map +1 -1
  38. package/lib/emitters/operations.d.ts +2 -2
  39. package/lib/emitters/operations.d.ts.map +1 -1
  40. package/lib/emitters/operations.js +4 -2
  41. package/lib/emitters/operations.js.map +1 -1
  42. package/lib/emitters/pagination.d.ts +14 -7
  43. package/lib/emitters/pagination.d.ts.map +1 -1
  44. package/lib/emitters/pagination.js +70 -37
  45. package/lib/emitters/pagination.js.map +1 -1
  46. package/lib/emitters/reserved-names.d.ts +5 -0
  47. package/lib/emitters/reserved-names.d.ts.map +1 -0
  48. package/lib/emitters/reserved-names.js +134 -0
  49. package/lib/emitters/reserved-names.js.map +1 -0
  50. package/lib/emitters/runtime-sources.d.ts +6 -6
  51. package/lib/emitters/runtime-sources.js +6 -6
  52. package/lib/emitters/runtime-sources.js.map +1 -1
  53. package/lib/emitters/sample.d.ts +13 -1
  54. package/lib/emitters/sample.d.ts.map +1 -1
  55. package/lib/emitters/sample.js +138 -8
  56. package/lib/emitters/sample.js.map +1 -1
  57. package/lib/emitters/setup-bake.d.ts.map +1 -1
  58. package/lib/emitters/setup-bake.js +15 -1
  59. package/lib/emitters/setup-bake.js.map +1 -1
  60. package/lib/emitters/tanstack-query.d.ts +8 -3
  61. package/lib/emitters/tanstack-query.d.ts.map +1 -1
  62. package/lib/emitters/tanstack-query.js +231 -57
  63. package/lib/emitters/tanstack-query.js.map +1 -1
  64. package/lib/emitters/transformers.d.ts.map +1 -1
  65. package/lib/emitters/transformers.js +118 -36
  66. package/lib/emitters/transformers.js.map +1 -1
  67. package/lib/emitters/ts.d.ts.map +1 -1
  68. package/lib/emitters/ts.js +8 -0
  69. package/lib/emitters/ts.js.map +1 -1
  70. package/lib/emitters/types.d.ts +1 -9
  71. package/lib/emitters/types.d.ts.map +1 -1
  72. package/lib/emitters/types.js +4 -6
  73. package/lib/emitters/types.js.map +1 -1
  74. package/lib/emitters/wrapper-support.d.ts.map +1 -1
  75. package/lib/emitters/wrapper-support.js +2 -0
  76. package/lib/emitters/wrapper-support.js.map +1 -1
  77. package/lib/emitters/zod.d.ts.map +1 -1
  78. package/lib/emitters/zod.js +121 -19
  79. package/lib/emitters/zod.js.map +1 -1
  80. package/lib/generate.d.ts +25 -0
  81. package/lib/generate.d.ts.map +1 -0
  82. package/lib/generate.js +119 -0
  83. package/lib/generate.js.map +1 -0
  84. package/lib/generators/index.d.ts.map +1 -1
  85. package/lib/generators/index.js +9 -2
  86. package/lib/generators/index.js.map +1 -1
  87. package/lib/generators/mock.js +1 -1
  88. package/lib/generators/mock.js.map +1 -1
  89. package/lib/generators/resolve.js +6 -1
  90. package/lib/generators/resolve.js.map +1 -1
  91. package/lib/generators/swr.js +1 -1
  92. package/lib/generators/swr.js.map +1 -1
  93. package/lib/generators/tanstack-query.d.ts +9 -8
  94. package/lib/generators/tanstack-query.d.ts.map +1 -1
  95. package/lib/generators/tanstack-query.js +22 -18
  96. package/lib/generators/tanstack-query.js.map +1 -1
  97. package/lib/generators/transformers.d.ts.map +1 -1
  98. package/lib/generators/transformers.js +4 -2
  99. package/lib/generators/transformers.js.map +1 -1
  100. package/lib/generators/types.d.ts +2 -2
  101. package/lib/generators/types.d.ts.map +1 -1
  102. package/lib/index.d.ts +3 -20
  103. package/lib/index.d.ts.map +1 -1
  104. package/lib/index.js +8 -107
  105. package/lib/index.js.map +1 -1
  106. package/lib/intermediate-representation/build.d.ts.map +1 -1
  107. package/lib/intermediate-representation/build.js +25 -17
  108. package/lib/intermediate-representation/build.js.map +1 -1
  109. package/lib/intermediate-representation/model.d.ts +8 -8
  110. package/lib/intermediate-representation/model.d.ts.map +1 -1
  111. package/lib/intermediate-representation/normalize-swagger2.js +27 -2
  112. package/lib/intermediate-representation/normalize-swagger2.js.map +1 -1
  113. package/lib/intermediate-representation/sanitize-identifiers.d.ts +10 -0
  114. package/lib/intermediate-representation/sanitize-identifiers.d.ts.map +1 -1
  115. package/lib/intermediate-representation/sanitize-identifiers.js +79 -20
  116. package/lib/intermediate-representation/sanitize-identifiers.js.map +1 -1
  117. package/lib/loader.d.ts.map +1 -1
  118. package/lib/loader.js +20 -1
  119. package/lib/loader.js.map +1 -1
  120. package/lib/plugin.d.ts +0 -6
  121. package/lib/plugin.d.ts.map +1 -1
  122. package/lib/plugin.js +7 -8
  123. package/lib/plugin.js.map +1 -1
  124. package/lib/runtime/create-client.d.ts +12 -1
  125. package/lib/runtime/create-client.d.ts.map +1 -1
  126. package/lib/runtime/create-client.js +95 -13
  127. package/lib/runtime/create-client.js.map +1 -1
  128. package/lib/runtime/index.js +2 -2
  129. package/lib/runtime/index.js.map +1 -1
  130. package/lib/runtime/paginate.d.ts +25 -2
  131. package/lib/runtime/paginate.d.ts.map +1 -1
  132. package/lib/runtime/paginate.js +95 -5
  133. package/lib/runtime/paginate.js.map +1 -1
  134. package/lib/runtime/parse.d.ts +5 -1
  135. package/lib/runtime/parse.d.ts.map +1 -1
  136. package/lib/runtime/parse.js +29 -3
  137. package/lib/runtime/parse.js.map +1 -1
  138. package/lib/runtime/send.d.ts +1 -1
  139. package/lib/runtime/send.d.ts.map +1 -1
  140. package/lib/runtime/send.js +2 -2
  141. package/lib/runtime/send.js.map +1 -1
  142. package/lib/runtime/sse.d.ts +1 -0
  143. package/lib/runtime/sse.d.ts.map +1 -1
  144. package/lib/runtime/sse.js +9 -9
  145. package/lib/runtime/sse.js.map +1 -1
  146. package/lib/runtime/types.d.ts +31 -6
  147. package/lib/runtime/types.d.ts.map +1 -1
  148. package/lib/types.d.ts +23 -20
  149. package/lib/types.d.ts.map +1 -1
  150. package/package.json +12 -2
  151. package/lib/config.d.ts +0 -63
  152. package/lib/config.d.ts.map +0 -1
  153. package/lib/config.js +0 -2
  154. package/lib/config.js.map +0 -1
  155. package/lib/emitters/client.d.ts +0 -71
  156. package/lib/emitters/client.d.ts.map +0 -1
  157. package/lib/emitters/client.js +0 -28
  158. package/lib/emitters/client.js.map +0 -1
  159. package/lib/emitters/package-client.d.ts +0 -15
  160. package/lib/emitters/package-client.d.ts.map +0 -1
  161. package/lib/emitters/package-client.js +0 -300
  162. package/lib/emitters/package-client.js.map +0 -1
  163. package/lib/writers/index.d.ts +0 -5
  164. package/lib/writers/index.d.ts.map +0 -1
  165. package/lib/writers/index.js +0 -11
  166. package/lib/writers/index.js.map +0 -1
  167. package/lib/writers/single-file-writer.d.ts +0 -8
  168. package/lib/writers/single-file-writer.d.ts.map +0 -1
  169. package/lib/writers/single-file-writer.js +0 -10
  170. package/lib/writers/single-file-writer.js.map +0 -1
  171. package/lib/writers/split-writer.d.ts +0 -14
  172. package/lib/writers/split-writer.d.ts.map +0 -1
  173. package/lib/writers/split-writer.js +0 -23
  174. package/lib/writers/split-writer.js.map +0 -1
  175. package/lib/writers/types.d.ts +0 -31
  176. package/lib/writers/types.d.ts.map +0 -1
  177. package/lib/writers/types.js +0 -2
  178. package/lib/writers/types.js.map +0 -1
  179. package/lib/writers/util.d.ts +0 -14
  180. package/lib/writers/util.d.ts.map +0 -1
  181. package/lib/writers/util.js +0 -14
  182. package/lib/writers/util.js.map +0 -1
@@ -1,16 +1,16 @@
1
- // Auto-pagination resolution: turns config rules and `x-pagination` extensions into the
1
+ // Auto-pagination resolution: turns config rules and `x-redocly-pagination` extensions into the
2
2
  // normalized descriptor `PaginationSpec`, statically VERIFYING each rule fits its
3
3
  // operation (the advance param is a declared query param whose schema fits the style —
4
4
  // string-ish for `cursor`, a numeric scalar for `offset`/`page`; the JSON pointers
5
5
  // resolve over the success response schema). A convention rule that doesn't fit silently skips the
6
6
  // operation; an explicit rule (per-op config or extension) that doesn't fit — and a
7
7
  // malformed rule from ANY source — is a generate-time error. No heuristics, ever.
8
- import { isPlainObject } from '@redocly/openapi-core';
8
+ import { isPlainObject, logger } from '@redocly/openapi-core';
9
9
  import { allOperations, } from '../intermediate-representation/model.js';
10
10
  import { isSseOp } from './sse.js';
11
11
  /**
12
12
  * Resolve one operation's pagination across the three sources (per-op config >
13
- * `x-pagination` > convention); `config.exclude` kills all of them. Returns the
13
+ * `x-redocly-pagination` > convention); `config.exclude` kills all of them. Returns the
14
14
  * normalized spec + the item element schema, `{}` when the operation doesn't paginate
15
15
  * (no source, or a convention that doesn't fit), or an `error` for a malformed rule
16
16
  * (any source) and for an explicit rule that doesn't fit the operation.
@@ -24,7 +24,7 @@ export function resolveOperationPagination(op, model, config) {
24
24
  return applyRule(op, model, perOp, `pagination.operations["${configName}"]`, true);
25
25
  }
26
26
  if (op.paginationExtension !== undefined) {
27
- return applyRule(op, model, op.paginationExtension, 'x-pagination', true);
27
+ return applyRule(op, model, op.paginationExtension, 'x-redocly-pagination', true);
28
28
  }
29
29
  if (config?.style !== undefined) {
30
30
  const { exclude: _exclude, operations: _operations, ...convention } = config;
@@ -65,29 +65,43 @@ function applyRule(op, model, rule, source, explicit) {
65
65
  const misfit = (problem) => explicit ? { error: `${label}: ${problem}` } : {};
66
66
  if (isSseOp(op))
67
67
  return misfit('the operation is a Server-Sent Events stream');
68
- const paramField = valid.style === 'cursor' ? 'cursorParam' : 'offsetParam';
69
- const param = valid.style === 'cursor' ? valid.cursorParam : valid.offsetParam;
70
- const advance = op.queryParams.find((p) => p.name === param);
71
- if (!advance) {
72
- return misfit(`query parameter "${param}" is not declared on the operation`);
73
- }
74
- // The advance param must accept what the runtime sends: the response's cursor
75
- // (string-ish, same predicate as nextCursor) or the incremented number.
76
- const advanceSchema = deref(advance.schema, model);
77
- const advanceFits = advanceSchema !== undefined &&
78
- (valid.style === 'cursor'
79
- ? isStringish(advanceSchema, model)
80
- : advanceSchema.kind === 'scalar' &&
81
- (advanceSchema.scalar === 'number' || advanceSchema.scalar === 'integer'));
82
- if (!advanceFits) {
83
- const expected = valid.style === 'cursor' ? 'a string' : 'a number';
84
- return misfit(`the "${paramField}" query parameter "${param}" must accept ${expected} (got ${describeSchema(advanceSchema)})`);
68
+ if (valid.style !== 'link') {
69
+ const paramField = valid.style === 'cursor' ? 'cursorParam' : 'offsetParam';
70
+ const param = valid.style === 'cursor' ? valid.cursorParam : valid.offsetParam;
71
+ const advance = op.queryParams.find((p) => p.name === param);
72
+ if (!advance) {
73
+ return misfit(`query parameter "${param}" is not declared on the operation`);
74
+ }
75
+ // The advance param must accept what the runtime sends: the response's cursor
76
+ // (string-ish, same predicate as nextCursor) or the incremented number.
77
+ const advanceSchema = deref(advance.schema, model);
78
+ const advanceFits = advanceSchema !== undefined &&
79
+ (valid.style === 'cursor'
80
+ ? isStringish(advanceSchema, model)
81
+ : advanceSchema.kind === 'scalar' &&
82
+ (advanceSchema.scalar === 'number' || advanceSchema.scalar === 'integer'));
83
+ if (!advanceFits) {
84
+ const expected = valid.style === 'cursor' ? 'a string' : 'a number';
85
+ return misfit(`the "${paramField}" query parameter "${param}" must accept ${expected} (got ${describeSchema(advanceSchema)})`);
86
+ }
85
87
  }
86
88
  // The page the pointers address is the operation's primary JSON success response —
87
89
  // the same response `computeResponse` types (JSON preferred over other content types).
88
90
  const page = op.successResponses.find((r) => r.contentType.toLowerCase().includes('json'));
89
91
  if (!page)
90
92
  return misfit('the operation has no JSON success response');
93
+ if (valid.style === 'link') {
94
+ // The declared `Link` header is the structural fit signal: a convention rule applies
95
+ // only to operations that document it; an explicit rule applies regardless (a spec
96
+ // often under-documents headers) but says so, since the runtime then depends on an
97
+ // undocumented behavior.
98
+ const documentsLink = page.headers?.includes('link') === true;
99
+ if (!documentsLink && !explicit)
100
+ return {};
101
+ if (!documentsLink) {
102
+ logger.warn(`generate-client: ${label.toLowerCase()} follows the Link header, but the success response does not document one.\n`);
103
+ }
104
+ }
91
105
  const itemsTarget = resolveSchemaPointer(page.schema, valid.items, model);
92
106
  if (itemsTarget === undefined) {
93
107
  return misfit(`the "items" pointer "${valid.items}" does not resolve in the success response schema`);
@@ -103,17 +117,30 @@ function applyRule(op, model, rule, source, explicit) {
103
117
  if (!isStringish(cursorTarget, model)) {
104
118
  return misfit(`the "nextCursor" pointer "${valid.nextCursor}" must point at a string (got ${cursorTarget.kind})`);
105
119
  }
120
+ if (valid.hasMore !== undefined) {
121
+ const moreTarget = resolveSchemaPointer(page.schema, valid.hasMore, model);
122
+ if (moreTarget === undefined) {
123
+ return misfit(`the "hasMore" pointer "${valid.hasMore}" does not resolve in the success response schema`);
124
+ }
125
+ if (moreTarget.kind !== 'scalar' || moreTarget.scalar !== 'boolean') {
126
+ return misfit(`the "hasMore" pointer "${valid.hasMore}" must point at a boolean (got ${moreTarget.kind})`);
127
+ }
128
+ }
106
129
  }
107
- return {
108
- spec: {
109
- style: valid.style,
110
- param,
111
- ...(valid.limitParam !== undefined ? { limitParam: valid.limitParam } : {}),
112
- ...(valid.style === 'cursor' ? { nextCursor: valid.nextCursor } : {}),
130
+ const limitParam = valid.limitParam !== undefined ? { limitParam: valid.limitParam } : {};
131
+ const spec = valid.style === 'cursor'
132
+ ? {
133
+ style: 'cursor',
134
+ param: valid.cursorParam,
135
+ ...limitParam,
136
+ nextCursor: valid.nextCursor,
137
+ ...(valid.hasMore !== undefined ? { hasMore: valid.hasMore } : {}),
113
138
  items: valid.items,
114
- },
115
- itemSchema: itemsTarget.items,
116
- };
139
+ }
140
+ : valid.style === 'link'
141
+ ? { style: 'link', ...limitParam, items: valid.items }
142
+ : { style: valid.style, param: valid.offsetParam, ...limitParam, items: valid.items };
143
+ return { spec, itemSchema: itemsTarget.items };
117
144
  }
118
145
  /**
119
146
  * The rule's structural problem, or `undefined` when it is a well-formed
@@ -123,12 +150,12 @@ function applyRule(op, model, rule, source, explicit) {
123
150
  function ruleShapeProblem(rule) {
124
151
  if (!isPlainObject(rule))
125
152
  return 'the rule must be an object';
126
- const { style, cursorParam, nextCursor, offsetParam, limitParam, items } = rule;
127
- if (style !== 'cursor' && style !== 'offset' && style !== 'page') {
128
- return `"style" must be one of "cursor" | "offset" | "page" (got ${JSON.stringify(style)})`;
153
+ const { style, cursorParam, nextCursor, hasMore, offsetParam, limitParam, items } = rule;
154
+ if (style !== 'cursor' && style !== 'offset' && style !== 'page' && style !== 'link') {
155
+ return `"style" must be one of "cursor" | "offset" | "page" | "link" (got ${JSON.stringify(style)})`;
129
156
  }
130
- if (typeof items !== 'string' || !items.startsWith('/')) {
131
- return '"items" must be a JSON pointer starting with "/"';
157
+ if (typeof items !== 'string' || (items !== '' && !items.startsWith('/'))) {
158
+ return '"items" must be a JSON pointer starting with "/" (or "" when the response body is the item array itself)';
132
159
  }
133
160
  if (style === 'cursor') {
134
161
  if (typeof cursorParam !== 'string' || cursorParam === '') {
@@ -137,10 +164,16 @@ function ruleShapeProblem(rule) {
137
164
  if (typeof nextCursor !== 'string' || !nextCursor.startsWith('/')) {
138
165
  return 'cursor style requires a "nextCursor" JSON pointer starting with "/"';
139
166
  }
167
+ if (hasMore !== undefined && (typeof hasMore !== 'string' || !hasMore.startsWith('/'))) {
168
+ return '"hasMore" must be a JSON pointer starting with "/"';
169
+ }
140
170
  }
141
- else if (typeof offsetParam !== 'string' || offsetParam === '') {
142
- return `${style} style requires an "offsetParam" query parameter name`;
171
+ else if (style === 'offset' || style === 'page') {
172
+ if (typeof offsetParam !== 'string' || offsetParam === '') {
173
+ return `${style} style requires an "offsetParam" query parameter name`;
174
+ }
143
175
  }
176
+ // `link` needs no advance parameter: the runtime follows the `Link` header.
144
177
  if (limitParam !== undefined && typeof limitParam !== 'string') {
145
178
  return '"limitParam" must be a query parameter name';
146
179
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/emitters/pagination.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/emitters/pagination.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Module-scope identifiers every package-mode sdk file emits or imports — never renamed. */
2
+ export declare const WIRING_NAMES: string[];
3
+ /** Every name the generated modules reserve: wiring + satellite + globals + runtime declarations. */
4
+ export declare function reservedModuleNames(): Set<string>;
5
+ //# sourceMappingURL=reserved-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved-names.d.ts","sourceRoot":"","sources":["../../src/emitters/reserved-names.ts"],"names":[],"mappings":"AAaA,6FAA6F;AAC7F,eAAO,MAAM,YAAY,UAsBxB,CAAC;AA4EF,qGAAqG;AACrG,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,CAAC,CAQjD"}
@@ -0,0 +1,134 @@
1
+ // The identifiers generated modules already declare, import, or reference — no
2
+ // schema or operation may use them as its emitted name. Four layers: the sdk wiring
3
+ // the assembly emits, the bindings the satellite generators (zod/mock/tanstack/swr)
4
+ // import or declare, the platform globals the emitted code references bare (a
5
+ // same-named schema TYPE would shadow them), and every top-level declaration of the
6
+ // runtime sources (in embed mode ALL of them — even module-local helpers — share
7
+ // the module scope with the generated code). The runtime layer is parsed from
8
+ // `RUNTIME_SOURCES`, so it tracks the real runtime with no hand-maintained list to
9
+ // drift.
10
+ import { RUNTIME_SOURCES } from './runtime-sources.js';
11
+ import { parseStatements, ts } from './ts.js';
12
+ /** Module-scope identifiers every package-mode sdk file emits or imports — never renamed. */
13
+ export const WIRING_NAMES = [
14
+ 'client',
15
+ 'OPERATIONS',
16
+ 'Ops',
17
+ 'OperationId',
18
+ 'OperationPath',
19
+ 'OperationTag',
20
+ 'createClient',
21
+ 'mergeSetup',
22
+ 'ApiError',
23
+ 'configure',
24
+ 'use',
25
+ 'auth',
26
+ 'ClientConfig',
27
+ 'RequestOptions',
28
+ 'SseOptions',
29
+ 'Middleware',
30
+ 'OperationDescriptor',
31
+ 'ServerSentEvent',
32
+ 'Result',
33
+ 'TokenProvider',
34
+ '__redoclySetup',
35
+ ];
36
+ // What the satellite modules import (msw, zod, faker, tanstack, swr) or declare
37
+ // (`handlers`, the transformers' `__Writable` cast helper) alongside type/function
38
+ // imports from the sdk entry.
39
+ const SATELLITE_NAMES = [
40
+ 'z',
41
+ 'http',
42
+ 'HttpResponse',
43
+ 'handlers',
44
+ 'faker',
45
+ 'queryOptions',
46
+ 'useSWR',
47
+ 'useSWRMutation',
48
+ '__Writable',
49
+ ];
50
+ // Platform globals and TS utility/lib types the emitted code references by bare name —
51
+ // `Date` fields under `--date-type Date`, `Blob` for binary, `Record`/`Omit`/`Partial`
52
+ // in emitted types, `Object.assign` in the sugar, and every free identifier of the
53
+ // embedded runtime (values AND types: in inline mode a same-named schema — or a string
54
+ // enum's const companion — shares the module scope and would shadow them, breaking
55
+ // auth, URL building, or JSON parsing at runtime). `reserved-names.test.ts` recomputes
56
+ // the runtime's free identifiers with a scope walk and fails when this list falls
57
+ // behind. `undefined` is here because `export type undefined` would not even parse.
58
+ const GLOBAL_NAMES = [
59
+ 'AbortSignal',
60
+ 'Array',
61
+ 'ArrayBuffer',
62
+ 'ArrayBufferView',
63
+ 'AsyncGenerator',
64
+ 'Blob',
65
+ 'BodyInit',
66
+ 'Boolean',
67
+ 'DOMException',
68
+ 'Date',
69
+ 'Error',
70
+ 'Extract',
71
+ 'FormData',
72
+ 'Headers',
73
+ 'HeadersInit',
74
+ 'JSON',
75
+ 'Map',
76
+ 'Math',
77
+ 'NonNullable',
78
+ 'Number',
79
+ 'Object',
80
+ 'Omit',
81
+ 'Partial',
82
+ 'Promise',
83
+ 'ReadableStream',
84
+ 'Record',
85
+ 'RegExp',
86
+ 'RegExpExecArray',
87
+ 'Request',
88
+ 'RequestInit',
89
+ 'Response',
90
+ 'Set',
91
+ 'String',
92
+ 'TextDecoder',
93
+ 'TextEncoder',
94
+ 'TypeError',
95
+ 'URL',
96
+ 'URLSearchParams',
97
+ 'btoa',
98
+ 'clearTimeout',
99
+ 'decodeURIComponent',
100
+ 'encodeURIComponent',
101
+ 'fetch',
102
+ 'globalThis',
103
+ 'setTimeout',
104
+ 'undefined',
105
+ ];
106
+ let cached;
107
+ /** Every name the generated modules reserve: wiring + satellite + globals + runtime declarations. */
108
+ export function reservedModuleNames() {
109
+ if (cached === undefined) {
110
+ cached = new Set([...WIRING_NAMES, ...SATELLITE_NAMES, ...GLOBAL_NAMES]);
111
+ for (const source of Object.values(RUNTIME_SOURCES)) {
112
+ for (const statement of parseStatements(source))
113
+ collectDeclaredName(statement, cached);
114
+ }
115
+ }
116
+ return cached;
117
+ }
118
+ function collectDeclaredName(statement, into) {
119
+ if ((ts.isFunctionDeclaration(statement) ||
120
+ ts.isClassDeclaration(statement) ||
121
+ ts.isInterfaceDeclaration(statement) ||
122
+ ts.isTypeAliasDeclaration(statement) ||
123
+ ts.isEnumDeclaration(statement)) &&
124
+ statement.name !== undefined) {
125
+ into.add(statement.name.text);
126
+ }
127
+ else if (ts.isVariableStatement(statement)) {
128
+ for (const declaration of statement.declarationList.declarations) {
129
+ if (ts.isIdentifier(declaration.name))
130
+ into.add(declaration.name.text);
131
+ }
132
+ }
133
+ }
134
+ //# sourceMappingURL=reserved-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved-names.js","sourceRoot":"","sources":["../../src/emitters/reserved-names.ts"],"names":[],"mappings":"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"}