@kubb/ast 5.0.0-beta.57 → 5.0.0-beta.59

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 (69) hide show
  1. package/README.md +21 -7
  2. package/dist/casing-BE2R1RXg.cjs +88 -0
  3. package/dist/casing-BE2R1RXg.cjs.map +1 -0
  4. package/dist/chunk-CNktS9qV.js +17 -0
  5. package/dist/extractStringsFromNodes-WMYJ8nQL.d.ts +82 -0
  6. package/dist/factory-BmcGBdeg.cjs +1251 -0
  7. package/dist/factory-BmcGBdeg.cjs.map +1 -0
  8. package/dist/factory-Du7nEP4B.js +282 -0
  9. package/dist/factory-Du7nEP4B.js.map +1 -0
  10. package/dist/factory.cjs +28 -0
  11. package/dist/factory.d.ts +62 -0
  12. package/dist/factory.js +3 -0
  13. package/dist/{types-C5aVnRE1.d.ts → index-BzjwdK2M.d.ts} +94 -1146
  14. package/dist/index.cjs +220 -1481
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.ts +96 -58
  17. package/dist/index.js +182 -1920
  18. package/dist/index.js.map +1 -1
  19. package/dist/operationParams-BZ07xDm0.d.ts +204 -0
  20. package/dist/response-DKxTr522.js +683 -0
  21. package/dist/response-DKxTr522.js.map +1 -0
  22. package/dist/types-olVl9v5p.d.ts +764 -0
  23. package/dist/types.d.ts +5 -2
  24. package/dist/utils-BCtRXfhI.cjs +275 -0
  25. package/dist/utils-BCtRXfhI.cjs.map +1 -0
  26. package/dist/utils-SdZU0F3H.js +1336 -0
  27. package/dist/utils-SdZU0F3H.js.map +1 -0
  28. package/dist/utils.cjs +129 -13
  29. package/dist/utils.d.ts +127 -76
  30. package/dist/utils.js +3 -2
  31. package/package.json +5 -1
  32. package/src/constants.ts +8 -14
  33. package/src/dedupe.ts +8 -0
  34. package/src/factory.ts +18 -1
  35. package/src/guards.ts +1 -1
  36. package/src/index.ts +7 -50
  37. package/src/node.ts +1 -1
  38. package/src/nodes/base.ts +0 -10
  39. package/src/nodes/code.ts +29 -47
  40. package/src/nodes/content.ts +2 -2
  41. package/src/nodes/file.ts +28 -23
  42. package/src/nodes/function.ts +2 -17
  43. package/src/nodes/index.ts +1 -1
  44. package/src/nodes/input.ts +20 -19
  45. package/src/nodes/operation.ts +1 -1
  46. package/src/nodes/parameter.ts +0 -3
  47. package/src/nodes/property.ts +0 -3
  48. package/src/nodes/requestBody.ts +3 -6
  49. package/src/nodes/schema.ts +3 -2
  50. package/src/printer.ts +4 -4
  51. package/src/registry.ts +31 -26
  52. package/src/signature.ts +3 -3
  53. package/src/transformers.ts +28 -1
  54. package/src/types.ts +2 -53
  55. package/src/utils/codegen.ts +104 -0
  56. package/src/utils/extractStringsFromNodes.ts +34 -0
  57. package/src/utils/fileMerge.ts +184 -0
  58. package/src/utils/index.ts +8 -296
  59. package/src/utils/operationParams.ts +353 -0
  60. package/src/utils/refs.ts +112 -0
  61. package/src/utils/schemaGraph.ts +169 -0
  62. package/src/utils/strings.ts +139 -0
  63. package/src/visitor.ts +43 -19
  64. package/dist/chunk-C0LytTxp.js +0 -8
  65. package/dist/utils-0p8ZO287.js +0 -570
  66. package/dist/utils-0p8ZO287.js.map +0 -1
  67. package/dist/utils-cdQ6Pzyi.cjs +0 -726
  68. package/dist/utils-cdQ6Pzyi.cjs.map +0 -1
  69. package/src/utils/ast.ts +0 -879
