@typespec/compiler 0.65.0-dev.9 → 0.65.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 (164) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/core/binder.d.ts.map +1 -1
  3. package/dist/src/core/binder.js +1 -0
  4. package/dist/src/core/binder.js.map +1 -1
  5. package/dist/src/core/checker.d.ts.map +1 -1
  6. package/dist/src/core/checker.js +17 -15
  7. package/dist/src/core/checker.js.map +1 -1
  8. package/dist/src/core/decorator-utils.d.ts.map +1 -1
  9. package/dist/src/core/decorator-utils.js +3 -1
  10. package/dist/src/core/decorator-utils.js.map +1 -1
  11. package/dist/src/core/deprecation.d.ts.map +1 -1
  12. package/dist/src/core/deprecation.js +1 -3
  13. package/dist/src/core/deprecation.js.map +1 -1
  14. package/dist/src/core/engine.d.ts +6 -0
  15. package/dist/src/core/engine.d.ts.map +1 -0
  16. package/dist/src/core/engine.js +7 -0
  17. package/dist/src/core/engine.js.map +1 -0
  18. package/dist/src/core/helpers/projected-names-utils.d.ts.map +1 -1
  19. package/dist/src/core/helpers/projected-names-utils.js.map +1 -1
  20. package/dist/src/core/install.d.ts.map +1 -1
  21. package/dist/src/core/install.js +20 -0
  22. package/dist/src/core/install.js.map +1 -1
  23. package/dist/src/core/intrinsic-type-state.d.ts.map +1 -1
  24. package/dist/src/core/intrinsic-type-state.js +1 -3
  25. package/dist/src/core/intrinsic-type-state.js.map +1 -1
  26. package/dist/src/core/messages.d.ts +2 -20
  27. package/dist/src/core/messages.d.ts.map +1 -1
  28. package/dist/src/core/messages.js +0 -6
  29. package/dist/src/core/messages.js.map +1 -1
  30. package/dist/src/core/name-resolver.d.ts.map +1 -1
  31. package/dist/src/core/name-resolver.js +1 -0
  32. package/dist/src/core/name-resolver.js.map +1 -1
  33. package/dist/src/core/parser.d.ts.map +1 -1
  34. package/dist/src/core/parser.js +1 -0
  35. package/dist/src/core/parser.js.map +1 -1
  36. package/dist/src/core/program.d.ts +2 -0
  37. package/dist/src/core/program.d.ts.map +1 -1
  38. package/dist/src/core/program.js +2 -0
  39. package/dist/src/core/program.js.map +1 -1
  40. package/dist/src/core/projected-program.d.ts.map +1 -1
  41. package/dist/src/core/projected-program.js.map +1 -1
  42. package/dist/src/core/projection-members.d.ts.map +1 -1
  43. package/dist/src/core/projection-members.js +1 -0
  44. package/dist/src/core/projection-members.js.map +1 -1
  45. package/dist/src/core/projector.d.ts.map +1 -1
  46. package/dist/src/core/projector.js +1 -5
  47. package/dist/src/core/projector.js.map +1 -1
  48. package/dist/src/core/semantic-walker.d.ts +4 -0
  49. package/dist/src/core/semantic-walker.d.ts.map +1 -1
  50. package/dist/src/core/semantic-walker.js +5 -0
  51. package/dist/src/core/semantic-walker.js.map +1 -1
  52. package/dist/src/core/state-accessors.d.ts.map +1 -1
  53. package/dist/src/core/state-accessors.js.map +1 -1
  54. package/dist/src/core/type-relation-checker.d.ts.map +1 -1
  55. package/dist/src/core/type-relation-checker.js +1 -0
  56. package/dist/src/core/type-relation-checker.js.map +1 -1
  57. package/dist/src/core/types.d.ts +7 -0
  58. package/dist/src/core/types.d.ts.map +1 -1
  59. package/dist/src/core/types.js.map +1 -1
  60. package/dist/src/core/visibility/core.d.ts.map +1 -1
  61. package/dist/src/core/visibility/core.js +7 -6
  62. package/dist/src/core/visibility/core.js.map +1 -1
  63. package/dist/src/experimental/freeze-graph.d.ts +3 -0
  64. package/dist/src/experimental/freeze-graph.d.ts.map +1 -0
  65. package/dist/src/experimental/freeze-graph.js +28 -0
  66. package/dist/src/experimental/freeze-graph.js.map +1 -0
  67. package/dist/src/experimental/index.d.ts +6 -2
  68. package/dist/src/experimental/index.d.ts.map +1 -1
  69. package/dist/src/experimental/index.js +6 -2
  70. package/dist/src/experimental/index.js.map +1 -1
  71. package/dist/src/experimental/mutators.d.ts +5 -3
  72. package/dist/src/experimental/mutators.d.ts.map +1 -1
  73. package/dist/src/experimental/mutators.js +283 -52
  74. package/dist/src/experimental/mutators.js.map +1 -1
  75. package/dist/src/experimental/realm.d.ts.map +1 -1
  76. package/dist/src/experimental/realm.js +5 -0
  77. package/dist/src/experimental/realm.js.map +1 -1
  78. package/dist/src/experimental/typekit/kits/literal.d.ts +61 -52
  79. package/dist/src/experimental/typekit/kits/literal.d.ts.map +1 -1
  80. package/dist/src/experimental/typekit/kits/literal.js.map +1 -1
  81. package/dist/src/experimental/typekit/kits/model-property.d.ts +11 -3
  82. package/dist/src/experimental/typekit/kits/model-property.d.ts.map +1 -1
  83. package/dist/src/experimental/typekit/kits/model-property.js.map +1 -1
  84. package/dist/src/experimental/typekit/kits/model.d.ts +41 -15
  85. package/dist/src/experimental/typekit/kits/model.d.ts.map +1 -1
  86. package/dist/src/experimental/typekit/kits/model.js +4 -0
  87. package/dist/src/experimental/typekit/kits/model.js.map +1 -1
  88. package/dist/src/experimental/typekit/kits/scalar.d.ts +349 -344
  89. package/dist/src/experimental/typekit/kits/scalar.d.ts.map +1 -1
  90. package/dist/src/experimental/typekit/kits/scalar.js.map +1 -1
  91. package/dist/src/experimental/typekit/kits/type.d.ts +5 -4
  92. package/dist/src/experimental/typekit/kits/type.d.ts.map +1 -1
  93. package/dist/src/experimental/typekit/kits/type.js +19 -38
  94. package/dist/src/experimental/typekit/kits/type.js.map +1 -1
  95. package/dist/src/experimental/typekit/kits/union-variant.d.ts +28 -15
  96. package/dist/src/experimental/typekit/kits/union-variant.d.ts.map +1 -1
  97. package/dist/src/experimental/typekit/kits/union-variant.js.map +1 -1
  98. package/dist/src/experimental/typekit/kits/union.d.ts +39 -30
  99. package/dist/src/experimental/typekit/kits/union.d.ts.map +1 -1
  100. package/dist/src/experimental/typekit/kits/union.js.map +1 -1
  101. package/dist/src/formatter/print/printer.d.ts.map +1 -1
  102. package/dist/src/formatter/print/printer.js.map +1 -1
  103. package/dist/src/init/init.d.ts +3 -2
  104. package/dist/src/init/init.d.ts.map +1 -1
  105. package/dist/src/init/init.js +8 -3
  106. package/dist/src/init/init.js.map +1 -1
  107. package/dist/src/init/scaffold.d.ts +2 -1
  108. package/dist/src/init/scaffold.d.ts.map +1 -1
  109. package/dist/src/init/scaffold.js +1 -1
  110. package/dist/src/init/scaffold.js.map +1 -1
  111. package/dist/src/lib/decorators.d.ts +0 -2
  112. package/dist/src/lib/decorators.d.ts.map +1 -1
  113. package/dist/src/lib/decorators.js +15 -26
  114. package/dist/src/lib/decorators.js.map +1 -1
  115. package/dist/src/lib/encoded-names.js +3 -3
  116. package/dist/src/lib/encoded-names.js.map +1 -1
  117. package/dist/src/lib/examples.js +5 -1
  118. package/dist/src/lib/examples.js.map +1 -1
  119. package/dist/src/lib/key.d.ts.map +1 -1
  120. package/dist/src/lib/key.js +3 -2
  121. package/dist/src/lib/key.js.map +1 -1
  122. package/dist/src/lib/paging.js +3 -3
  123. package/dist/src/lib/paging.js.map +1 -1
  124. package/dist/src/lib/service.d.ts.map +1 -1
  125. package/dist/src/lib/service.js +3 -2
  126. package/dist/src/lib/service.js.map +1 -1
  127. package/dist/src/lib/utils.d.ts +6 -3
  128. package/dist/src/lib/utils.d.ts.map +1 -1
  129. package/dist/src/lib/utils.js +7 -10
  130. package/dist/src/lib/utils.js.map +1 -1
  131. package/dist/src/lib/visibility.d.ts.map +1 -1
  132. package/dist/src/lib/visibility.js +3 -2
  133. package/dist/src/lib/visibility.js.map +1 -1
  134. package/dist/src/module-resolver/esm/resolve-package-exports.js +2 -2
  135. package/dist/src/module-resolver/esm/resolve-package-exports.js.map +1 -1
  136. package/dist/src/module-resolver/esm/resolve-package-imports.d.ts +5 -0
  137. package/dist/src/module-resolver/esm/resolve-package-imports.d.ts.map +1 -0
  138. package/dist/src/module-resolver/esm/resolve-package-imports.js +26 -0
  139. package/dist/src/module-resolver/esm/resolve-package-imports.js.map +1 -0
  140. package/dist/src/module-resolver/esm/utils.d.ts +4 -1
  141. package/dist/src/module-resolver/esm/utils.d.ts.map +1 -1
  142. package/dist/src/module-resolver/esm/utils.js +5 -0
  143. package/dist/src/module-resolver/esm/utils.js.map +1 -1
  144. package/dist/src/module-resolver/module-resolver.d.ts +2 -0
  145. package/dist/src/module-resolver/module-resolver.d.ts.map +1 -1
  146. package/dist/src/module-resolver/module-resolver.js +55 -3
  147. package/dist/src/module-resolver/module-resolver.js.map +1 -1
  148. package/dist/src/types/package-json.d.ts +19 -2
  149. package/dist/src/types/package-json.d.ts.map +1 -1
  150. package/dist/src/utils/index.d.ts +1 -0
  151. package/dist/src/utils/index.d.ts.map +1 -1
  152. package/dist/src/utils/index.js +1 -0
  153. package/dist/src/utils/index.js.map +1 -1
  154. package/dist/src/{experimental → utils}/state-accessor.d.ts +2 -4
  155. package/dist/src/utils/state-accessor.d.ts.map +1 -0
  156. package/dist/src/{experimental → utils}/state-accessor.js +2 -4
  157. package/dist/src/utils/state-accessor.js.map +1 -0
  158. package/lib/std/projected-names.tsp +5 -5
  159. package/package.json +11 -6
  160. package/templates/__snapshots__/rest/main.tsp +13 -7
  161. package/templates/rest/main.tsp +13 -7
  162. package/templates/scaffolding.json +7 -7
  163. package/dist/src/experimental/state-accessor.d.ts.map +0 -1
  164. package/dist/src/experimental/state-accessor.js.map +0 -1
