@codenotch/codenotch.cli 1.0.35 → 1.0.37

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 (149) hide show
  1. package/README.md +2 -2
  2. package/dist/commands/generate/app.d.ts +2 -0
  3. package/dist/commands/generate/app.js +45 -0
  4. package/dist/commands/generate/app.js.map +1 -0
  5. package/dist/commands/generate/appmanifest.d.ts +2 -0
  6. package/dist/commands/generate/appmanifest.js +34 -0
  7. package/dist/commands/generate/appmanifest.js.map +1 -0
  8. package/dist/commands/generate/dbcontext.d.ts +2 -0
  9. package/dist/commands/generate/dbcontext.js +32 -0
  10. package/dist/commands/generate/dbcontext.js.map +1 -0
  11. package/dist/commands/generate/i18n.d.ts +2 -0
  12. package/dist/commands/generate/i18n.js +29 -0
  13. package/dist/commands/generate/i18n.js.map +1 -0
  14. package/dist/commands/generate/index.d.ts +2 -0
  15. package/dist/commands/generate/index.js +23 -0
  16. package/dist/commands/generate/index.js.map +1 -0
  17. package/dist/commands/generate/manifest.d.ts +2 -0
  18. package/dist/commands/generate/manifest.js +29 -0
  19. package/dist/commands/generate/manifest.js.map +1 -0
  20. package/dist/commands/generate/openapi.d.ts +2 -0
  21. package/dist/commands/generate/openapi.js +32 -0
  22. package/dist/commands/generate/openapi.js.map +1 -0
  23. package/dist/commands/generate/pkg.d.ts +2 -0
  24. package/dist/commands/generate/pkg.js +34 -0
  25. package/dist/commands/generate/pkg.js.map +1 -0
  26. package/dist/commands/generate/shared.d.ts +17 -0
  27. package/dist/commands/generate/shared.js +70 -0
  28. package/dist/commands/generate/shared.js.map +1 -0
  29. package/dist/commands/index.js +2 -0
  30. package/dist/commands/index.js.map +1 -1
  31. package/dist/commands/project/new.js +107 -187
  32. package/dist/commands/project/new.js.map +1 -1
  33. package/dist/commands/react/build.js +11 -5
  34. package/dist/commands/react/build.js.map +1 -1
  35. package/dist/commands/react/clean.d.ts +2 -0
  36. package/dist/commands/react/clean.js +46 -0
  37. package/dist/commands/react/clean.js.map +1 -0
  38. package/dist/commands/react/dev.d.ts +2 -0
  39. package/dist/commands/react/dev.js +27 -0
  40. package/dist/commands/react/dev.js.map +1 -0
  41. package/dist/commands/react/index.js +5 -1
  42. package/dist/commands/react/index.js.map +1 -1
  43. package/dist/commands/react/serve.js +33 -4
  44. package/dist/commands/react/serve.js.map +1 -1
  45. package/dist/commands/react/shared.d.ts +21 -0
  46. package/dist/commands/react/shared.js +80 -0
  47. package/dist/commands/react/shared.js.map +1 -0
  48. package/dist/commands/system/info.js +0 -7
  49. package/dist/commands/system/info.js.map +1 -1
  50. package/dist/commands/validation/ValidationUtils.d.ts +3 -13
  51. package/dist/commands/validation/ValidationUtils.js +5 -58
  52. package/dist/commands/validation/ValidationUtils.js.map +1 -1
  53. package/dist/commands/validation/files/AppManifestValidator.js +5 -20
  54. package/dist/commands/validation/files/AppManifestValidator.js.map +1 -1
  55. package/dist/commands/validation/files/I18nValidator.d.ts +24 -0
  56. package/dist/commands/validation/files/I18nValidator.js +190 -5
  57. package/dist/commands/validation/files/I18nValidator.js.map +1 -1
  58. package/dist/commands/validation/files/{BpmnValidator.d.ts → ProjectManifestValidator.d.ts} +1 -1
  59. package/dist/commands/validation/files/ProjectManifestValidator.js +31 -0
  60. package/dist/commands/validation/files/ProjectManifestValidator.js.map +1 -0
  61. package/dist/commands/validation/files/ScriptValidator.d.ts +6 -2
  62. package/dist/commands/validation/files/ScriptValidator.js +1 -1
  63. package/dist/commands/validation/files/ScriptValidator.js.map +1 -1
  64. package/dist/commands/validation/validate.js +15 -46
  65. package/dist/commands/validation/validate.js.map +1 -1
  66. package/dist/models/Codenotch.d.ts +0 -205
  67. package/dist/models/Codenotch.js +0 -211
  68. package/dist/models/Codenotch.js.map +1 -1
  69. package/dist/utils/BuildUtils.d.ts +66 -28
  70. package/dist/utils/BuildUtils.js +292 -330
  71. package/dist/utils/BuildUtils.js.map +1 -1
  72. package/dist/utils/ConsoleUtils.d.ts +13 -0
  73. package/dist/utils/ConsoleUtils.js +50 -0
  74. package/dist/utils/ConsoleUtils.js.map +1 -1
  75. package/dist/utils/DbSchemaUtils.d.ts +49 -0
  76. package/dist/utils/DbSchemaUtils.js +246 -0
  77. package/dist/utils/DbSchemaUtils.js.map +1 -0
  78. package/dist/utils/FileUtils.d.ts +104 -15
  79. package/dist/utils/FileUtils.js +285 -100
  80. package/dist/utils/FileUtils.js.map +1 -1
  81. package/dist/utils/GitHubAuthUtils.js.map +1 -1
  82. package/dist/utils/I18nTsUtils.d.ts +66 -0
  83. package/dist/utils/I18nTsUtils.js +221 -0
  84. package/dist/utils/I18nTsUtils.js.map +1 -0
  85. package/dist/utils/ManifestUtils.d.ts +24 -0
  86. package/dist/utils/ManifestUtils.js +53 -0
  87. package/dist/utils/ManifestUtils.js.map +1 -0
  88. package/dist/utils/OpenApiUtils.d.ts +81 -0
  89. package/dist/utils/OpenApiUtils.js +123 -0
  90. package/dist/utils/OpenApiUtils.js.map +1 -0
  91. package/dist/utils/ProjectCompilationUtils.d.ts +3 -30
  92. package/dist/utils/ProjectCompilationUtils.js +26 -760
  93. package/dist/utils/ProjectCompilationUtils.js.map +1 -1
  94. package/dist/utils/ProjectGeneratorUtils.d.ts +35 -0
  95. package/dist/utils/ProjectGeneratorUtils.js +119 -0
  96. package/dist/utils/ProjectGeneratorUtils.js.map +1 -0
  97. package/dist/utils/ProjectTemplates.d.ts +102 -0
  98. package/dist/utils/ProjectTemplates.js +284 -0
  99. package/dist/utils/ProjectTemplates.js.map +1 -0
  100. package/dist/utils/ProjectUtils.d.ts +217 -4
  101. package/dist/utils/ProjectUtils.js +386 -50
  102. package/dist/utils/ProjectUtils.js.map +1 -1
  103. package/dist/utils/RuntimeUtils.js +14 -8
  104. package/dist/utils/RuntimeUtils.js.map +1 -1
  105. package/dist/utils/ScriptDeclarationUtils.d.ts +169 -0
  106. package/dist/utils/ScriptDeclarationUtils.js +398 -0
  107. package/dist/utils/ScriptDeclarationUtils.js.map +1 -0
  108. package/dist/utils/ServeUtils.d.ts +0 -1
  109. package/dist/utils/ServeUtils.js +11 -29
  110. package/dist/utils/ServeUtils.js.map +1 -1
  111. package/dist/utils/ShellUtils.d.ts +6 -0
  112. package/dist/utils/ShellUtils.js +13 -0
  113. package/dist/utils/ShellUtils.js.map +1 -1
  114. package/dist/utils/TemplateUtils.d.ts +62 -0
  115. package/dist/utils/TemplateUtils.js +218 -0
  116. package/dist/utils/TemplateUtils.js.map +1 -0
  117. package/dist/utils/TypeSchemaUtils.d.ts +42 -0
  118. package/dist/utils/TypeSchemaUtils.js +171 -0
  119. package/dist/utils/TypeSchemaUtils.js.map +1 -0
  120. package/package.json +3 -3
  121. package/dist/commands/validation/files/BpmnValidator.js +0 -32
  122. package/dist/commands/validation/files/BpmnValidator.js.map +0 -1
  123. package/dist/commands/validation/files/DbSchemaValidator.d.ts +0 -5
  124. package/dist/commands/validation/files/DbSchemaValidator.js +0 -16
  125. package/dist/commands/validation/files/DbSchemaValidator.js.map +0 -1
  126. package/dist/commands/validation/files/DocumentValidator.d.ts +0 -5
  127. package/dist/commands/validation/files/DocumentValidator.js +0 -12
  128. package/dist/commands/validation/files/DocumentValidator.js.map +0 -1
  129. package/dist/commands/validation/files/ManifestCacheValidator.d.ts +0 -5
  130. package/dist/commands/validation/files/ManifestCacheValidator.js +0 -121
  131. package/dist/commands/validation/files/ManifestCacheValidator.js.map +0 -1
  132. package/dist/commands/validation/files/ManifestValidator.d.ts +0 -5
  133. package/dist/commands/validation/files/ManifestValidator.js +0 -14
  134. package/dist/commands/validation/files/ManifestValidator.js.map +0 -1
  135. package/dist/commands/validation/files/TableValidator.d.ts +0 -5
  136. package/dist/commands/validation/files/TableValidator.js +0 -19
  137. package/dist/commands/validation/files/TableValidator.js.map +0 -1
  138. package/dist/models/DbModels.d.ts +0 -221
  139. package/dist/models/DbModels.js +0 -130
  140. package/dist/models/DbModels.js.map +0 -1
  141. package/dist/models/OpenApiModels.d.ts +0 -115
  142. package/dist/models/OpenApiModels.js +0 -103
  143. package/dist/models/OpenApiModels.js.map +0 -1
  144. package/dist/utils/I18nUtils.d.ts +0 -9
  145. package/dist/utils/I18nUtils.js +0 -54
  146. package/dist/utils/I18nUtils.js.map +0 -1
  147. package/dist/utils/OpenAPIUtils.d.ts +0 -33
  148. package/dist/utils/OpenAPIUtils.js +0 -279
  149. package/dist/utils/OpenAPIUtils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeUtils.js","sourceRoot":"","sources":["../../src/utils/RuntimeUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RuntimeUtils.js","sourceRoot":"","sources":["../../src/utils/RuntimeUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ import { IJsonSchema } from './TypeSchemaUtils';
