@webda/content-mapper 0.0.0-stage → 4.0.0-beta.5

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 (115) hide show
  1. package/LICENSE +166 -0
  2. package/lib/coercions.d.ts +22 -0
  3. package/lib/coercions.d.ts.map +1 -0
  4. package/lib/coercions.js +10 -0
  5. package/lib/coercions.js.map +1 -0
  6. package/lib/context.d.ts +56 -0
  7. package/lib/context.d.ts.map +1 -0
  8. package/lib/context.js +111 -0
  9. package/lib/context.js.map +1 -0
  10. package/lib/defaults.d.ts +31 -0
  11. package/lib/defaults.d.ts.map +1 -0
  12. package/lib/defaults.js +33 -0
  13. package/lib/defaults.js.map +1 -0
  14. package/lib/generators/accessors.d.ts +15 -0
  15. package/lib/generators/accessors.d.ts.map +1 -0
  16. package/lib/generators/accessors.js +567 -0
  17. package/lib/generators/accessors.js.map +1 -0
  18. package/lib/generators/behaviors.d.ts +21 -0
  19. package/lib/generators/behaviors.d.ts.map +1 -0
  20. package/lib/generators/behaviors.js +292 -0
  21. package/lib/generators/behaviors.js.map +1 -0
  22. package/lib/generators/imports.d.ts +86 -0
  23. package/lib/generators/imports.d.ts.map +1 -0
  24. package/lib/generators/imports.js +205 -0
  25. package/lib/generators/imports.js.map +1 -0
  26. package/lib/generators/loadparameters.d.ts +7 -0
  27. package/lib/generators/loadparameters.d.ts.map +1 -0
  28. package/lib/generators/loadparameters.js +175 -0
  29. package/lib/generators/loadparameters.js.map +1 -0
  30. package/lib/generators/qlvalidator.d.ts +53 -0
  31. package/lib/generators/qlvalidator.d.ts.map +1 -0
  32. package/lib/generators/qlvalidator.js +238 -0
  33. package/lib/generators/qlvalidator.js.map +1 -0
  34. package/lib/index.d.ts +53 -0
  35. package/lib/index.d.ts.map +1 -0
  36. package/lib/index.js +36 -0
  37. package/lib/index.js.map +1 -0
  38. package/lib/module-discovery.d.ts +211 -0
  39. package/lib/module-discovery.d.ts.map +1 -0
  40. package/lib/module-discovery.js +662 -0
  41. package/lib/module-discovery.js.map +1 -0
  42. package/lib/module.d.ts +213 -0
  43. package/lib/module.d.ts.map +1 -0
  44. package/lib/module.js +1243 -0
  45. package/lib/module.js.map +1 -0
  46. package/lib/plan.d.ts +101 -0
  47. package/lib/plan.d.ts.map +1 -0
  48. package/lib/plan.js +61 -0
  49. package/lib/plan.js.map +1 -0
  50. package/lib/property-order.d.ts +37 -0
  51. package/lib/property-order.d.ts.map +1 -0
  52. package/lib/property-order.js +141 -0
  53. package/lib/property-order.js.map +1 -0
  54. package/lib/schema/action.d.ts +46 -0
  55. package/lib/schema/action.d.ts.map +1 -0
  56. package/lib/schema/action.js +190 -0
  57. package/lib/schema/action.js.map +1 -0
  58. package/lib/schema/annotations.d.ts +63 -0
  59. package/lib/schema/annotations.d.ts.map +1 -0
  60. package/lib/schema/annotations.js +116 -0
  61. package/lib/schema/annotations.js.map +1 -0
  62. package/lib/schema/converter.d.ts +363 -0
  63. package/lib/schema/converter.d.ts.map +1 -0
  64. package/lib/schema/converter.js +1377 -0
  65. package/lib/schema/converter.js.map +1 -0
  66. package/lib/schema/jsdoc.d.ts +34 -0
  67. package/lib/schema/jsdoc.d.ts.map +1 -0
  68. package/lib/schema/jsdoc.js +206 -0
  69. package/lib/schema/jsdoc.js.map +1 -0
  70. package/lib/schema/model.d.ts +27 -0
  71. package/lib/schema/model.d.ts.map +1 -0
  72. package/lib/schema/model.js +86 -0
  73. package/lib/schema/model.js.map +1 -0
  74. package/lib/schema/project.d.ts +34 -0
  75. package/lib/schema/project.d.ts.map +1 -0
  76. package/lib/schema/project.js +305 -0
  77. package/lib/schema/project.js.map +1 -0
  78. package/lib/schema/service.d.ts +62 -0
  79. package/lib/schema/service.d.ts.map +1 -0
  80. package/lib/schema/service.js +130 -0
  81. package/lib/schema/service.js.map +1 -0
  82. package/lib/schema/types.d.ts +61 -0
  83. package/lib/schema/types.d.ts.map +1 -0
  84. package/lib/schema/types.js +36 -0
  85. package/lib/schema/types.js.map +1 -0
  86. package/lib/schema/worker-cli.d.ts +3 -0
  87. package/lib/schema/worker-cli.d.ts.map +1 -0
  88. package/lib/schema/worker-cli.js +7 -0
  89. package/lib/schema/worker-cli.js.map +1 -0
  90. package/lib/schema/worker.d.ts +81 -0
  91. package/lib/schema/worker.d.ts.map +1 -0
  92. package/lib/schema/worker.js +186 -0
  93. package/lib/schema/worker.js.map +1 -0
  94. package/lib/server.d.ts +2 -0
  95. package/lib/server.d.ts.map +1 -0
  96. package/lib/server.js +133 -0
  97. package/lib/server.js.map +1 -0
  98. package/lib/session.d.ts +84 -0
  99. package/lib/session.d.ts.map +1 -0
  100. package/lib/session.js +141 -0
  101. package/lib/session.js.map +1 -0
  102. package/lib/spans.d.ts +46 -0
  103. package/lib/spans.d.ts.map +1 -0
  104. package/lib/spans.js +64 -0
  105. package/lib/spans.js.map +1 -0
  106. package/lib/twopass.d.ts +45 -0
  107. package/lib/twopass.d.ts.map +1 -0
  108. package/lib/twopass.js +87 -0
  109. package/lib/twopass.js.map +1 -0
  110. package/lib/vite.d.ts +20 -0
  111. package/lib/vite.d.ts.map +1 -0
  112. package/lib/vite.js +41 -0
  113. package/lib/vite.js.map +1 -0
  114. package/package.json +93 -3
  115. package/README.md +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/schema/converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Symbol documentation resolution, reproduced on the TypeScript 7.1 AST.