@@ -1,4 +1,7 @@
1
+ import { compilerAssert, getLocationContext } from "../core/index.js";
2
+ import { isTemplateInstance, isType } from "../core/type-utils.js";
1
3
  import { CustomKeyMap } from "../emitter-framework/custom-key-map.js";
4
+ import { mutate } from "../utils/misc.js";
2
5
  import { Realm } from "./realm.js";
3
6
  import { $ } from "./typekit/index.js";
4
7
  /**
@@ -26,6 +29,26 @@ export var MutatorFlow;
26
29
  */
27
30
  MutatorFlow[MutatorFlow["DoNotRecur"] = 2] = "DoNotRecur";
28
31
  })(MutatorFlow || (MutatorFlow = {}));
32
+ /**
33
+ * Determines if a type is mutable.
34
+ *
35
+ * @experimental
36
+ */
37
+ function isMutableTypeWithNamespace(type) {
38
+ switch (type.kind) {
39
+ case "TemplateParameter":
40
+ case "Intrinsic":
41
+ case "Function":
42
+ case "Decorator":
43
+ case "FunctionParameter":
44
+ case "Object":
45
+ case "Projection":
46
+ return false;
47
+ default:
48
+ void type;
49
+ return true;
50
+ }
51
+ }
29
52
  /**
30
53
  * Determines if a type is mutable.
31
54
  *
@@ -74,7 +97,14 @@ const seen = new CustomKeyMap(([type, mutators]) => {
74
97
  * @experimental
75
98
  */