@@ -0,0 +1,28 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_factory = require("./factory-BmcGBdeg.cjs");
3
+ exports.createArrowFunction = require_factory.createArrowFunction;
4
+ exports.createBreak = require_factory.createBreak;
5
+ exports.createConst = require_factory.createConst;
6
+ exports.createContent = require_factory.createContent;
7
+ exports.createExport = require_factory.createExport;
8
+ exports.createFile = require_factory.createFile;
9
+ exports.createFunction = require_factory.createFunction;
10
+ exports.createFunctionParameter = require_factory.createFunctionParameter;
11
+ exports.createFunctionParameters = require_factory.createFunctionParameters;
12
+ exports.createImport = require_factory.createImport;
13
+ exports.createIndexedAccessType = require_factory.createIndexedAccessType;
14
+ exports.createInput = require_factory.createInput;
15
+ exports.createJsx = require_factory.createJsx;
16
+ exports.createObjectBindingPattern = require_factory.createObjectBindingPattern;
17
+ exports.createOperation = require_factory.createOperation;
18
+ exports.createOutput = require_factory.createOutput;
19
+ exports.createParameter = require_factory.createParameter;
20
+ exports.createProperty = require_factory.createProperty;
21
+ exports.createRequestBody = require_factory.createRequestBody;
22
+ exports.createResponse = require_factory.createResponse;
23
+ exports.createSchema = require_factory.createSchema;
24
+ exports.createSource = require_factory.createSource;
25
+ exports.createText = require_factory.createText;
26
+ exports.createType = require_factory.createType;
27
+ exports.createTypeLiteral = require_factory.createTypeLiteral;
28
+ exports.update = require_factory.update;
@@ -0,0 +1,62 @@
1
+ import { n as __name, t as __exportAll } from "./chunk-CNktS9qV.js";
2
+ import { F as createFunctionParameter, Gt as createBreak, I as createFunctionParameters, Jt as createJsx, K as FileNode, Kt as createConst, L as createIndexedAccessType, Ot as createProperty, R as createObjectBindingPattern, T as createParameter, Wt as createArrowFunction, X as createImport, Xt as createType, Y as createExport, Yt as createText, Z as createSource, at as createContent, g as createResponse, p as createOperation, qt as createFunction, r as createOutput, s as createInput, t as Node, wt as createSchema, x as createRequestBody, z as createTypeLiteral } from "./index-BzjwdK2M.js";
3
+
4
+ //#region src/factory.d.ts
5
+ declare namespace factory_d_exports {
6
+ export { UserFileNode, createArrowFunction, createBreak, createConst, createContent, createExport, createFile, createFunction, createFunctionParameter, createFunctionParameters, createImport, createIndexedAccessType, createInput, createJsx, createObjectBindingPattern, createOperation, createOutput, createParameter, createProperty, createRequestBody, createResponse, createSchema, createSource, createText, createType, createTypeLiteral, update };
7
+ }
8
+ /**
9
+ * Identity-preserving node update: returns `node` unchanged when every field in
10
+ * `changes` already equals (by reference) the current value, otherwise a new node
11
+ * with the changes applied.
12
+ *
13
+ * Mirrors the TypeScript compiler's `factory.updateX` contract, pair it with the
14
+ * structural sharing in {@link transform} so a no-op rewrite doesn't allocate and
15
+ * downstream passes can detect "nothing changed" by identity. Comparison is
16
+ * shallow: a structurally-equal but newly-allocated array/object counts as a change.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * update(node, { name: node.name }) // -> same `node` reference
21
+ * update(node, { name: 'renamed' }) // -> new node, `name` replaced
22
+ * ```
23
+ */
24
+ declare function update<T extends Node>(node: T, changes: Partial<T>): T;
25
+ /**
26
+ * Input descriptor for {@link createFile}, before `id`, `name`, and `extname` are computed
27
+ * and `imports`/`exports`/`sources` are deduplicated.
28
+ */
29
+ type UserFileNode<TMeta extends object = object> = Omit<FileNode<TMeta>, 'kind' | 'id' | 'name' | 'extname' | 'imports' | 'exports' | 'sources'> & Pick<Partial<FileNode<TMeta>>, 'imports' | 'exports' | 'sources'>;
30
+ /**
31
+ * Creates a fully resolved `FileNode` from a file input descriptor.
32
+ *
33
+ * Computes:
34
+ * - `id` SHA256 hash of the file path
35
+ * - `name` `baseName` without extension
36
+ * - `extname` extension extracted from `baseName`
37
+ *
38
+ * Deduplicates:
39
+ * - `sources` via `combineSources`
40
+ * - `exports` via `combineExports`
41
+ * - `imports` via `combineImports` (also filters unused imports)
42
+ *
43
+ * @throws {Error} when `baseName` has no extension.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * const file = createFile({
48
+ * baseName: 'petStore.ts',
49
+ * path: 'src/models/petStore.ts',
50
+ * sources: [createSource({ name: 'Pet', nodes: [createText('export type Pet = { id: number }')] })],
51
+ * imports: [createImport({ name: ['z'], path: 'zod' })],
52
+ * exports: [createExport({ name: ['Pet'], path: './petStore' })],
53
+ * })
54
+ * // file.id = SHA256 hash of 'src/models/petStore.ts'
55
+ * // file.name = 'petStore'
56
+ * // file.extname = '.ts'
57
+ * ```
58
+ */
59
+ declare function createFile<TMeta extends object = object>(input: UserFileNode<TMeta>): FileNode<TMeta>;
60
+ //#endregion
61
+ export { UserFileNode, createArrowFunction, createBreak, createConst, createContent, createExport, createFile, createFunction, createFunctionParameter, createFunctionParameters, createImport, createIndexedAccessType, createInput, createJsx, createObjectBindingPattern, createOperation, createOutput, createParameter, createProperty, createRequestBody, createResponse, createSchema, createSource, createText, createType, createTypeLiteral, factory_d_exports as t, update };
62
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { B as createText, C as createExport, F as createArrowFunction, I as createBreak, K as createProperty, L as createConst, R as createFunction, T as createSource, V as createType, Z as createSchema, _ as createTypeLiteral, a as createOutput, d as createInput, g as createObjectBindingPattern, h as createIndexedAccessType, j as createContent, l as createRequestBody, m as createFunctionParameters, p as createFunctionParameter, r as createParameter, s as createOperation, t as createResponse, w as createImport, z as createJsx } from "./response-DKxTr522.js";
2
+ import { r as update, t as createFile } from "./factory-Du7nEP4B.js";
3
+ export { createArrowFunction, createBreak, createConst, createContent, createExport, createFile, createFunction, createFunctionParameter, createFunctionParameters, createImport, createIndexedAccessType, createInput, createJsx, createObjectBindingPattern, createOperation, createOutput, createParameter, createProperty, createRequestBody, createResponse, createSchema, createSource, createText, createType, createTypeLiteral, update };