@typespec/compiler 0.66.0-dev.2 → 0.66.0-dev.3

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 (68) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/experimental/typekit/define-kit.d.ts +1 -0
  3. package/dist/src/experimental/typekit/define-kit.d.ts.map +1 -1
  4. package/dist/src/experimental/typekit/define-kit.js +14 -1
  5. package/dist/src/experimental/typekit/define-kit.js.map +1 -1
  6. package/dist/src/experimental/typekit/index.d.ts.map +1 -1
  7. package/dist/src/experimental/typekit/index.js +9 -3
  8. package/dist/src/experimental/typekit/index.js.map +1 -1
  9. package/dist/src/experimental/typekit/kits/array.d.ts +28 -0
  10. package/dist/src/experimental/typekit/kits/array.d.ts.map +1 -0
  11. package/dist/src/experimental/typekit/kits/array.js +26 -0
  12. package/dist/src/experimental/typekit/kits/array.js.map +1 -0
  13. package/dist/src/experimental/typekit/kits/builtin.d.ts +117 -0
  14. package/dist/src/experimental/typekit/kits/builtin.d.ts.map +1 -0
  15. package/dist/src/experimental/typekit/kits/builtin.js +81 -0
  16. package/dist/src/experimental/typekit/kits/builtin.js.map +1 -0
  17. package/dist/src/experimental/typekit/kits/enum-member.d.ts +52 -0
  18. package/dist/src/experimental/typekit/kits/enum-member.d.ts.map +1 -0
  19. package/dist/src/experimental/typekit/kits/enum-member.js +22 -0
  20. package/dist/src/experimental/typekit/kits/enum-member.js.map +1 -0
  21. package/dist/src/experimental/typekit/kits/enum.d.ts +54 -0
  22. package/dist/src/experimental/typekit/kits/enum.d.ts.map +1 -0
  23. package/dist/src/experimental/typekit/kits/enum.js +47 -0
  24. package/dist/src/experimental/typekit/kits/enum.js.map +1 -0
  25. package/dist/src/experimental/typekit/kits/index.d.ts +7 -0
  26. package/dist/src/experimental/typekit/kits/index.d.ts.map +1 -1
  27. package/dist/src/experimental/typekit/kits/index.js +7 -0
  28. package/dist/src/experimental/typekit/kits/index.js.map +1 -1
  29. package/dist/src/experimental/typekit/kits/model-property.d.ts +29 -1
  30. package/dist/src/experimental/typekit/kits/model-property.d.ts.map +1 -1
  31. package/dist/src/experimental/typekit/kits/model-property.js +11 -0
  32. package/dist/src/experimental/typekit/kits/model-property.js.map +1 -1
  33. package/dist/src/experimental/typekit/kits/model.d.ts +29 -4
  34. package/dist/src/experimental/typekit/kits/model.d.ts.map +1 -1
  35. package/dist/src/experimental/typekit/kits/model.js +49 -2
  36. package/dist/src/experimental/typekit/kits/model.js.map +1 -1
  37. package/dist/src/experimental/typekit/kits/operation.d.ts +49 -0
  38. package/dist/src/experimental/typekit/kits/operation.d.ts.map +1 -0
  39. package/dist/src/experimental/typekit/kits/operation.js +28 -0
  40. package/dist/src/experimental/typekit/kits/operation.js.map +1 -0
  41. package/dist/src/experimental/typekit/kits/record.d.ts +33 -0
  42. package/dist/src/experimental/typekit/kits/record.d.ts.map +1 -0
  43. package/dist/src/experimental/typekit/kits/record.js +26 -0
  44. package/dist/src/experimental/typekit/kits/record.js.map +1 -0
  45. package/dist/src/experimental/typekit/kits/type.d.ts +93 -1
  46. package/dist/src/experimental/typekit/kits/type.d.ts.map +1 -1
  47. package/dist/src/experimental/typekit/kits/type.js +67 -0
  48. package/dist/src/experimental/typekit/kits/type.js.map +1 -1
  49. package/dist/src/experimental/typekit/kits/union-variant.d.ts +5 -1
  50. package/dist/src/experimental/typekit/kits/union-variant.d.ts.map +1 -1
  51. package/dist/src/experimental/typekit/kits/union-variant.js.map +1 -1
  52. package/dist/src/experimental/typekit/kits/union.d.ts +15 -1
  53. package/dist/src/experimental/typekit/kits/union.d.ts.map +1 -1
  54. package/dist/src/experimental/typekit/kits/union.js +7 -0
  55. package/dist/src/experimental/typekit/kits/union.js.map +1 -1
  56. package/dist/src/experimental/typekit/kits/value.d.ts +84 -0
  57. package/dist/src/experimental/typekit/kits/value.d.ts.map +1 -0
  58. package/dist/src/experimental/typekit/kits/value.js +81 -0
  59. package/dist/src/experimental/typekit/kits/value.js.map +1 -0
  60. package/dist/src/experimental/typekit/utils/get-plausible-name.d.ts +7 -0
  61. package/dist/src/experimental/typekit/utils/get-plausible-name.d.ts.map +1 -0
  62. package/dist/src/experimental/typekit/utils/get-plausible-name.js +17 -0
  63. package/dist/src/experimental/typekit/utils/get-plausible-name.js.map +1 -0
  64. package/dist/src/experimental/typekit/utils/index.d.ts +2 -0
  65. package/dist/src/experimental/typekit/utils/index.d.ts.map +1 -0
  66. package/dist/src/experimental/typekit/utils/index.js +2 -0
  67. package/dist/src/experimental/typekit/utils/index.js.map +1 -0
  68. package/package.json +1 -1