76
99
  export function mutateSubgraphWithNamespace(program, mutators, type) {
77
- return mutateSubgraph(program, mutators, type);
100
+ const engine = createMutatorEngine(program, mutators, {
101
+ mutateNamespaces: true,
102
+ });
103
+ const mutated = engine.mutate(type);
104
+ if (mutated === type) {
105
+ return { realm: null, type };
106
+ }
107
+ return { realm: engine.realm, type: mutated };
78
108
  }
79
109
  /**
80
110
  * Mutate the type graph.
@@ -102,25 +132,41 @@ export function mutateSubgraphWithNamespace(program, mutators, type) {
102
132
  * @experimental
103
133
  */
104
134
  export function mutateSubgraph(program, mutators, type) {
105
- const realm = new Realm(program, "realm for mutation");
106
- const interstitialFunctions = [];
107
- const mutated = mutateSubgraphWorker(type, new Set(mutators));
135
+ const engine = createMutatorEngine(program, mutators, {
136
+ mutateNamespaces: false,
137
+ });
138
+ const mutated = engine.mutate(type);
108
139
  if (mutated === type) {
109
140
  return { realm: null, type };
110
141
  }
111
- else {
112
- return { realm, type: mutated };
142
+ return { realm: engine.realm, type: mutated };
143
+ }
144
+ function createMutatorEngine(program, mutators, options) {
145
+ const realm = new Realm(program, `Mutator realm ${mutators.map((m) => m.name).join(", ")}`);
146
+ const interstitialFunctions = [];
147
+ let preparingNamespace = false;
148
+ const muts = new Set(mutators);
149
+ const postVisits = [];
150
+ const namespacesVisitedContent = new Set();
151
+ // If we are mutating namespace we need to make sure we mutate everything first
152
+ if (options.mutateNamespaces) {
153
+ preparingNamespace = true;
154
+ // Prepare namespaces first
155
+ mutateSubgraphWorker(program.getGlobalNamespaceType(), muts);
156
+ preparingNamespace = false;
157
+ postVisits.forEach((visit) => visit());
113
158
  }
114
- function mutateSubgraphWorker(type, activeMutators) {
115
- let existing = seen.get([type, activeMutators]);
116
- if (existing) {
117
- clearInterstitialFunctions();
118
- return existing;
119
- }
120
- let clone = null;
159
+ return {
160
+ realm,
161
+ mutate: (type) => {
162
+ return mutateSubgraphWorker(type, muts);
163
+ },
164
+ };
165
+ /** Resolve the mutators to apply. */
166
+ function resolveMutators(activeMutators, type) {
121
167
  const mutatorsWithOptions = [];
122
- // step 1: see what mutators to run
123
168
  const newMutators = new Set(activeMutators.values());
169
+ // step 1: see what mutators to run
124
170
  for (const mutator of activeMutators) {
125
171
  const record = mutator[type.kind];
126
172
  if (!record) {
@@ -165,13 +211,47 @@ export function mutateSubgraph(program, mutators, type) {
165
211
  mutatorsWithOptions.push({ mutator, mutationFn, replaceFn });
166
212
  }
167
213
  }
214
+ return { mutatorsWithOptions, newMutators };
215
+ }
216
+ function applyMutations(type, clone, mutatorsWithOptions) {
217
+ let resolved = clone;
218
+ for (const { mutationFn, replaceFn } of mutatorsWithOptions) {
219
+ // todo: handle replace earlier in the mutation chain
220
+ const result = (mutationFn ?? replaceFn)(type, resolved, program, realm);
221
+ if (replaceFn && result !== undefined) {
222
+ resolved = result;
223
+ }
224
+ }
225
+ return resolved;
226
+ }
227
+ function mutateSubgraphWorker(type, activeMutators, mutateSubNamespace = true) {
228
+ let existing = seen.get([type, activeMutators]);
229
+ if (existing) {
230
+ if (mutateSubNamespace &&
231
+ existing.kind === "Namespace" &&
232
+ !namespacesVisitedContent.has(existing)) {
233
+ namespacesVisitedContent.add(existing);
234
+ mutateSubMap(existing, "namespaces", true, activeMutators);
235
+ }
236
+ clearInterstitialFunctions();
237
+ return existing;
238
+ }
239
+ // Mutating compiler types breaks a lot of things in the type checker. It is better to keep any of those as they are.
240
+ if (getLocationContext(program, type).type === "compiler" && !isTemplateInstance(type)) {
241
+ return type;
242
+ }
243
+ let clone = null;
244
+ const { mutatorsWithOptions, newMutators } = resolveMutators(activeMutators, type);
168
245
  const mutatorsToApply = mutatorsWithOptions.map((v) => v.mutator);
246
+ let mutating = false;
169
247
  // if we have no mutators to apply, let's bail out.
170
248
  if (mutatorsWithOptions.length === 0) {
171
249
  if (newMutators.size > 0) {
172
250
  // we might need to clone this type later if something in our subgraph needs mutated.
173
251
  interstitialFunctions.push(initializeClone);
252
+ seen.set([type, activeMutators], type);
174
253
  visitSubgraph();
254
+ visitParents();
175
255
  interstitialFunctions.pop();
176
256
  return clone ?? type;
177
257
  }
@@ -180,31 +260,44 @@ export function mutateSubgraph(program, mutators, type) {
180
260
  return type;
181
261
  }
182
262
  }
263
+ clearInterstitialFunctions();
183
264
  // step 2: see if we need to mutate based on the set of mutators we're actually going to run
184
265
  existing = seen.get([type, mutatorsToApply]);
185
266
  if (existing) {
186
- clearInterstitialFunctions();
187
267
  return existing;
188
268
  }
189
269
  // step 3: run the mutators
190
- clearInterstitialFunctions();
191
270
  initializeClone();
192
- for (const { mutationFn, replaceFn } of mutatorsWithOptions) {
193
- // todo: handle replace earlier in the mutation chain
194
- const result = (mutationFn ?? replaceFn)(type, clone, program, realm);
195
- if (replaceFn && result !== undefined) {
196
- clone = result;
197
- seen.set([type, activeMutators], clone);
198
- seen.set([type, mutatorsToApply], clone);
199
- }
271
+ const result = applyMutations(type, clone, mutatorsWithOptions);
272
+ if (result !== clone) {
273
+ clone = result;
274
+ seen.set([type, activeMutators], clone);
275
+ seen.set([type, mutatorsToApply], clone);
200
276
  }
201
277
  if (newMutators.size > 0) {
202
- visitSubgraph();
278
+ if (preparingNamespace && type.kind === "Namespace") {
279
+ compilerAssert(mutating, "Cannot be preparing namespaces and not have cloned it.");
280
+ prepareNamespace(clone);
281
+ postVisits.push(() => visitNamespaceContents(clone));
282
+ }
283
+ else {
284
+ visitSubgraph();
285
+ }
286
+ }
287
+ if (type.isFinished) {
288
+ $(realm).type.finishType(clone);
289
+ }
290
+ if (type.kind === "Namespace" && mutateSubNamespace) {
291
+ compilerAssert(mutating, "Cannot be preparing namespaces and not have cloned it.");
292
+ visitSubNamespaces(clone);
293
+ }
294
+ if (type.kind !== "Namespace") {
295
+ visitParents();
203
296
  }
204
- $(realm).type.finishType(clone);
205
297
  return clone;
206
298
  function initializeClone() {
207
299
  clone = $(realm).type.clone(type);
300
+ mutating = true;
208
301
  seen.set([type, activeMutators], clone);
209
302
  seen.set([type, mutatorsToApply], clone);
210
303
  }
@@ -214,45 +307,183 @@ export function mutateSubgraph(program, mutators, type) {
214
307
  }
215
308
  interstitialFunctions.length = 0;
216
309
  }
310
+ function mutateNamespaceProperty(root) {
311
+ if (!options.mutateNamespaces) {
312
+ return;
313
+ }
314
+ if ("namespace" in root && root.namespace) {
315
+ const newNs = mutateSubgraphWorker(root.namespace, newMutators, false);
316
+ compilerAssert(newNs.kind === "Namespace", `Expected to be mutated to a namespace`);
317
+ clone.namespace = newNs;
318
+ }
319
+ }
320
+ function prepareNamespace(root) {
321
+ visitDecorators(root, true, newMutators);
322
+ mutateNamespaceProperty(root);
323
+ }
324
+ function visitSubNamespaces(type) {
325
+ namespacesVisitedContent.add(type);
326
+ mutateSubMap(type, "namespaces", true, newMutators);
327
+ }
328
+ function visitNamespaceContents(root) {
329
+ mutateSubMap(root, "models", mutating, newMutators);
330
+ mutateSubMap(root, "operations", mutating, newMutators);
331
+ mutateSubMap(root, "interfaces", mutating, newMutators);
332
+ mutateSubMap(root, "enums", mutating, newMutators);
333
+ mutateSubMap(root, "unions", mutating, newMutators);
334
+ mutateSubMap(root, "scalars", mutating, newMutators);
335
+ }
336
+ function visitModel(root) {
337
+ mutateSubMap(root, "properties", mutating, newMutators);
338
+ if (root.indexer) {
339
+ const res = mutateSubgraphWorker(root.indexer.value, newMutators);
340
+ if (clone) {
341
+ clone.indexer.value = res;
342
+ }
343
+ }
344
+ mutateProperty(root, "baseModel", mutating, newMutators);
345
+ mutateSubArray(root, "derivedModels", mutating, newMutators);
346
+ }
217
347
  function visitSubgraph() {
218
348
  const root = clone ?? type;
219
349
  switch (root.kind) {
350
+ case "Namespace":
351
+ visitNamespaceContents(root);
352
+ break;
220
353
  case "Model":
221
- for (const prop of root.properties.values()) {
222
- const newProp = mutateSubgraphWorker(prop, newMutators);
223
- if (clone) {
224
- clone.properties.set(prop.name, newProp);
225
- }
226
- }
227
- if (root.indexer) {
228
- const res = mutateSubgraphWorker(root.indexer.value, newMutators);
229
- if (clone) {
230
- clone.indexer.value = res;
231
- }
232
- }
354
+ visitModel(root);
233
355
  break;
234
356
  case "ModelProperty":
235
- const newType = mutateSubgraphWorker(root.type, newMutators);
236
- if (clone) {
237
- clone.type = newType;
238
- }
357
+ mutateProperty(root, "type", mutating, newMutators);
358
+ mutateProperty(root, "sourceProperty", mutating, newMutators);
239
359
  break;
240
360
  case "Operation":
241
- const newParams = mutateSubgraphWorker(root.parameters, newMutators);
242
- if (clone) {
243
- clone.parameters = newParams;
244
- }
361
+ mutateProperty(root, "parameters", mutating, newMutators);
362
+ mutateProperty(root, "returnType", mutating, newMutators);
363
+ mutateProperty(root, "sourceOperation", mutating, newMutators);
364
+ break;
365
+ case "Interface":
366
+ mutateSubMap(root, "operations", mutating, newMutators);
367
+ break;
368
+ case "Enum":
369
+ mutateSubMap(root, "members", mutating, newMutators);
370
+ break;
371
+ case "EnumMember":
372
+ break;
373
+ case "Union":
374
+ mutateSubMap(root, "variants", mutating, newMutators);
375
+ break;
376
+ case "UnionVariant":
377
+ mutateProperty(root, "type", mutating, newMutators);
245
378
  break;
246
379
  case "Scalar":
247
- const newBaseScalar = root.baseScalar
248
- ? mutateSubgraphWorker(root.baseScalar, newMutators)
249
- : undefined;
250
- if (clone) {
251
- clone.baseScalar = newBaseScalar;
252
- }
380
+ mutateSubMap(root, "constructors", mutating, newMutators);
381
+ mutateProperty(root, "baseScalar", mutating, newMutators);
382
+ mutateSubArray(root, "derivedScalars", mutating, newMutators);
383
+ break;
384
+ case "ScalarConstructor":
385
+ mutateProperty(root, "scalar", mutating, newMutators);
386
+ break;
387
+ }
388
+ if ("templateMapper" in root) {
389
+ mutateTemplateMapper(root, mutating, newMutators);
390
+ }
391
+ if ("decorators" in root) {
392
+ visitDecorators(root, mutating, newMutators);
393
+ }
394
+ mutateNamespaceProperty(root);
395
+ }
396
+ // Parents needs to be visited after the type is finished
397
+ function visitParents() {
398
+ const root = clone ?? type;
399
+ switch (root.kind) {
400
+ case "ModelProperty":
401
+ mutateProperty(root, "model", mutating, newMutators);
402
+ break;
403
+ case "Operation":
404
+ mutateProperty(root, "interface", mutating, newMutators);
405
+ break;
406
+ case "EnumMember":
407
+ mutateProperty(root, "enum", mutating, newMutators);
408
+ break;
409
+ case "UnionVariant":
410
+ mutateProperty(root, "union", mutating, newMutators);
411
+ break;
412
+ case "ScalarConstructor":
413
+ mutateProperty(root, "scalar", mutating, newMutators);
414
+ break;
415
+ }
416
+ }
417
+ }
418
+ function visitDecorators(type, mutating, newMutators) {
419
+ for (const [index, dec] of type.decorators.entries()) {
420
+ const args = [];
421
+ for (const arg of dec.args) {
422
+ const jsValue = typeof arg.jsValue === "object" &&
423
+ isType(arg.jsValue) &&
424
+ isMutableTypeWithNamespace(arg.jsValue)
425
+ ? mutateSubgraphWorker(arg.jsValue, newMutators)
426
+ : arg.jsValue;
427
+ args.push({
428
+ ...arg,
429
+ value: isType(arg.value) && isMutableTypeWithNamespace(arg.value)
430
+ ? mutateSubgraphWorker(arg.value, newMutators)
431
+ : arg.value,
432
+ jsValue,
433
+ });
434
+ }
435
+ if (mutating) {
436
+ type.decorators[index] = { ...dec, args };
437
+ }
438
+ }
439
+ }
440
+ function mutateTemplateMapper(type, mutating, newMutators) {
441
+ if (type.templateMapper === undefined) {
442
+ return;
443
+ }
444
+ const mutatedMapper = {
445
+ ...type.templateMapper,
446
+ args: [],
447
+ map: new Map(),
448
+ };
449
+ for (const arg of type.templateMapper.args) {
450
+ mutate(mutatedMapper.args).push(mutateSubgraphWorker(arg, newMutators));
451
+ }
452
+ for (const [param, paramType] of type.templateMapper.map) {
453
+ mutatedMapper.map.set(param, mutateSubgraphWorker(paramType, newMutators));
454
+ }
455
+ if (mutating) {
456
+ type.templateMapper = mutatedMapper;
457
+ }
458
+ }
459
+ function mutateSubMap(type, prop, mutate, newMutators) {
460
+ for (const [key, value] of type[prop].entries()) {
461
+ const newValue = mutateSubgraphWorker(value, newMutators);
462
+ if (mutate) {
463
+ type[prop].set(key, newValue);
464
+ if (newValue.name !== value.name) {
465
+ type[prop].rekey(key, newValue.name);
466
+ }
253
467
  }
254
468
  }
255
469
  }
470
+ function mutateSubArray(type, prop, mutate, newMutators) {
471
+ for (const [index, value] of type[prop].entries()) {
472
+ const newValue = mutateSubgraphWorker(value, newMutators);
473
+ if (mutate) {
474
+ type[prop][index] = newValue;
475
+ }
476
+ }
477
+ }
478
+ function mutateProperty(type, prop, mutating, newMutators) {
479
+ if (type[prop] === undefined) {
480
+ return;
481
+ }
482
+ const newValue = mutateSubgraphWorker(type[prop], newMutators);
483
+ if (mutating) {
484
+ type[prop] = newValue;
485
+ }
486
+ }
256
487
  }
257
488
  // #endregion
258
489
  //# sourceMappingURL=mutators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutators.js","sourceRoot":"","sources":["../../../src/experimental/mutators.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAuJvC;;;;;;;;;GASG;AACH,MAAM,CAAN,IAAY,WAaX;AAbD,WAAY,WAAW;IACrB;;OAEG;IACH,iEAAkB,CAAA;IAClB;;OAEG;IACH,2DAAoB,CAAA;IACpB;;OAEG;IACH,yDAAmB,CAAA;AACrB,CAAC,EAbW,WAAW,KAAX,WAAW,QAatB;AAqBD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAU;IACtC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,mBAAmB,CAAC;QACzB,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,mBAAmB,CAAC;QACzB,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,KAAK,CAAC;QACf;YACE,KAAM,IAA2B,CAAC;YAClC,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AASD,aAAa;AAEb,8BAA8B;AAE9B,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;AAC1C,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;AAC7C,MAAM,IAAI,GAAG,IAAI,YAAY,CAAgD,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE;IAChG,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;SACzD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC/B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAgB,EAChB,QAAgC,EAChC,IAAO;IAEP,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAW,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAgB,EAChB,QAAmB,EACnB,IAAO;IAEP,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IACvD,MAAM,qBAAqB,GAAmB,EAAE,CAAC;IAEjD,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE9D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,SAAS,oBAAoB,CAC3B,IAAO,EACP,cAA4B;QAE5B,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,0BAA0B,EAAE,CAAC;YAC7B,OAAO,QAAa,CAAC;QACvB,CAAC;QAED,IAAI,KAAK,GAAuB,IAAI,CAAC;QACrC,MAAM,mBAAmB,GAInB,EAAE,CAAC;QAET,mCAAmC;QACnC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAiC,CAAC;YAClE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YAED,IAAI,UAAU,GAAwB,IAAI,CAAC;YAC3C,IAAI,SAAS,GAA+B,IAAI,CAAC;YAEjD,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,UAAU,GAAG,MAAM,CAAC;gBACpB,MAAM,GAAG,IAAI,CAAC;gBACd,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;gBACvD,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;gBAExD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBACzD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;wBAC1B,MAAM,GAAG,IAAI,CAAC;wBACd,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;yBAAM,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;wBAClC,MAAM,GAAG,KAAK,CAAC;wBACf,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBACxD,OAAO,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,IAAI,CAAC;oBACd,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,MAAM,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAElE,mDAAmD;QACnD,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACzB,qFAAqF;gBACrF,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC5C,aAAa,EAAE,CAAC;gBAChB,qBAAqB,CAAC,GAAG,EAAE,CAAC;gBAC5B,OAAO,KAAK,IAAI,IAAI,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,6DAA6D;gBAC7D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,4FAA4F;QAC5F,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,0BAA0B,EAAE,CAAC;YAC7B,OAAO,QAAa,CAAC;QACvB,CAAC;QAED,2BAA2B;QAC3B,0BAA0B,EAAE,CAAC;QAC7B,eAAe,EAAE,CAAC;QAElB,KAAK,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,mBAAmB,EAAE,CAAC;YAC5D,qDAAqD;YACrD,MAAM,MAAM,GAAgB,CAAC,UAAW,IAAI,SAAU,CAAC,CACrD,IAAI,EACJ,KAAa,EACb,OAAO,EACP,KAAK,CACC,CAAC;YAET,IAAI,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACtC,KAAK,GAAG,MAAM,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACzB,aAAa,EAAE,CAAC;QAClB,CAAC;QAED,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAM,CAAC,CAAC;QAEjC,OAAO,KAAM,CAAC;QAEd,SAAS,eAAe;YACtB,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,SAAS,0BAA0B;YACjC,KAAK,MAAM,YAAY,IAAI,qBAAqB,EAAE,CAAC;gBACjD,YAAY,EAAE,CAAC;YACjB,CAAC;YAED,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,SAAS,aAAa;YACpB,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC;YAC3B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,OAAO;oBACV,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;wBAC5C,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;wBAExD,IAAI,KAAK,EAAE,CAAC;4BACT,KAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;wBACpD,CAAC;oBACH,CAAC;oBACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACjB,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAY,EAAE,WAAW,CAAC,CAAC;wBACzE,IAAI,KAAK,EAAE,CAAC;4BACT,KAAa,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;wBACrC,CAAC;oBACH,CAAC;oBACD,MAAM;gBACR,KAAK,eAAe;oBAClB,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAmB,EAAE,WAAW,CAAC,CAAC;oBAC5E,IAAI,KAAK,EAAE,CAAC;wBACT,KAAa,CAAC,IAAI,GAAG,OAAO,CAAC;oBAChC,CAAC;oBAED,MAAM;gBACR,KAAK,WAAW;oBACd,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;oBACrE,IAAI,KAAK,EAAE,CAAC;wBACT,KAAa,CAAC,UAAU,GAAG,SAAS,CAAC;oBACxC,CAAC;oBAED,MAAM;gBACR,KAAK,QAAQ;oBACX,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU;wBACnC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;wBACpD,CAAC,CAAC,SAAS,CAAC;oBACd,IAAI,KAAK,EAAE,CAAC;wBACT,KAAa,CAAC,UAAU,GAAG,aAAa,CAAC;oBAC5C,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,aAAa"}
1
+ {"version":3,"file":"mutators.js","sourceRoot":"","sources":["../../../src/experimental/mutators.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"realm.d.ts","sourceRoot":"","sources":["../../../src/experimental/realm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAiB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;;;;GAOG;AACH,cAAM,iBAAiB,CAAC,CAAC,CAAE,YAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;;gBAK7B,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAMpF,GAAG,CAAC,CAAC,EAAE,IAAI;IAIX,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG;IAKnB,GAAG,CAAC,CAAC,EAAE,IAAI;IAIX,MAAM,CAAC,CAAC,EAAE,IAAI;IAId,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG;IAQ3E,IAAI,IAAI,WAEP;IAED,KAAK;IAIJ,OAAO,IAAI,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAYtC,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAQ7B,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC;IAQ/B,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAc;CASnC;AAED;;;;;;;;GAQG;AACH,qBAAa,KAAK;;IAeT,GAAG,EAAG,MAAM,CAAC;IAEpB;;;;;OAKG;gBACS,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM;IASjD;;;;OAIG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAWzB;;;;;OAKG;IACH,KAAK,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC;IASjC;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIxB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAI5B;;;;;;;OAOG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAczB,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK;IAInD,MAAM,CAAC,YAAY,uBAA8B;CAClD"}
1
+ {"version":3,"file":"realm.d.ts","sourceRoot":"","sources":["../../../src/experimental/realm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAiB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;;;;GAOG;AACH,cAAM,iBAAiB,CAAC,CAAC,CAAE,YAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;;gBAK7B,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAMpF,GAAG,CAAC,CAAC,EAAE,IAAI;IAIX,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG;IAKnB,GAAG,CAAC,CAAC,EAAE,IAAI;IAIX,MAAM,CAAC,CAAC,EAAE,IAAI;IAId,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG;IAQ3E,IAAI,IAAI,WAEP;IAED,KAAK;IAIJ,OAAO,IAAI,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAYtC,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAQ7B,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC;IAQ/B,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAc;CASnC;AAED;;;;;;;;GAQG;AACH,qBAAa,KAAK;;IAeT,GAAG,EAAG,MAAM,CAAC;IAEpB;;;;;OAKG;gBACS,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM;IASjD;;;;OAIG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAWzB;;;;;OAKG;IACH,KAAK,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC;IASjC;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIxB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAI5B;;;;;;;OAOG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAoBzB,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK;IAInD,MAAM,CAAC,YAAY,uBAA8B;CAClD"}
@@ -188,6 +188,11 @@ export class Realm {
188
188
  _a.realmForType.set(clone, this);
189
189
  return clone;
190
190
  }
191
+ // TODO better way?
192
+ /** @internal */
193
+ get types() {
194
+ return this.#types;
195
+ }
191
196
  static #knownRealms = new Map();
192
197
  static realmForKey(key, parentRealm) {
193
198
  return this.#knownRealms.get(key);
@@ -1 +1 @@
1
- {"version":3,"file":"realm.js","sourceRoot":"","sources":["../../../src/experimental/realm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"realm.js","sourceRoot":"","sources":["../../../src/experimental/realm.ts"],"names":[],"mappings":"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"}
@@ -1,59 +1,68 @@
1
1
  import type { BooleanLiteral, NumericLiteral, StringLiteral, Type } from "../../../core/types.js";
2
2
  /** @experimental */
3
- interface LiteralKit {
4
- literal: {
5
- /**
6
- * Create a literal type from a JavaScript value.
7
- *
8
- * @param value The JavaScript value to turn into a TypeSpec literal type.
9
- */
10
- create(value: string | number | boolean): StringLiteral | NumericLiteral | BooleanLiteral;
11
- /**
12
- * Create a string literal type from a JavaScript string value.
13
- *
14
- * @param value The string value.
15
- */
16
- createString(value: string): StringLiteral;
17
- /**
18
- * Create a numeric literal type from a JavaScript number value.
19
- *
20
- * @param value The numeric value.
21
- */
22
- createNumeric(value: number): NumericLiteral;
23
- /**
24
- * Create a boolean literal type from a JavaScript boolean value.
25
- *
26
- * @param value The boolean value.
27
- */
28
- createBoolean(value: boolean): BooleanLiteral;
29
- /**
30
- * Check if `type` is a literal type.
31
- *
32
- * @param type The type to check.
33
- */
34
- is(type: Type): type is StringLiteral | NumericLiteral | BooleanLiteral;
35
- /**
36
- * Check if `type` is a string literal type.
37
- *
38
- * @param type The type to check.
39
- */
40
- isString(type: Type): type is StringLiteral;
41
- /**
42
- * Check if `type` is a numeric literal type.
43
- *
44
- * @param type The type to check.
45
- */
46
- isNumeric(type: Type): type is NumericLiteral;
47
- /**
48
- * Check if `type` is a boolean literal type.
49
- *
50
- * @param type The type to check.
51
- */
52
- isBoolean(type: Type): type is BooleanLiteral;
53
- };
3
+ export interface LiteralKit {
4
+ /**
5
+ * Create a literal type from a JavaScript value.
6
+ *
7
+ * @param value The JavaScript value to turn into a TypeSpec literal type.
8
+ */
9
+ create(value: string | number | boolean): StringLiteral | NumericLiteral | BooleanLiteral;
10
+ /**
11
+ * Create a string literal type from a JavaScript string value.
12
+ *
13
+ * @param value The string value.
14
+ */
15
+ createString(value: string): StringLiteral;
16
+ /**
17
+ * Create a numeric literal type from a JavaScript number value.
18
+ *
19
+ * @param value The numeric value.
20
+ */
21
+ createNumeric(value: number): NumericLiteral;
22
+ /**
23
+ * Create a boolean literal type from a JavaScript boolean value.
24
+ *
25
+ * @param value The boolean value.
26
+ */
27
+ createBoolean(value: boolean): BooleanLiteral;
28
+ /**
29
+ * Check if `type` is a literal type.
30
+ *
31
+ * @param type The type to check.
32
+ */
33
+ is(type: Type): type is StringLiteral | NumericLiteral | BooleanLiteral;
34
+ /**
35
+ * Check if `type` is a string literal type.
36
+ *
37
+ * @param type The type to check.
38
+ */
39
+ isString(type: Type): type is StringLiteral;
40
+ /**
41
+ * Check if `type` is a numeric literal type.
42
+ *
43
+ * @param type The type to check.
44
+ */
45
+ isNumeric(type: Type): type is NumericLiteral;
46
+ /**
47
+ * Check if `type` is a boolean literal type.
48
+ *
49
+ * @param type The type to check.
50
+ */
51
+ isBoolean(type: Type): type is BooleanLiteral;
52
+ }
53
+ interface TypekitExtension {
54
+ /**
55
+ * Utilities for working with literal types.
56
+ *
57
+ * Literal types are types that represent a single value, such as a string,
58
+ * number, or boolean.
59
+ *
60
+ * @experimental
61
+ */
62
+ literal: LiteralKit;
54
63
  }
55
64
  declare module "../define-kit.js" {
56
- interface Typekit extends LiteralKit {
65
+ interface Typekit extends TypekitExtension {
57
66
  }
58
67
  }
59
68
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/literal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAGlG,oBAAoB;AACpB,UAAU,UAAU;IAClB,OAAO,EAAE;QACP;;;;WAIG;QACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;QAE1F;;;;WAIG;QACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;QAE3C;;;;WAIG;QACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC;QAE7C;;;;WAIG;QACH,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAAC;QAE9C;;;;WAIG;QACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;QAExE;;;;WAIG;QACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,aAAa,CAAC;QAE5C;;;;WAIG;QACH,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,cAAc,CAAC;QAE9C;;;;WAIG;QACH,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,cAAc,CAAC;KAC/C,CAAC;CACH;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,UAAU;KAAG;CACxC"}
1
+ {"version":3,"file":"literal.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/literal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAGlG,oBAAoB;AACpB,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;IAE1F;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAE3C;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC;IAE7C;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAAC;IAE9C;;;;OAIG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;IAExE;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,aAAa,CAAC;IAE5C;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,cAAc,CAAC;IAE9C;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,cAAc,CAAC;CAC/C;AAED,UAAU,gBAAgB;IACxB;;;;;;;OAOG;IACH,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/literal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAmE7C,SAAS,CAAa;IACpB,OAAO,EAAE;QACP,MAAM,CAAC,KAAK;YACV,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,YAAY,CAAC,KAAK;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACrC,IAAI,EAAE,QAAQ;gBACd,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,aAAa,CAAC,KAAK;YACjB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAEpC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACrC,IAAI,EAAE,QAAQ;gBACd,KAAK;gBACL,aAAa;gBACb,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QAED,aAAa,CAAC,KAAK;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACrC,IAAI,EAAE,SAAS;gBACf,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,SAAS,CAAC,IAAI;YACZ,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;QACjC,CAAC;QACD,QAAQ,CAAC,IAAI;YACX,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;QAChC,CAAC;QACD,SAAS,CAAC,IAAI;YACZ,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;QAChC,CAAC;QACD,EAAE,CAAC,IAAI;YACL,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC5F,CAAC;QACJ,CAAC;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"literal.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/literal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA6E7C,SAAS,CAAmB;IAC1B,OAAO,EAAE;QACP,MAAM,CAAC,KAAK;YACV,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,YAAY,CAAC,KAAK;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACrC,IAAI,EAAE,QAAQ;gBACd,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,aAAa,CAAC,KAAK;YACjB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAEpC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACrC,IAAI,EAAE,QAAQ;gBACd,KAAK;gBACL,aAAa;gBACb,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC;aACrC,CAAC,CAAC;QACL,CAAC;QAED,aAAa,CAAC,KAAK;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACrC,IAAI,EAAE,SAAS;gBACf,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,SAAS,CAAC,IAAI;YACZ,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;QACjC,CAAC;QACD,QAAQ,CAAC,IAAI;YACX,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;QAChC,CAAC;QACD,SAAS,CAAC,IAAI;YACZ,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;QAChC,CAAC;QACD,EAAE,CAAC,IAAI;YACL,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC5F,CAAC;QACJ,CAAC;KACF;CACF,CAAC,CAAC"}