3
+ *
4
+ * `Symbol.getDocumentationComment` exists in 7.1 but answers a narrower
5
+ * question than the 6.x services layer did, and the committed
6
+ * `webda.module.json` was generated against the wider one. Three behaviours
7
+ * are missing, each of which silently drops a `description`:
8
+ *
9
+ * 1. **The JSDoc host walk.** `models: { [key: string]: string[] }` documents
10
+ * the property, but the schema is built from the anonymous type literal.
11
+ * TypeScript 6 walks from the type literal up to the property declaration
12
+ * to find the comment; 7.1 does not.
13
+ * 2. **Inheritance from base types.** A member with tags but no prose — say
14
+ * `httpOnly?: boolean` carrying only `@default true` — takes its
15
+ * description from the `implements`/`extends` clause. Most of
16
+ * `CookieOptions` is documented this way, by the `cookie` package.
17
+ * 3. **Raw `{@link}` text.** 7.1 flattens a link to its target name; 6.x
18
+ * reconstructed the braces, and whether the target resolves changes the
19
+ * result by one space.
20
+ *
21
+ * All three are reimplemented here rather than worked around, because the
22
+ * alternative is a schema that quietly loses documentation — exactly the
23
+ * class of failure stage 7 is meant to make impossible.
24
+ */
25
+ import type { Checker, Project, Symbol as TsSymbol } from "typescript/unstable/sync";
26
+ /**
27
+ * The documentation comment for a symbol, as TypeScript 6 rendered it.
28
+ * @param symbol - the symbol to document
29
+ * @param checker - checker used to resolve link targets and base types
30
+ * @param project - project used to resolve declaration handles
31
+ * @returns the comment text, empty when there is none
32
+ */
33
+ export declare function documentationOf(symbol: TsSymbol, checker: Checker, project: Project): string;
34
+ //# sourceMappingURL=jsdoc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsdoc.d.ts","sourceRoot":"","sources":["../../src/schema/jsdoc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAgBrF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAuB5F"}
@@ -0,0 +1,206 @@
1
+ import { SyntaxKind } from "typescript/unstable/ast";
2
+ /**
3
+ * The documentation comment for a symbol, as TypeScript 6 rendered it.
4
+ * @param symbol - the symbol to document
5
+ * @param checker - checker used to resolve link targets and base types
6
+ * @param project - project used to resolve declaration handles
7
+ * @returns the comment text, empty when there is none
8
+ */
9
+ export function documentationOf(symbol, checker, project) {
10
+ const declarations = symbol.declarations.map(handle => handle.resolve(project)).filter(isNode);
11
+ const blocks = [];
12
+ for (const declaration of unique(declarations)) {
13
+ for (const block of commentHavingNodes(declaration)) {
14
+ if (!block.comment || block.comment.length === 0)
15
+ continue;
16
+ const rendered = renderComment(block.comment, checker, project);
17
+ if (!blocks.includes(rendered))
18
+ blocks.push(rendered);
19
+ }
20
+ }
21
+ if (blocks.length > 0)
22
+ return blocks.join("\n");
23
+ // Nothing of its own: take the base declaration's documentation, which is
24
+ // how a member that only carries tags is still described.
25
+ for (const declaration of unique(declarations)) {
26
+ const inherited = baseSymbolOf(declaration, symbol.name, checker);
27
+ if (inherited) {
28
+ const text = documentationOf(inherited, checker, project);
29
+ if (text)
30
+ return text;
31
+ }
32
+ }
33
+ return "";
34
+ }
35
+ /**
36
+ * JSDoc blocks that document a node, including those on enclosing nodes.
37
+ *
38
+ * A type literal, an initialiser and a return expression are all documented
39
+ * by their parent, so the chain is followed upwards. Only the last block on
40
+ * each node counts — an earlier one documents whatever came before it.
41
+ * @param node - the declaration to document
42
+ * @returns the blocks, nearest first
43
+ */
44
+ function commentHavingNodes(node) {
45
+ const blocks = [];
46
+ let current = node;
47
+ while (current?.parent) {
48
+ const own = current.jsDoc;
49
+ if (own && own.length > 0)
50
+ blocks.push(own[own.length - 1]);
51
+ current = nextCommentLocation(current);
52
+ }
53
+ return blocks;
54
+ }
55
+ /**
56
+ * The enclosing node that may document this one.
57
+ * @param node - the current node
58
+ * @returns the parent when it documents `node`, otherwise undefined
59
+ */
60
+ function nextCommentLocation(node) {
61
+ const parent = node.parent;
62
+ if (!parent)
63
+ return undefined;
64
+ switch (parent.kind) {
65
+ case SyntaxKind.PropertyAssignment:
66
+ case SyntaxKind.ExportAssignment:
67
+ case SyntaxKind.PropertyDeclaration:
68
+ case SyntaxKind.ReturnStatement:
69
+ return parent;
70
+ case SyntaxKind.ExpressionStatement:
71
+ return node.kind === SyntaxKind.PropertyAccessExpression ? parent : undefined;
72
+ default:
73
+ return undefined;
74
+ }
75
+ }
76
+ /**
77
+ * Render a JSDoc comment array to text.
78
+ * @param parts - the comment nodes
79
+ * @param checker - checker used to resolve link targets
80
+ * @param project - project used to resolve declaration handles
81
+ * @returns the rendered comment
82
+ */
83
+ function renderComment(parts, checker, project) {
84
+ let out = "";
85
+ for (const part of parts) {
86
+ out += part.kind === SyntaxKind.JSDocText ? part.text : renderLink(part, checker, project);
87
+ }
88
+ // A block closed by a blank `*` line, or one followed by tags, leaves a
89
+ // trailing newline in the 7.1 AST that 6.x trimmed before handing the
90
+ // comment out. Keeping it would put `\n` at the end of a third of the
91
+ // descriptions in the corpus.
92
+ return out.replace(/\s+$/, "");
93
+ }
94
+ /**
95
+ * Render a `{@link}`, `{@linkcode}` or `{@linkplain}` back to source form.
96
+ *
97
+ * The trailing space when the target does not resolve is not a quirk worth
98
+ * smoothing over: it is in the committed schemas, so removing it is a diff.
99
+ * @param part - the link node
100
+ * @param checker - checker used to resolve the target
101
+ * @param project - project used to resolve declaration handles
102
+ * @returns the rendered link, braces included
103
+ */
104
+ function renderLink(part, checker, project) {
105
+ const prefix = part.kind === SyntaxKind.JSDocLinkCode
106
+ ? "linkcode"
107
+ : part.kind === SyntaxKind.JSDocLinkPlain
108
+ ? "linkplain"
109
+ : "link";
110
+ if (!part.name)
111
+ return `{@${prefix} ${part.text}}`;
112
+ const suffix = linkNameEnd(part.text);
113
+ const name = nameText(part.name) + part.text.slice(0, suffix);
114
+ const text = stripSeparator(part.text.slice(suffix));
115
+ const symbol = checker.getSymbolAtLocation(part.name);
116
+ const declaration = symbol?.valueDeclaration?.resolve(project) ?? symbol?.declarations[0]?.resolve(project);
117
+ const body = declaration ? name + text : name + (suffix ? "" : " ") + text;
118
+ return `{@${prefix} ${body}}`;
119
+ }
120
+ /**
121
+ * How much of a link's trailing text still belongs to the target name.
122
+ *
123
+ * `{@link fn()}` and `{@link Box<T>}` carry the call or type arguments in the
124
+ * text rather than the name node.
125
+ * @param text - the text following the link name
126
+ * @returns the number of leading characters belonging to the name
127
+ */
128
+ function linkNameEnd(text) {
129
+ if (text.startsWith("()"))
130
+ return 2;
131
+ if (text[0] !== "<")
132
+ return 0;
133
+ let depth = 0;
134
+ for (let index = 0; index < text.length; index++) {
135
+ if (text[index] === "<")
136
+ depth++;
137
+ if (text[index] === ">")
138
+ depth--;
139
+ if (depth === 0)
140
+ return index + 1;
141
+ }
142
+ return 0;
143
+ }
144
+ /**
145
+ * Drop the `|` separator between a link target and its display text.
146
+ * @param text - the text after the target name
147
+ * @returns the display text
148
+ */
149
+ function stripSeparator(text) {
150
+ if (text[0] !== "|")
151
+ return text;
152
+ return text.slice(1).replace(/^ +/, "");
153
+ }
154
+ /**
155
+ * Source text of an entity name.
156
+ * @param node - an identifier or qualified name
157
+ * @returns the dotted name
158
+ */
159
+ function nameText(node) {
160
+ const qualified = node;
161
+ if (qualified.left && qualified.right)
162
+ return `${nameText(qualified.left)}.${qualified.right.text}`;
163
+ return qualified.text ?? "";
164
+ }
165
+ /**
166
+ * The same-named member on a declaration's base or implemented types.
167
+ * @param declaration - the member declaration
168
+ * @param name - the member name
169
+ * @param checker - checker used to resolve heritage types
170
+ * @returns the base member's symbol, when one exists
171
+ */
172
+ function baseSymbolOf(declaration, name, checker) {
173
+ const owner = declaration.parent;
174
+ if (!owner)
175
+ return undefined;
176
+ const heritage = owner.heritageClauses;
177
+ if (!heritage)
178
+ return undefined;
179
+ for (const clause of heritage) {
180
+ for (const typeNode of clause.types) {
181
+ const baseType = checker.getTypeAtLocation(typeNode);
182
+ const member = checker.getPropertyOfType(baseType, name);
183
+ if (member)
184
+ return member;
185
+ }
186
+ }
187
+ return undefined;
188
+ }
189
+ /**
190
+ * Narrow away undefined entries.
191
+ * @param node - a possibly missing value
192
+ * @returns true when present
193
+ * @typeParam T - the value type
194
+ */
195
+ function isNode(node) {
196
+ return node !== undefined;
197
+ }
198
+ /**
199
+ * Deduplicate declarations while preserving order.
200
+ * @param nodes - the declarations
201
+ * @returns the distinct declarations
202
+ */
203
+ function unique(nodes) {
204
+ return nodes.filter((node, index) => nodes.indexOf(node) === index);
205
+ }
206
+ //# sourceMappingURL=jsdoc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsdoc.js","sourceRoot":"","sources":["../../src/schema/jsdoc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { Checker, Project } from "typescript/unstable/sync";
2
+ import type { ClassDeclaration } from "typescript/unstable/ast";
3
+ import type { JSONSchema7 } from "./types.ts";
4
+ /** The three views of a model, as recorded in `webda.module.json`. */
5
+ export interface ModelSchemas {
6
+ /** What a client may send. */
7
+ Input: JSONSchema7;
8
+ /** What the API returns. */
9
+ Output: JSONSchema7;
10
+ /** What is persisted. */
11
+ Stored: JSONSchema7;
12
+ }
13
+ /** What is needed to convert a model. */
14
+ export interface ModelSchemaOptions {
15
+ /** Project the checker belongs to. */
16
+ project: Project;
17
+ /** The resident checker. */
18
+ checker: Checker;
19
+ }
20
+ /**
21
+ * Generate a model's Input, Output and Stored schemas.
22
+ * @param declaration - the model class
23
+ * @param options - project and checker
24
+ * @returns the three schemas, each carrying its `$webda` provenance marker
25
+ */
26
+ export declare function generateModelSchemas(declaration: ClassDeclaration, options: ModelSchemaOptions): ModelSchemas;
27
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/schema/model.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAmB,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAQ,MAAM,yBAAyB,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,sEAAsE;AACtE,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,KAAK,EAAE,WAAW,CAAC;IACnB,4BAA4B;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,yBAAyB;IACzB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,GAAG,YAAY,CAgD7G"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Model schemas — the `Schemas` field of a model entry in
3
+ * `webda.module.json`.
4
+ *
5
+ * Stage 7.2, and the part that needed the accessor read/write distinction.
6
+ * A model is described three times, from three different angles:
7
+ *
8
+ * | schema | mode | answers |
9
+ * | -------- | ---------- | ---------------------------------------- |
10
+ * | `Input` | `dto-in` | what a client may send |
11
+ * | `Output` | `dto-out` | what the API returns |
12
+ * | `Stored` | `output` | what is persisted |
13
+ *
14
+ * Each is taken from an explicit `fromDto` / `toDto` / `toJSON` when the
15
+ * model declares one, and derived from the class shape otherwise. Which of
16
+ * the two applied is recorded in `$webda` and is part of the committed
17
+ * artefact, so it has to be reproduced exactly — see
18
+ * `ModuleGenerator.generateModelSchemas`.
19
+ */
20
+ import { SignatureKind } from "typescript/unstable/sync";
21
+ import { SchemaConverter } from "./converter.js";
22
+ /**
23
+ * Generate a model's Input, Output and Stored schemas.
24
+ * @param declaration - the model class
25
+ * @param options - project and checker
26
+ * @returns the three schemas, each carrying its `$webda` provenance marker
27
+ */
28
+ export function generateModelSchemas(declaration, options) {
29
+ const { checker, project } = options;
30
+ const classType = checker.getTypeAtLocation(declaration);
31
+ /**
32
+ * The first call signature of a method on the model, if it declares one.
33
+ * @param name - the method name
34
+ * @returns the signature, when present
35
+ */
36
+ const signatureOf = (name) => {
37
+ const symbol = checker.getApparentType(classType).getProperty(name) ?? classType.getProperty(name);
38
+ if (!symbol)
39
+ return undefined;
40
+ const methodType = checker.getTypeOfSymbolAtLocation(symbol, declaration);
41
+ const signatures = checker.getSignaturesOfType(methodType, SignatureKind.Call);
42
+ return signatures.length > 0 ? signatures[0] : undefined;
43
+ };
44
+ /**
45
+ * Convert either an explicit type or the class shape.
46
+ * @param mode - which view to build
47
+ * @param explicit - the declared type, when the model provides one
48
+ * @param marker - the `$webda` value for whichever applied
49
+ * @returns the schema
50
+ */
51
+ const build = (mode, explicit, marker) => {
52
+ const converter = new SchemaConverter({ project, checker, mode });
53
+ const schema = explicit ? converter.fromType(explicit, declaration) : converter.fromNode(declaration);
54
+ schema.$webda = marker;
55
+ return schema;
56
+ };
57
+ const toDto = signatureOf("toDto");
58
+ const fromDto = signatureOf("fromDto");
59
+ const toJSON = signatureOf("toJSON");
60
+ return {
61
+ Output: build("dto-out", toDto && checker.getReturnTypeOfSignature(toDto), toDto ? "toDto$return" : "toDto$auto"),
62
+ Input: build("dto-in", fromDto && firstParameterType(fromDto, declaration, options), fromDto ? "fromDto$param" : "fromDto$auto"),
63
+ Stored: build("output", toJSON && checker.getReturnTypeOfSignature(toJSON), toJSON ? "toJSON$return" : "toJSON$auto")
64
+ };
65
+ }
66
+ /**
67
+ * The declared type of a signature's first parameter.
68
+ *
69
+ * Read from the declaration rather than the signature where possible: a
70
+ * parameter's contextual type can be narrowed, and the Input schema wants
71
+ * what was written down.
72
+ * @param signature - the signature
73
+ * @param location - fallback resolution context
74
+ * @param options - project and checker
75
+ * @returns the parameter type
76
+ */
77
+ function firstParameterType(signature, location, options) {
78
+ const parameter = signature.getParameters()[0];
79
+ const declaration = parameter?.valueDeclaration?.resolve(options.project) ?? parameter?.declarations[0]?.resolve(options.project);
80
+ if (declaration)
81
+ return options.checker.getTypeAtLocation(declaration);
82
+ return parameter
83
+ ? options.checker.getTypeOfSymbolAtLocation(parameter, location)
84
+ : options.checker.getParameterType(signature, 0);
85
+ }
86
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/schema/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { MethodDeclaration } from "typescript/unstable/ast";
2
+ import type { AnalysisContext } from "../plan.ts";
3
+ import type { JSONSchema7 } from "./types.ts";
4
+ /** What is needed to build the whole map. */
5
+ export interface TopLevelSchemaOptions {
6
+ /** Application root. */
7
+ appPath: string;
8
+ /** Source root; classes outside it belong to dependencies. */
9
+ rootDir: string;
10
+ /** Output root, for the discovery pass. */
11
+ outDir: string;
12
+ /** Namespace prefix applied to unqualified names. */
13
+ namespace?: string;
14
+ }
15
+ /**
16
+ * Build every top-level schema for a project.
17
+ * @param ctx - analysis context, whose `sourceFiles` are the project's own
18
+ * @param options - roots and namespace
19
+ * @returns the `schemas` map
20
+ */
21
+ export declare function generateTopLevelSchemas(ctx: AnalysisContext, options: TopLevelSchemaOptions): Record<string, JSONSchema7>;
22
+ /**
23
+ * The string-literal `name` option of a method's `@Action`/`@Operation`.
24
+ * @param method - the method declaration
25
+ * @returns the name, or undefined when the decorator sets none
26
+ */
27
+ export declare function actionNameOption(method: MethodDeclaration): string | undefined;
28
+ /**
29
+ * Read a project's namespace the way `WebdaProject` does.
30
+ * @param appPath - application root
31
+ * @returns the namespace, when one applies
32
+ */
33
+ export declare function namespaceOf(appPath: string): string | undefined;
34
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/schema/project.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAoB,iBAAiB,EAAQ,MAAM,yBAAyB,CAAC;AAIzF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,6CAA6C;AAC7C,MAAM,WAAW,qBAAqB;IACpC,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,qBAAqB,GAC7B,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAyB7B;AA2LD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAqB9E;AAWD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgB/D"}