2
+ /** A value written as a literal in the source, so known without running anything */
3
+ export type LiteralValue = string | number | boolean | null | LiteralValue[] | {
4
+ [key: string]: LiteralValue;
5
+ };
6
+ /** One call of a chain, e.g. `.default('')` in `p.text().default('')` */
7
+ export interface ICallStep {
8
+ /** Called member, e.g. 'text' then 'default'. Equal to the root when the root itself is called, as in `timer('...')` */
9
+ name: string;
10
+ /** Arguments written as literals, e.g. [''] */
11
+ arguments: LiteralValue[];
12
+ /** True when at least one argument is computed, so `arguments` is incomplete */
13
+ hasComputedArguments: boolean;
14
+ }
15
+ /**
16
+ * A property whose value is a call or a chain of calls, e.g. `trigger: api.post('/books')`
17
+ * or `id: p.integer().primary()`
18
+ */
19
+ export interface IPropertyCall {
20
+ /** Name the chain starts from, under its module name ('api', 'p', 'timer'), empty for a namespace import */
21
+ root: string;
22
+ /** Calls applied to the root, in source order */
23
+ steps: ICallStep[];
24
+ /** Whole chain as a name: 'api.post', 'timer', 'p.integer.primary' */
25
+ callee: string;
26
+ /** Arguments of the last call of the chain, the ones that usually carry the value */
27
+ arguments: LiteralValue[];
28
+ /** True when at least one argument of the chain is computed */
29
+ hasComputedArguments: boolean;
30
+ }
31
+ /** A parameter of a function property, e.g. `input: { title: string }` */
32
+ export interface IFunctionParameter {
33
+ name: string;
34
+ /** Schema of its type annotation, undefined when the parameter has none */
35
+ schema?: IJsonSchema;
36
+ /** Type annotation as written, for messages */
37
+ typeText?: string;
38
+ isOptional: boolean;
39
+ }
40
+ /**
41
+ * A property whose value is a function, e.g. `run: async (ctx, input) => { ... }`.
42
+ * Only the signature is read, the body is never looked at.
43
+ */
44
+ export interface IFunctionSignature {
45
+ parameters: IFunctionParameter[];
46
+ /** Schema of the declared return type, `Promise<T>` unwrapped. Undefined when the function declares none */
47
+ returnSchema?: IJsonSchema;
48
+ returnTypeText?: string;
49
+ isAsync: boolean;
50
+ }
51
+ /** An `export type IUser = InferEntity<typeof User>` alias */
52
+ export interface ITypeAlias {
53
+ /** Name of the alias, e.g. 'IUser' */
54
+ name: string;
55
+ /** True when the alias is exported, which it must be to be imported elsewhere */
56
+ isExported: boolean;
57
+ /** Helper it is built with, under its module name, e.g. 'InferEntity' */
58
+ helper: string;
59
+ /** Variable it refers to through 'typeof', e.g. 'User' */
60
+ targetName?: string;
61
+ }
62
+ /** What a script declares, as far as it can be read without running it */
63
+ export interface IScriptAnalysis {
64
+ declarations: IDeclarationCall[];
65
+ typeAliases: ITypeAlias[];
66
+ }
67
+ /** A call to one of the Codenotch declaration factories, e.g. `process({ id: 'CreateBook', ... })` */
68
+ export interface IDeclarationCall {
69
+ /** Factory that was called, under the name it has in the module, e.g. 'process' */
70
+ factory: string;
71
+ /** Value of the 'id' property, undefined when absent or computed (see isIdStatic) */
72
+ id?: string;
73
+ /** False when an 'id' is present but computed, so its value cannot be known without running the code */
74
+ isIdStatic: boolean;
75
+ /** Name of the variable the call is assigned to, e.g. 'createBook' */
76
+ variableName?: string;
77
+ /** True when that variable is exported */
78
+ isExported: boolean;
79
+ /** 1-based line of the call inside the file */
80
+ line: number;
81
+ /** Properties of the declaration whose value is a literal, keeping the shape of the source */
82
+ properties: Record<string, LiteralValue>;
83
+ /**
84
+ * Properties of the declaration whose value is a call, keyed by their path inside the
85
+ * declaration: 'trigger' for a process, 'properties.fullName' for a table column.
86
+ */
87
+ calls: Record<string, IPropertyCall>;
88
+ /** Properties of the declaration whose value is a function, such as the 'run' of a process */
89
+ functions: Record<string, IFunctionSignature>;
90
+ }
91
+ /**
92
+ * Reads Codenotch declarations (processes, tables, documents...) out of a script.
93
+ *
94
+ * The script is parsed with the TypeScript compiler and never executed, so discovering a
95
+ * declaration cannot run any project code. Only what is written literally is reported: an id
96
+ * built at runtime is flagged rather than guessed.
97
+ *
98
+ * Parsing is tolerant: a file that does not compile is read on a best effort basis rather than
99
+ * throwing, so an unfinished declaration is still reported. Reporting the syntax errors themselves
100
+ * is the job of the validators, not of this discovery.
101
+ */
102
+ export default abstract class ScriptDeclarationUtils {
103
+ /**
104
+ * Finds every call to one of `factoryNames`, imported from `moduleName`, in a script.
105
+ *
106
+ * Named imports, aliases (`import { process as proc }`) and namespace imports
107
+ * (`import * as cn` then `cn.process(...)`) are all recognized, and a factory that is not
108
+ * imported from that module is never reported, so a local function of the same name is ignored.
109
+ *
110
+ * @param filePath path of the script, only used to pick the syntax (tsx, jsx, ts, js)
111
+ * @param content source of the script
112
+ * @param moduleName module the factories must come from, e.g. '@codenotch/process'
113
+ * @param factoryNames declaring factories to look for, e.g. ['process']
114
+ */
115
+ static findDeclarationCalls(filePath: string, content: string, moduleName: string, factoryNames: string[]): IDeclarationCall[];
116
+ /**
117
+ * Same as {@link ScriptDeclarationUtils.findDeclarationCalls}, and also reports the type aliases
118
+ * built with one of `typeHelperNames`, such as `export type IUser = InferEntity<typeof User>`.
119
+ */
120
+ static analyzeScript(filePath: string, content: string, moduleName: string, factoryNames: string[], typeHelperNames?: string[]): IScriptAnalysis;
121
+ /**
122
+ * Reads the `export type IUser = InferEntity<typeof User>` aliases of a script
123
+ */
124
+ private static findTypeAliases;
125
+ /**
126
+ * Name of a type in terms of the module it comes from, or undefined when it is unrelated to it
127
+ */
128
+ private static resolveTypeName;
129
+ private static getScriptKind;
130
+ private static collectImports;
131
+ /**
132
+ * Name of a called expression in terms of the module it comes from: 'process', 'api.post', ...
133
+ * Returns undefined when the expression has nothing to do with the module.
134
+ */
135
+ private static resolveCallee;
136
+ private static readDeclarationCall;
137
+ /**
138
+ * Records the signature of every property holding a function, whether written as an arrow
139
+ * function, a function expression or a method: `run: async (ctx, input) => ...` and
140
+ * `async run(ctx, input) { ... }` are read the same way.
141
+ */
142
+ private static collectFunctions;
143
+ /**
144
+ * Walks an object literal and records every property whose value is a call, keyed by its path,
145
+ * so that the columns of `properties: { id: p.integer() }` are reachable as 'properties.id'.
146
+ */
147
+ private static collectCalls;
148
+ /**
149
+ * Reads a call or a chain of calls: `p.text().default('')` gives the root 'p' and the
150
+ * steps 'text' then 'default'.
151
+ */
152
+ private static readCallChain;
153
+ /**
154
+ * Name a chain starts from, under its module name. Empty for a namespace import, which
155
+ * designates the module itself rather than a value: 'cn.timer(...)' is just 'timer'.
156
+ */
157
+ private static resolveRoot;
158
+ private static readArguments;
159
+ /**
160
+ * Value of an expression when it is written literally, undefined when it is only known at runtime.
161
+ * Wrapped in an object so that a literal 'null' is not confused with 'not a literal'.
162
+ */
163
+ private static readLiteralValue;
164
+ private static getPropertyName;
165
+ /**
166
+ * Variable the call is assigned to, e.g. 'createBook' in `export const createBook = process({...})`
167
+ */
168
+ private static getAssignedVariable;
169
+ }
@@ -0,0 +1,398 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const typescript_1 = __importDefault(require("typescript"));
7
+ const TypeSchemaUtils_1 = __importDefault(require("./TypeSchemaUtils"));
8
+ /**
9
+ * Reads Codenotch declarations (processes, tables, documents...) out of a script.
10
+ *
11
+ * The script is parsed with the TypeScript compiler and never executed, so discovering a
12
+ * declaration cannot run any project code. Only what is written literally is reported: an id
13
+ * built at runtime is flagged rather than guessed.
14
+ *
15
+ * Parsing is tolerant: a file that does not compile is read on a best effort basis rather than
16
+ * throwing, so an unfinished declaration is still reported. Reporting the syntax errors themselves
17
+ * is the job of the validators, not of this discovery.
18
+ */
19
+ class ScriptDeclarationUtils {
20
+ /**
21
+ * Finds every call to one of `factoryNames`, imported from `moduleName`, in a script.
22
+ *
23
+ * Named imports, aliases (`import { process as proc }`) and namespace imports
24
+ * (`import * as cn` then `cn.process(...)`) are all recognized, and a factory that is not
25
+ * imported from that module is never reported, so a local function of the same name is ignored.
26
+ *
27
+ * @param filePath path of the script, only used to pick the syntax (tsx, jsx, ts, js)
28
+ * @param content source of the script
29
+ * @param moduleName module the factories must come from, e.g. '@codenotch/process'
30
+ * @param factoryNames declaring factories to look for, e.g. ['process']
31
+ */
32
+ static findDeclarationCalls(filePath, content, moduleName, factoryNames) {
33
+ return this.analyzeScript(filePath, content, moduleName, factoryNames).declarations;
34
+ }
35
+ /**
36
+ * Same as {@link ScriptDeclarationUtils.findDeclarationCalls}, and also reports the type aliases
37
+ * built with one of `typeHelperNames`, such as `export type IUser = InferEntity<typeof User>`.
38
+ */
39
+ static analyzeScript(filePath, content, moduleName, factoryNames, typeHelperNames = []) {
40
+ const sourceFile = typescript_1.default.createSourceFile(filePath, content, typescript_1.default.ScriptTarget.Latest, true, this.getScriptKind(filePath));
41
+ // Every name imported from the module: local name -> name inside the module
42
+ const imported = new Map();
43
+ // Names bound by 'import * as x', used as 'x.process(...)'
44
+ const namespaces = new Set();
45
+ this.collectImports(sourceFile, moduleName, imported, namespaces);
46
+ if (imported.size === 0 && namespaces.size === 0) {
47
+ return { declarations: [], typeAliases: [] };
48
+ }
49
+ const declarations = [];
50
+ const visit = (node) => {
51
+ if (typescript_1.default.isCallExpression(node)) {
52
+ const callee = this.resolveCallee(node.expression, imported, namespaces);
53
+ if (callee !== undefined && factoryNames.includes(callee)) {
54
+ declarations.push(this.readDeclarationCall(node, callee, sourceFile, imported, namespaces));
55
+ }
56
+ }
57
+ typescript_1.default.forEachChild(node, visit);
58
+ };
59
+ visit(sourceFile);
60
+ return {
61
+ declarations,
62
+ typeAliases: typeHelperNames.length === 0 ? [] : this.findTypeAliases(sourceFile, typeHelperNames, imported, namespaces)
63
+ };
64
+ }
65
+ /**
66
+ * Reads the `export type IUser = InferEntity<typeof User>` aliases of a script
67
+ */
68
+ static findTypeAliases(sourceFile, typeHelperNames, imported, namespaces) {
69
+ const results = [];
70
+ for (const statement of sourceFile.statements) {
71
+ if (!typescript_1.default.isTypeAliasDeclaration(statement) || !typescript_1.default.isTypeReferenceNode(statement.type)) {
72
+ continue;
73
+ }
74
+ const helper = this.resolveTypeName(statement.type.typeName, imported, namespaces);
75
+ if (helper === undefined || !typeHelperNames.includes(helper)) {
76
+ continue;
77
+ }
78
+ // The 'typeof User' of InferEntity<typeof User>
79
+ const argument = statement.type.typeArguments?.[0];
80
+ const targetName = argument !== undefined && typescript_1.default.isTypeQueryNode(argument) && typescript_1.default.isIdentifier(argument.exprName)
81
+ ? argument.exprName.text
82
+ : undefined;
83
+ results.push({
84
+ name: statement.name.text,
85
+ isExported: (statement.modifiers ?? []).some(modifier => modifier.kind === typescript_1.default.SyntaxKind.ExportKeyword),
86
+ helper,
87
+ targetName
88
+ });
89
+ }
90
+ return results;
91
+ }
92
+ /**
93
+ * Name of a type in terms of the module it comes from, or undefined when it is unrelated to it
94
+ */
95
+ static resolveTypeName(typeName, imported, namespaces) {
96
+ if (typescript_1.default.isIdentifier(typeName)) {
97
+ return imported.get(typeName.text);
98
+ }
99
+ // orm.InferEntity<...>, through 'import * as orm'
100
+ if (typescript_1.default.isIdentifier(typeName.left) && namespaces.has(typeName.left.text)) {
101
+ return typeName.right.text;
102
+ }
103
+ return undefined;
104
+ }
105
+ static getScriptKind(filePath) {
106
+ const lowerCased = filePath.toLowerCase();
107
+ if (lowerCased.endsWith('.tsx')) {
108
+ return typescript_1.default.ScriptKind.TSX;
109
+ }
110
+ if (lowerCased.endsWith('.jsx')) {
111
+ return typescript_1.default.ScriptKind.JSX;
112
+ }
113
+ if (lowerCased.endsWith('.js') || lowerCased.endsWith('.mjs') || lowerCased.endsWith('.cjs')) {
114
+ return typescript_1.default.ScriptKind.JS;
115
+ }
116
+ return typescript_1.default.ScriptKind.TS;
117
+ }
118
+ static collectImports(sourceFile, moduleName, imported, namespaces) {
119
+ for (const statement of sourceFile.statements) {
120
+ if (!typescript_1.default.isImportDeclaration(statement) || !typescript_1.default.isStringLiteral(statement.moduleSpecifier)) {
121
+ continue;
122
+ }
123
+ if (statement.moduleSpecifier.text !== moduleName || statement.importClause === undefined) {
124
+ continue;
125
+ }
126
+ const bindings = statement.importClause.namedBindings;
127
+ if (bindings !== undefined && typescript_1.default.isNamespaceImport(bindings)) {
128
+ namespaces.add(bindings.name.text);
129
+ }
130
+ else if (bindings !== undefined && typescript_1.default.isNamedImports(bindings)) {
131
+ for (const element of bindings.elements) {
132
+ // 'process as proc' gives propertyName 'process' and name 'proc'
133
+ imported.set(element.name.text, (element.propertyName ?? element.name).text);
134
+ }
135
+ }
136
+ }
137
+ }
138
+ /**
139
+ * Name of a called expression in terms of the module it comes from: 'process', 'api.post', ...
140
+ * Returns undefined when the expression has nothing to do with the module.
141
+ */
142
+ static resolveCallee(expression, imported, namespaces) {
143
+ // process({ ... })
144
+ if (typescript_1.default.isIdentifier(expression)) {
145
+ return imported.get(expression.text);
146
+ }
147
+ if (typescript_1.default.isPropertyAccessExpression(expression) && typescript_1.default.isIdentifier(expression.expression)) {
148
+ // cn.process({ ... }), through 'import * as cn'
149
+ if (namespaces.has(expression.expression.text)) {
150
+ return expression.name.text;
151
+ }
152
+ // api.post('/books'), where 'api' is imported from the module
153
+ const root = imported.get(expression.expression.text);
154
+ if (root !== undefined) {
155
+ return `${root}.${expression.name.text}`;
156
+ }
157
+ }
158
+ return undefined;
159
+ }
160
+ static readDeclarationCall(call, factory, sourceFile, imported, namespaces) {
161
+ const properties = {};
162
+ const calls = {};
163
+ const functions = {};
164
+ const argument = call.arguments[0];
165
+ let hasIdProperty = false;
166
+ if (argument !== undefined && typescript_1.default.isObjectLiteralExpression(argument)) {
167
+ const literal = this.readLiteralValue(argument);
168
+ if (literal !== undefined && typeof literal.literal === 'object' && literal.literal !== null && !Array.isArray(literal.literal)) {
169
+ Object.assign(properties, literal.literal);
170
+ }
171
+ this.collectCalls(argument, '', imported, namespaces, calls);
172
+ this.collectFunctions(argument, functions);
173
+ hasIdProperty = argument.properties.some(property => property.name !== undefined && this.getPropertyName(property.name) === 'id');
174
+ }
175
+ const id = typeof properties['id'] === 'string' ? properties['id'] : undefined;
176
+ const { variableName, isExported } = this.getAssignedVariable(call);
177
+ return {
178
+ factory,
179
+ id,
180
+ // An id that is present but absent from the literal properties was computed
181
+ isIdStatic: id !== undefined || !hasIdProperty,
182
+ variableName,
183
+ isExported,
184
+ line: sourceFile.getLineAndCharacterOfPosition(call.getStart(sourceFile)).line + 1,
185
+ properties,
186
+ calls,
187
+ functions
188
+ };
189
+ }
190
+ /**
191
+ * Records the signature of every property holding a function, whether written as an arrow
192
+ * function, a function expression or a method: `run: async (ctx, input) => ...` and
193
+ * `async run(ctx, input) { ... }` are read the same way.
194
+ */
195
+ static collectFunctions(objectLiteral, results) {
196
+ for (const property of objectLiteral.properties) {
197
+ let name;
198
+ let fn;
199
+ if (typescript_1.default.isPropertyAssignment(property) && (typescript_1.default.isArrowFunction(property.initializer) || typescript_1.default.isFunctionExpression(property.initializer))) {
200
+ name = this.getPropertyName(property.name);
201
+ fn = property.initializer;
202
+ }
203
+ else if (typescript_1.default.isMethodDeclaration(property)) {
204
+ name = this.getPropertyName(property.name);
205
+ fn = property;
206
+ }
207
+ if (name === undefined || fn === undefined) {
208
+ continue;
209
+ }
210
+ results[name] = {
211
+ parameters: fn.parameters.map(parameter => ({
212
+ name: typescript_1.default.isIdentifier(parameter.name) ? parameter.name.text : parameter.name.getText(),
213
+ schema: parameter.type === undefined ? undefined : TypeSchemaUtils_1.default.fromTypeNode(parameter.type),
214
+ typeText: parameter.type?.getText(),
215
+ isOptional: parameter.questionToken !== undefined || parameter.initializer !== undefined
216
+ })),
217
+ returnSchema: fn.type === undefined ? undefined : TypeSchemaUtils_1.default.fromTypeNode(fn.type),
218
+ returnTypeText: fn.type?.getText(),
219
+ isAsync: (typescript_1.default.canHaveModifiers(fn) ? typescript_1.default.getModifiers(fn) ?? [] : []).some(modifier => modifier.kind === typescript_1.default.SyntaxKind.AsyncKeyword)
220
+ };
221
+ }
222
+ }
223
+ /**
224
+ * Walks an object literal and records every property whose value is a call, keyed by its path,
225
+ * so that the columns of `properties: { id: p.integer() }` are reachable as 'properties.id'.
226
+ */
227
+ static collectCalls(objectLiteral, prefix, imported, namespaces, results) {
228
+ for (const property of objectLiteral.properties) {
229
+ // Shorthand ({ id }), spreads ({ ...base }) and methods hold no readable value
230
+ if (!typescript_1.default.isPropertyAssignment(property)) {
231
+ continue;
232
+ }
233
+ const name = this.getPropertyName(property.name);
234
+ if (name === undefined) {
235
+ continue;
236
+ }
237
+ const path = prefix === '' ? name : `${prefix}.${name}`;
238
+ const value = property.initializer;
239
+ if (typescript_1.default.isCallExpression(value)) {
240
+ results[path] = this.readCallChain(value, imported, namespaces);
241
+ }
242
+ else if (typescript_1.default.isObjectLiteralExpression(value)) {
243
+ this.collectCalls(value, path, imported, namespaces, results);
244
+ }
245
+ }
246
+ }
247
+ /**
248
+ * Reads a call or a chain of calls: `p.text().default('')` gives the root 'p' and the
249
+ * steps 'text' then 'default'.
250
+ */
251
+ static readCallChain(call, imported, namespaces) {
252
+ const steps = [];
253
+ let current = call;
254
+ let root = '';
255
+ // Walk the chain from its end back to its root, hence the unshift
256
+ while (true) {
257
+ if (typescript_1.default.isCallExpression(current)) {
258
+ const args = this.readArguments(current);
259
+ if (typescript_1.default.isPropertyAccessExpression(current.expression)) {
260
+ steps.unshift({ name: current.expression.name.text, ...args });
261
+ current = current.expression.expression;
262
+ continue;
263
+ }
264
+ if (typescript_1.default.isIdentifier(current.expression)) {
265
+ // The root itself is called, as in timer('0 8 * * *')
266
+ root = this.resolveRoot(current.expression, imported, namespaces);
267
+ steps.unshift({ name: root, ...args });
268
+ break;
269
+ }
270
+ root = current.expression.getText();
271
+ break;
272
+ }
273
+ if (typescript_1.default.isIdentifier(current)) {
274
+ root = this.resolveRoot(current, imported, namespaces);
275
+ break;
276
+ }
277
+ root = current.getText();
278
+ break;
279
+ }
280
+ const names = steps.map(step => step.name);
281
+ const callee = root === '' || names[0] === root
282
+ // A namespace is the module itself, and a root that is called is already the first step
283
+ ? names.join('.')
284
+ : [root, ...names].join('.');
285
+ const last = steps[steps.length - 1];
286
+ return {
287
+ root,
288
+ steps,
289
+ callee,
290
+ arguments: last?.arguments ?? [],
291
+ hasComputedArguments: steps.some(step => step.hasComputedArguments)
292
+ };
293
+ }
294
+ /**
295
+ * Name a chain starts from, under its module name. Empty for a namespace import, which
296
+ * designates the module itself rather than a value: 'cn.timer(...)' is just 'timer'.
297
+ */
298
+ static resolveRoot(identifier, imported, namespaces) {
299
+ if (namespaces.has(identifier.text)) {
300
+ return '';
301
+ }
302
+ return imported.get(identifier.text) ?? identifier.text;
303
+ }
304
+ static readArguments(call) {
305
+ const args = [];
306
+ let hasComputedArguments = false;
307
+ for (const argument of call.arguments) {
308
+ const value = this.readLiteralValue(argument);
309
+ if (value === undefined) {
310
+ hasComputedArguments = true;
311
+ continue;
312
+ }
313
+ args.push(value.literal);
314
+ }
315
+ return { arguments: args, hasComputedArguments };
316
+ }
317
+ /**
318
+ * Value of an expression when it is written literally, undefined when it is only known at runtime.
319
+ * Wrapped in an object so that a literal 'null' is not confused with 'not a literal'.
320
+ */
321
+ static readLiteralValue(node) {
322
+ if (typescript_1.default.isStringLiteral(node) || typescript_1.default.isNoSubstitutionTemplateLiteral(node)) {
323
+ return { literal: node.text };
324
+ }
325
+ if (typescript_1.default.isNumericLiteral(node)) {
326
+ return { literal: Number(node.text) };
327
+ }
328
+ if (node.kind === typescript_1.default.SyntaxKind.TrueKeyword) {
329
+ return { literal: true };
330
+ }
331
+ if (node.kind === typescript_1.default.SyntaxKind.FalseKeyword) {
332
+ return { literal: false };
333
+ }
334
+ if (node.kind === typescript_1.default.SyntaxKind.NullKeyword) {
335
+ return { literal: null };
336
+ }
337
+ // -1 and friends
338
+ if (typescript_1.default.isPrefixUnaryExpression(node) && node.operator === typescript_1.default.SyntaxKind.MinusToken && typescript_1.default.isNumericLiteral(node.operand)) {
339
+ return { literal: -Number(node.operand.text) };
340
+ }
341
+ // 'x satisfies T' and 'x as T' do not change the value
342
+ if (typescript_1.default.isAsExpression(node) || typescript_1.default.isSatisfiesExpression(node) || typescript_1.default.isParenthesizedExpression(node)) {
343
+ return this.readLiteralValue(node.expression);
344
+ }
345
+ if (typescript_1.default.isArrayLiteralExpression(node)) {
346
+ const items = [];
347
+ for (const element of node.elements) {
348
+ const value = this.readLiteralValue(element);
349
+ if (value === undefined) {
350
+ // A single computed item makes the whole array unknown
351
+ return undefined;
352
+ }
353
+ items.push(value.literal);
354
+ }
355
+ return { literal: items };
356
+ }
357
+ if (typescript_1.default.isObjectLiteralExpression(node)) {
358
+ const record = {};
359
+ for (const property of node.properties) {
360
+ if (!typescript_1.default.isPropertyAssignment(property)) {
361
+ continue;
362
+ }
363
+ const name = this.getPropertyName(property.name);
364
+ const value = name === undefined ? undefined : this.readLiteralValue(property.initializer);
365
+ if (name !== undefined && value !== undefined) {
366
+ record[name] = value.literal;
367
+ }
368
+ // A computed member is left out, the rest of the object stays usable
369
+ }
370
+ return { literal: record };
371
+ }
372
+ return undefined;
373
+ }
374
+ static getPropertyName(name) {
375
+ if (typescript_1.default.isIdentifier(name) || typescript_1.default.isStringLiteral(name) || typescript_1.default.isNumericLiteral(name)) {
376
+ return name.text;
377
+ }
378
+ return undefined;
379
+ }
380
+ /**
381
+ * Variable the call is assigned to, e.g. 'createBook' in `export const createBook = process({...})`
382
+ */
383
+ static getAssignedVariable(call) {
384
+ const declaration = call.parent;
385
+ if (declaration === undefined || !typescript_1.default.isVariableDeclaration(declaration) || declaration.initializer !== call) {
386
+ return { isExported: false };
387
+ }
388
+ const variableName = typescript_1.default.isIdentifier(declaration.name) ? declaration.name.text : undefined;
389
+ // VariableDeclaration -> VariableDeclarationList -> VariableStatement, which carries the 'export'
390
+ const statement = declaration.parent?.parent;
391
+ const isExported = statement !== undefined
392
+ && typescript_1.default.isVariableStatement(statement)
393
+ && (statement.modifiers ?? []).some(modifier => modifier.kind === typescript_1.default.SyntaxKind.ExportKeyword);
394
+ return { variableName, isExported };
395
+ }
396
+ }
397
+ exports.default = ScriptDeclarationUtils;
398
+ //# sourceMappingURL=ScriptDeclarationUtils.js.map