package/dist/manifest.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export default {
2
- "version": "0.66.0-dev.2",
3
- "commit": "c59d76975db202fffe3c809263c4785db4b83546"
2
+ "version": "0.66.0-dev.3",
3
+ "commit": "ba241e8e5561e3b99d4a7b6195aa193c35cbae63"
4
4
  };
@@ -17,6 +17,7 @@ export interface Typekit {
17
17
  export type StripGuards<T> = {
18
18
  [K in keyof T]: T[K] extends (...args: infer P) => infer R ? (...args: P) => R : StripGuards<T[K]>;
19
19
  };
20
+ export declare const TypekitNamespaceSymbol: unique symbol;
20
21
  /**
21
22
  * Defines an extension to the Typekit interface.
22
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"define-kit.d.ts","sourceRoot":"","sources":["../../../../src/experimental/typekit/define-kit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAYD;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACtD,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GACjB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GACzC,IAAI,CAIN"}
1
+ {"version":3,"file":"define-kit.d.ts","sourceRoot":"","sources":["../../../../src/experimental/typekit/define-kit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAYD;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACtD,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GACjB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,eAAiC,CAAC;AAErE;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GACzC,IAAI,CAmBN"}
@@ -7,6 +7,7 @@
7
7
  * @internal
8
8
  */
9
9
  export const TypekitPrototype = {};
10
+ export const TypekitNamespaceSymbol = Symbol.for("TypekitNamespace");
10
11
  /**
11
12
  * Defines an extension to the Typekit interface.
12
13
  *
@@ -16,7 +17,19 @@ export const TypekitPrototype = {};
16
17
  */
17
18
  export function defineKit(source) {
18
19
  for (const [name, fnOrNs] of Object.entries(source)) {
19
- TypekitPrototype[name] = fnOrNs;
20
+ let kits = fnOrNs;
21
+ if (TypekitPrototype[name] !== undefined) {
22
+ kits = { ...TypekitPrototype[name], ...fnOrNs };
23
+ }
24
+ // Tag top-level namespace objects with the symbol
25
+ if (typeof kits === "object" && kits !== null) {
26
+ Object.defineProperty(kits, TypekitNamespaceSymbol, {
27
+ value: true,
28
+ enumerable: false, // Keep the symbol non-enumerable
29
+ configurable: false,
30
+ });
31
+ }
32
+ TypekitPrototype[name] = kits;
20
33
  }
21
34
  }
22
35
  //# sourceMappingURL=define-kit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-kit.js","sourceRoot":"","sources":["../../../../src/experimental/typekit/define-kit.ts"],"names":[],"mappings":"AAaA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA4B,EAAE,CAAC;AAa5D;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,MAA0C;IAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IAClC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"define-kit.js","sourceRoot":"","sources":["../../../../src/experimental/typekit/define-kit.ts"],"names":[],"mappings":"AAaA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA4B,EAAE,CAAC;AAa5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,MAA0C;IAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,IAAI,IAAI,GAAG,MAAM,CAAC;QAElB,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,GAAG,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QAClD,CAAC;QAED,kDAAkD;QAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,EAAE;gBAClD,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,KAAK,EAAE,iCAAiC;gBACpD,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/experimental/typekit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,OAAO,EAAoB,MAAM,iBAAiB,CAAC;AAE5D,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAgCnD;AA6BD,oBAAoB;AACpB,UAAU,cAAe,SAAQ,OAAO;IACtC;;;;;;;OAOG;IACH,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;CAC7B;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,CAAC,EAAE,cAsBe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/experimental/typekit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,OAAO,EAA4C,MAAM,iBAAiB,CAAC;AAEpF,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAkCnD;AAkCD,oBAAoB;AACpB,UAAU,cAAe,SAAQ,OAAO;IACtC;;;;;;;OAOG;IACH,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;CAC7B;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,CAAC,EAAE,cAsBe,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { compilerAssert } from "../../core/index.js";
2
2
  import { Realm } from "../realm.js";
3
- import { TypekitPrototype } from "./define-kit.js";
3
+ import { TypekitNamespaceSymbol, TypekitPrototype } from "./define-kit.js";
4
4
  export * from "./define-kit.js";
5
5
  export * from "./kits/index.js";
6
6
  /**
@@ -26,13 +26,15 @@ export function createTypekit(realm) {
26
26
  return realm;
27
27
  }
28
28
  const value = Reflect.get(target, prop, receiver);
29
+ // Wrap functions to set `this` correctly
29
30
  if (typeof value === "function") {
30
31
  return function (...args) {
31
32
  return value.apply(proxy, args);
32
33
  };
33
34
  }
34
- if (typeof value === "object" && value !== null) {
35
- return new Proxy(value, handler);
35
+ // Only wrap objects marked as Typekit namespaces
36
+ if (typeof value === "object" && value !== null && isTypekitNamespace(value)) {
37
+ return new Proxy(value, handler); // Wrap namespace objects
36
38
  }
37
39
  return value;
38
40
  },
@@ -40,6 +42,10 @@ export function createTypekit(realm) {
40
42
  const proxy = new Proxy(tk, handler);
41
43
  return proxy;
42
44
  }
45
+ // Helper function to check if an object is a Typekit namespace
46
+ function isTypekitNamespace(obj) {
47
+ return obj && !!obj[TypekitNamespaceSymbol];
48
+ }
43
49
  // #region Default Typekit
44
50
  const CURRENT_PROGRAM = Symbol.for("TypeSpec.Typekit.CURRENT_PROGRAM");
45
51
  const DEFAULT_REALM = Symbol.for("TypeSpec.Typekit.DEFAULT_TYPEKIT_REALM");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/experimental/typekit/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/experimental/typekit/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { Model, Type } from "../../../core/types.js";
2
+ /**
3
+ * @experimental
4
+ */
5
+ export interface ArrayKit {
6
+ /**
7
+ * Check if a type is an array.
8
+ */
9
+ is(type: Type): boolean;
10
+ /**
11
+ * Get the element type of an array.
12
+ */
13
+ getElementType(type: Model): Type;
14
+ /**
15
+ * Create an array type.
16
+ */
17
+ create(elementType: Type): Model;
18
+ }
19
+ interface TypekitExtension {
20
+ /** @experimental */
21
+ array: ArrayKit;
22
+ }
23
+ declare module "../define-kit.js" {
24
+ interface Typekit extends TypekitExtension {
25
+ }
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/array.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAClC;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,KAAK,CAAC;CAClC;AAED,UAAU,gBAAgB;IACxB,oBAAoB;IACpB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"}
@@ -0,0 +1,26 @@
1
+ import { isArrayModelType } from "../../../core/type-utils.js";
2
+ import { defineKit } from "../define-kit.js";
3
+ defineKit({
4
+ array: {
5
+ is(type) {
6
+ return (type.kind === "Model" && isArrayModelType(this.program, type) && type.properties.size === 0);
7
+ },
8
+ getElementType(type) {
9
+ if (!this.array.is(type)) {
10
+ throw new Error("Type is not an array.");
11
+ }
12
+ return type.indexer.value;
13
+ },
14
+ create(elementType) {
15
+ return this.model.create({
16
+ name: "Array",
17
+ properties: {},
18
+ indexer: {
19
+ key: this.builtin.integer,
20
+ value: elementType,
21
+ },
22
+ });
23
+ },
24
+ },
25
+ });
26
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA6B7C,SAAS,CAAmB;IAC1B,KAAK,EAAE;QACL,EAAE,CAAC,IAAI;YACL,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAC5F,CAAC;QACJ,CAAC;QACD,cAAc,CAAC,IAAI;YACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,IAAI,CAAC,OAAQ,CAAC,KAAK,CAAC;QAC7B,CAAC;QACD,MAAM,CAAC,WAAW;YAChB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,EAAE;gBACd,OAAO,EAAE;oBACP,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oBACzB,KAAK,EAAE,WAAW;iBACnB;aACF,CAAC,CAAC;QACL,CAAC;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,117 @@
1
+ import type { Scalar } from "../../../core/types.js";
2
+ /**
3
+ * A kit of built-in types.
4
+ * @experimental
5
+ */
6
+ export interface BuiltinKit {
7
+ /**
8
+ * Accessor for the string builtin type.
9
+ */
10
+ get string(): Scalar;
11
+ /**
12
+ * Accessor for the boolean builtin type.
13
+ */
14
+ get boolean(): Scalar;
15
+ /**
16
+ * Accessor for the bytes builtin type, representing binary data.
17
+ */
18
+ get bytes(): Scalar;
19
+ /**
20
+ * Accessor for the decimal builtin type for high-precision decimal values.
21
+ */
22
+ get decimal(): Scalar;
23
+ /**
24
+ * Accessor for the decimal128 builtin type, a 128-bit decimal value.
25
+ */
26
+ get decimal128(): Scalar;
27
+ /**
28
+ * Accessor for the duration builtin type, representing a span of time.
29
+ */
30
+ get duration(): Scalar;
31
+ /**
32
+ * Accessor for the float builtin type, representing a double-precision floating-point number.
33
+ */
34
+ get float(): Scalar;
35
+ /**
36
+ * Accessor for the float32 builtin type, representing a single-precision floating-point number.
37
+ */
38
+ get float32(): Scalar;
39
+ /**
40
+ * Accessor for the float64 builtin type, representing a double-precision floating-point number.
41
+ */
42
+ get float64(): Scalar;
43
+ /**
44
+ * Accessor for the int8 builtin type, representing an 8-bit signed integer.
45
+ */
46
+ get int8(): Scalar;
47
+ /**
48
+ * Accessor for the int16 builtin type, representing a 16-bit signed integer.
49
+ */
50
+ get int16(): Scalar;
51
+ /**
52
+ * Accessor for the int32 builtin type, representing a 32-bit signed integer.
53
+ */
54
+ get int32(): Scalar;
55
+ /**
56
+ * Accessor for the int64 builtin type, representing a 64-bit signed integer.
57
+ */
58
+ get int64(): Scalar;
59
+ /**
60
+ * Accessor for the integer builtin type, representing an arbitrary-precision integer.
61
+ */
62
+ get integer(): Scalar;
63
+ /**
64
+ * Accessor for the offsetDateTime builtin type, representing a date and time with an offset.
65
+ */
66
+ get offsetDateTime(): Scalar;
67
+ /**
68
+ * Accessor for the plainDate builtin type, representing a date without time or offset.
69
+ */
70
+ get plainDate(): Scalar;
71
+ /**
72
+ * Accessor for the plainTime builtin type, representing a time without date or offset.
73
+ */
74
+ get plainTime(): Scalar;
75
+ /**
76
+ * Accessor for the safeInt builtin type, representing an integer within the safe range for JavaScript.
77
+ */
78
+ get safeInt(): Scalar;
79
+ /**
80
+ * Accessor for the uint8 builtin type, representing an 8-bit unsigned integer.
81
+ */
82
+ get uint8(): Scalar;
83
+ /**
84
+ * Accessor for the uint16 builtin type, representing a 16-bit unsigned integer.
85
+ */
86
+ get uint16(): Scalar;
87
+ /**
88
+ * Accessor for the uint32 builtin type, representing a 32-bit unsigned integer.
89
+ */
90
+ get uint32(): Scalar;
91
+ /**
92
+ * Accessor for the uint64 builtin type, representing a 64-bit unsigned integer.
93
+ */
94
+ get uint64(): Scalar;
95
+ /**
96
+ * Accessor for the url builtin type, representing a valid URL string.
97
+ */
98
+ get url(): Scalar;
99
+ /**
100
+ * Accessor for the utcDateTime builtin type, representing a date and time in UTC.
101
+ */
102
+ get utcDateTime(): Scalar;
103
+ /**
104
+ * Accessor for the numeric builtin type, representing a numeric value.
105
+ */
106
+ get numeric(): Scalar;
107
+ }
108
+ interface TypekitExtension {
109
+ /** @experimental */
110
+ builtin: BuiltinKit;
111
+ }
112
+ declare module "../define-kit.js" {
113
+ interface Typekit extends TypekitExtension {
114
+ }
115
+ }
116
+ export {};
117
+ //# sourceMappingURL=builtin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/builtin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGrD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAAC;IAEzB;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAAC;IAEvB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CAAC;IAE7B;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAAC;IAExB;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAAC;IAExB;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,GAAG,IAAI,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAAC;IAE1B;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC;CACvB;AAED,UAAU,gBAAgB;IACxB,oBAAoB;IACpB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"}
@@ -0,0 +1,81 @@
1
+ import { defineKit } from "../define-kit.js";
2
+ defineKit({
3
+ builtin: {
4
+ get string() {
5
+ return this.program.checker.getStdType("string");
6
+ },
7
+ get boolean() {
8
+ return this.program.checker.getStdType("boolean");
9
+ },
10
+ get bytes() {
11
+ return this.program.checker.getStdType("bytes");
12
+ },
13
+ get decimal() {
14
+ return this.program.checker.getStdType("decimal");
15
+ },
16
+ get decimal128() {
17
+ return this.program.checker.getStdType("decimal128");
18
+ },
19
+ get duration() {
20
+ return this.program.checker.getStdType("duration");
21
+ },
22
+ get float() {
23
+ return this.program.checker.getStdType("float");
24
+ },
25
+ get float32() {
26
+ return this.program.checker.getStdType("float32");
27
+ },
28
+ get float64() {
29
+ return this.program.checker.getStdType("float64");
30
+ },
31
+ get int8() {
32
+ return this.program.checker.getStdType("int8");
33
+ },
34
+ get int16() {
35
+ return this.program.checker.getStdType("int16");
36
+ },
37
+ get int32() {
38
+ return this.program.checker.getStdType("int32");
39
+ },
40
+ get int64() {
41
+ return this.program.checker.getStdType("int64");
42
+ },
43
+ get integer() {
44
+ return this.program.checker.getStdType("integer");
45
+ },
46
+ get offsetDateTime() {
47
+ return this.program.checker.getStdType("offsetDateTime");
48
+ },
49
+ get plainDate() {
50
+ return this.program.checker.getStdType("plainDate");
51
+ },
52
+ get plainTime() {
53
+ return this.program.checker.getStdType("plainTime");
54
+ },
55
+ get safeInt() {
56
+ return this.program.checker.getStdType("safeint");
57
+ },
58
+ get uint8() {
59
+ return this.program.checker.getStdType("uint8");
60
+ },
61
+ get uint16() {
62
+ return this.program.checker.getStdType("uint16");
63
+ },
64
+ get uint32() {
65
+ return this.program.checker.getStdType("uint32");
66
+ },
67
+ get uint64() {
68
+ return this.program.checker.getStdType("uint64");
69
+ },
70
+ get url() {
71
+ return this.program.checker.getStdType("url");
72
+ },
73
+ get utcDateTime() {
74
+ return this.program.checker.getStdType("utcDateTime");
75
+ },
76
+ get numeric() {
77
+ return this.program.checker.getStdType("numeric");
78
+ },
79
+ },
80
+ });
81
+ //# sourceMappingURL=builtin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/builtin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { Enum, EnumMember, Type } from "../../../core/types.js";
2
+ import { DecoratorArgs } from "../utils.js";
3
+ /**
4
+ * A descriptor for creating an enum member.
5
+ * @experimental
6
+ */
7
+ export interface EnumMemberDescriptor {
8
+ /**
9
+ * The name of the enum member.
10
+ */
11
+ name: string;
12
+ /**
13
+ * Decorators to apply to the enum member.
14
+ */
15
+ decorators?: DecoratorArgs[];
16
+ /**
17
+ * The value of the enum member. If not supplied, the value will be the same
18
+ * as the name.
19
+ */
20
+ value?: string | number;
21
+ /**
22
+ * The enum that the member belongs to. If not provided here, it is assumed
23
+ * that it will be set in `enum.build`.
24
+ */
25
+ enum?: Enum;
26
+ }
27
+ /**
28
+ * A kit for working with enum members.
29
+ * @experimental
30
+ */
31
+ export interface EnumMemberKit {
32
+ /**
33
+ * Create an enum member. The enum member will be finished (i.e. decorators are run).
34
+ */
35
+ create(desc: EnumMemberDescriptor): EnumMember;
36
+ /**
37
+ * Check if `type` is an enum member type.
38
+ *
39
+ * @param type the type to check.
40
+ */
41
+ is(type: Type): type is EnumMember;
42
+ }
43
+ interface TypekitExtension {
44
+ /** @experimental */
45
+ enumMember: EnumMemberKit;
46
+ }
47
+ declare module "../define-kit.js" {
48
+ interface Typekit extends TypekitExtension {
49
+ }
50
+ }
51
+ export {};
52
+ //# sourceMappingURL=enum-member.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-member.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/enum-member.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAGrE,OAAO,EAAwB,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAE7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,UAAU,CAAC;IAE/C;;;;OAIG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,UAAU,CAAC;CACpC;AAED,UAAU,gBAAgB;IACxB,oBAAoB;IACpB,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"}
@@ -0,0 +1,22 @@
1
+ import { defineKit } from "../define-kit.js";
2
+ import { decoratorApplication } from "../utils.js";
3
+ defineKit({
4
+ enumMember: {
5
+ create(desc) {
6
+ const member = this.program.checker.createType({
7
+ kind: "EnumMember",
8
+ name: desc.name,
9
+ value: desc.value,
10
+ decorators: decoratorApplication(this, desc.decorators),
11
+ node: undefined,
12
+ enum: desc.enum, // initialized in enum.build if not provided here
13
+ });
14
+ this.program.checker.finishType(member);
15
+ return member;
16
+ },
17
+ is(type) {
18
+ return type.kind === "EnumMember";
19
+ },
20
+ },
21
+ });
22
+ //# sourceMappingURL=enum-member.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-member.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/enum-member.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAiB,MAAM,aAAa,CAAC;AAwDlE,SAAS,CAAmB;IAC1B,UAAU,EAAE;QACV,MAAM,CAAC,IAAI;YACT,MAAM,MAAM,GAAe,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBACzD,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;gBACvD,IAAI,EAAE,SAAgB;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAW,EAAE,iDAAiD;aAC1E,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,EAAE,CAAC,IAAI;YACL,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;QACpC,CAAC;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { Enum, EnumMember, Type, Union } from "../../../core/types.js";
2
+ import { DecoratorArgs } from "../utils.js";
3
+ /**
4
+ * Describes an enum type for creation.
5
+ * @experimental
6
+ */
7
+ interface EnumDescriptor {
8
+ /**
9
+ * The name of the enum declaration.
10
+ */
11
+ name: string;
12
+ /**
13
+ * Decorators to apply to the enum.
14
+ */
15
+ decorators?: DecoratorArgs[];
16
+ /**
17
+ * The members of the enum. If a member is an object, each property will be
18
+ * converted to an EnumMember with the same name and value.
19
+ */
20
+ members?: Record<string, string | number> | EnumMember[];
21
+ }
22
+ /**
23
+ * A kit for working with enum types.
24
+ * @experimental
25
+ */
26
+ export interface EnumKit {
27
+ /**
28
+ * Build an enum type. The enum type will be finished (i.e. decorators are
29
+ * run).
30
+ */
31
+ create(desc: EnumDescriptor): Enum;
32
+ /**
33
+ * Build an equivalent enum from the given union. Union variants which are
34
+ * not valid enum members are skipped. You can check if a union is a valid
35
+ * enum with {@link UnionKit.union}'s `isEnumValue`.
36
+ */
37
+ createFromUnion(type: Union): Enum;
38
+ /**
39
+ * Check if `type` is an enum type.
40
+ *
41
+ * @param type the type to check.
42
+ */
43
+ is(type: Type): type is Enum;
44
+ }
45
+ interface TypekitExtension {
46
+ /** @experimental */
47
+ enum: EnumKit;
48
+ }
49
+ declare module "../define-kit.js" {
50
+ interface Typekit extends TypekitExtension {
51
+ }
52
+ }
53
+ export {};
54
+ //# sourceMappingURL=enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/enum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAM5E,OAAO,EAAwB,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE;;;GAGG;AACH,UAAU,cAAc;IACtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAE7B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC;CAC1D;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAEnC;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAEnC;;;;OAIG;IACH,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC;CAC9B;AAED,UAAU,gBAAgB;IACxB,oBAAoB;IACpB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,OAAQ,SAAQ,gBAAgB;KAAG;CAC9C"}
@@ -0,0 +1,47 @@
1
+ import { createRekeyableMap } from "../../../utils/misc.js";
2
+ import { defineKit } from "../define-kit.js";
3
+ import { decoratorApplication } from "../utils.js";
4
+ defineKit({
5
+ enum: {
6
+ create(desc) {
7
+ const en = this.program.checker.createType({
8
+ kind: "Enum",
9
+ name: desc.name,
10
+ decorators: decoratorApplication(this, desc.decorators),
11
+ members: createRekeyableMap(),
12
+ node: undefined,
13
+ });
14
+ if (Array.isArray(desc.members)) {
15
+ for (const member of desc.members) {
16
+ member.enum = en;
17
+ en.members.set(member.name, member);
18
+ }
19
+ }
20
+ else {
21
+ for (const [name, member] of Object.entries(desc.members ?? {})) {
22
+ en.members.set(name, this.enumMember.create({ name, value: member, enum: en }));
23
+ }
24
+ }
25
+ this.program.checker.finishType(en);
26
+ return en;
27
+ },
28
+ is(type) {
29
+ return type.kind === "Enum";
30
+ },
31
+ createFromUnion(type) {
32
+ if (!type.name) {
33
+ throw new Error("Cannot create an enum from an anonymous union.");
34
+ }
35
+ const enumMembers = [];
36
+ for (const variant of type.variants.values()) {
37
+ if ((variant.name && typeof variant.name === "symbol") ||
38
+ (!this.literal.isString(variant.type) && !this.literal.isNumeric(variant.type))) {
39
+ continue;
40
+ }
41
+ enumMembers.push(this.enumMember.create({ name: variant.name, value: variant.type.value }));
42
+ }
43
+ return this.enum.create({ name: type.name, members: enumMembers });
44
+ },
45
+ },
46
+ });
47
+ //# sourceMappingURL=enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/enum.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAiB,MAAM,aAAa,CAAC;AA2DlE,SAAS,CAAmB;IAC1B,IAAI,EAAE;QACJ,MAAM,CAAC,IAAI;YACT,MAAM,EAAE,GAAS,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC/C,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;gBACvD,OAAO,EAAE,kBAAkB,EAAE;gBAC7B,IAAI,EAAE,SAAgB;aACvB,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;oBACjB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;oBAChE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,EAAE,CAAC,IAAI;YACL,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;QAC9B,CAAC;QAED,eAAe,CAAC,IAAI;YAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,WAAW,GAAiB,EAAE,CAAC;YACrC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC7C,IACE,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;oBAClD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAC/E,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9F,CAAC;YAED,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QACrE,CAAC;KACF;CACF,CAAC,CAAC"}
@@ -1,8 +1,15 @@
1
+ export * from "./array.js";
2
+ export * from "./builtin.js";
3
+ export * from "./enum-member.js";
4
+ export * from "./enum.js";
1
5
  export * from "./literal.js";
2
6
  export * from "./model-property.js";
3
7
  export * from "./model.js";
8
+ export * from "./operation.js";
9
+ export * from "./record.js";
4
10
  export * from "./scalar.js";
5
11
  export * from "./type.js";
6
12
  export * from "./union-variant.js";
7
13
  export * from "./union.js";
14
+ export * from "./value.js";
8
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -1,8 +1,15 @@
1
+ export * from "./array.js";
2
+ export * from "./builtin.js";
3
+ export * from "./enum-member.js";
4
+ export * from "./enum.js";
1
5
  export * from "./literal.js";
2
6
  export * from "./model-property.js";
3
7
  export * from "./model.js";
8
+ export * from "./operation.js";
9
+ export * from "./record.js";
4
10
  export * from "./scalar.js";
5
11
  export * from "./type.js";
6
12
  export * from "./union-variant.js";
7
13
  export * from "./union.js";
14
+ export * from "./value.js";
8
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/experimental/typekit/kits/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}