twenty-sdk 0.1.0 → 0.1.2

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 (103) hide show
  1. package/README.md +1 -1
  2. package/dist/_commonjsHelpers-DKOUU3wS.js +1 -0
  3. package/dist/_commonjsHelpers-DaMA6jEr.mjs +8 -0
  4. package/dist/application/application-config.d.ts +0 -2
  5. package/dist/application/field-metadata/composite-fields.d.ts +0 -1
  6. package/dist/application/field-metadata/field-type.d.ts +0 -1
  7. package/dist/application/field-metadata/field.decorator.d.ts +1 -3
  8. package/dist/application/field-metadata/on-delete-action.d.ts +0 -1
  9. package/dist/application/field-metadata/relation-type.d.ts +0 -1
  10. package/dist/application/field-metadata/relation.decorator.d.ts +1 -3
  11. package/dist/application/function-config.d.ts +0 -2
  12. package/dist/application/index.d.ts +0 -1
  13. package/dist/application/object-metadata/object.decorator.d.ts +0 -2
  14. package/dist/application/object-metadata/standard-object-ids.d.ts +0 -1
  15. package/dist/application/syncable-entity-options.type.d.ts +0 -1
  16. package/dist/cli/cli.d.ts +2 -0
  17. package/dist/cli/commands/app-add.command.d.ts +12 -0
  18. package/dist/cli/commands/app-dev.command.d.ts +10 -0
  19. package/dist/cli/commands/app-generate.command.d.ts +4 -0
  20. package/dist/cli/commands/app-sync.command.d.ts +7 -0
  21. package/dist/cli/commands/app-uninstall.command.d.ts +9 -0
  22. package/dist/cli/commands/app.command.d.ts +9 -0
  23. package/dist/cli/commands/auth.command.d.ts +9 -0
  24. package/dist/cli/constants/current-execution-directory.d.ts +1 -0
  25. package/dist/cli/services/api.service.d.ts +14 -0
  26. package/dist/cli/services/config.service.d.ts +14 -0
  27. package/dist/cli/services/generate.service.d.ts +7 -0
  28. package/dist/cli/types/config.types.d.ts +99 -0
  29. package/dist/cli/utils/convert-to-label.d.ts +1 -0
  30. package/dist/cli/utils/find-path-file.d.ts +1 -0
  31. package/dist/cli/utils/format-and-warn-ts-diagnostics.d.ts +4 -0
  32. package/dist/cli/utils/format-path.d.ts +1 -0
  33. package/dist/cli/utils/get-function-base-file.d.ts +4 -0
  34. package/dist/cli/utils/get-object-decorated-class.d.ts +4 -0
  35. package/dist/cli/utils/get-ts-program-and-diagnostics.d.ts +7 -0
  36. package/dist/cli/utils/jsonc-parser.d.ts +17 -0
  37. package/dist/cli/utils/load-env-variables.d.ts +2 -0
  38. package/dist/cli/utils/load-manifest.d.ts +9 -0
  39. package/dist/cli.cjs +242 -0
  40. package/dist/cli.mjs +9506 -0
  41. package/dist/index.cjs +11 -11
  42. package/dist/index.d.ts +0 -1
  43. package/dist/index.mjs +300 -302
  44. package/package.json +19 -15
  45. package/dist/application/application-config.d.ts.map +0 -1
  46. package/dist/application/field-metadata/composite-fields.d.ts.map +0 -1
  47. package/dist/application/field-metadata/field-type.d.ts.map +0 -1
  48. package/dist/application/field-metadata/field.decorator.d.ts.map +0 -1
  49. package/dist/application/field-metadata/on-delete-action.d.ts.map +0 -1
  50. package/dist/application/field-metadata/relation-type.d.ts.map +0 -1
  51. package/dist/application/field-metadata/relation.decorator.d.ts.map +0 -1
  52. package/dist/application/function-config.d.ts.map +0 -1
  53. package/dist/application/index.d.ts.map +0 -1
  54. package/dist/application/object-metadata/object.decorator.d.ts.map +0 -1
  55. package/dist/application/object-metadata/standard-object-ids.d.ts.map +0 -1
  56. package/dist/application/syncable-entity-options.type.d.ts.map +0 -1
  57. package/dist/cli/cli.js +0 -39
  58. package/dist/cli/cli.js.map +0 -1
  59. package/dist/cli/commands/app-add.command.js +0 -143
  60. package/dist/cli/commands/app-add.command.js.map +0 -1
  61. package/dist/cli/commands/app-dev.command.js +0 -60
  62. package/dist/cli/commands/app-dev.command.js.map +0 -1
  63. package/dist/cli/commands/app-generate.command.js +0 -18
  64. package/dist/cli/commands/app-generate.command.js.map +0 -1
  65. package/dist/cli/commands/app-sync.command.js +0 -48
  66. package/dist/cli/commands/app-sync.command.js.map +0 -1
  67. package/dist/cli/commands/app-uninstall.command.js +0 -46
  68. package/dist/cli/commands/app-uninstall.command.js.map +0 -1
  69. package/dist/cli/commands/app.command.js +0 -99
  70. package/dist/cli/commands/app.command.js.map +0 -1
  71. package/dist/cli/commands/auth.command.js +0 -128
  72. package/dist/cli/commands/auth.command.js.map +0 -1
  73. package/dist/cli/constants/current-execution-directory.js +0 -2
  74. package/dist/cli/constants/current-execution-directory.js.map +0 -1
  75. package/dist/cli/services/api.service.js +0 -171
  76. package/dist/cli/services/api.service.js.map +0 -1
  77. package/dist/cli/services/config.service.js +0 -83
  78. package/dist/cli/services/config.service.js.map +0 -1
  79. package/dist/cli/services/generate.service.js +0 -45
  80. package/dist/cli/services/generate.service.js.map +0 -1
  81. package/dist/cli/types/config.types.js +0 -2
  82. package/dist/cli/types/config.types.js.map +0 -1
  83. package/dist/cli/utils/convert-to-label.js +0 -6
  84. package/dist/cli/utils/convert-to-label.js.map +0 -1
  85. package/dist/cli/utils/find-path-file.js +0 -10
  86. package/dist/cli/utils/find-path-file.js.map +0 -1
  87. package/dist/cli/utils/format-and-warn-ts-diagnostics.js +0 -12
  88. package/dist/cli/utils/format-and-warn-ts-diagnostics.js.map +0 -1
  89. package/dist/cli/utils/format-path.js +0 -8
  90. package/dist/cli/utils/format-path.js.map +0 -1
  91. package/dist/cli/utils/get-function-base-file.js +0 -28
  92. package/dist/cli/utils/get-function-base-file.js.map +0 -1
  93. package/dist/cli/utils/get-object-decorated-class.js +0 -16
  94. package/dist/cli/utils/get-object-decorated-class.js.map +0 -1
  95. package/dist/cli/utils/get-ts-program-and-diagnostics.js +0 -35
  96. package/dist/cli/utils/get-ts-program-and-diagnostics.js.map +0 -1
  97. package/dist/cli/utils/jsonc-parser.js +0 -45
  98. package/dist/cli/utils/jsonc-parser.js.map +0 -1
  99. package/dist/cli/utils/load-env-variables.js +0 -15
  100. package/dist/cli/utils/load-env-variables.js.map +0 -1
  101. package/dist/cli/utils/load-manifest.js +0 -377
  102. package/dist/cli/utils/load-manifest.js.map +0 -1
  103. package/dist/index.d.ts.map +0 -1
@@ -1,45 +0,0 @@
1
- import * as fs from 'fs-extra';
2
- import { parse as parseJsonc } from 'jsonc-parser';
3
- export class JsoncParseError extends Error {
4
- constructor(message, parseErrors, filePath) {
5
- super(message);
6
- this.parseErrors = parseErrors;
7
- this.filePath = filePath;
8
- this.name = 'JsoncParseError';
9
- }
10
- }
11
- export const parseJsoncString = (content, options = {}) => {
12
- var _a, _b, _c;
13
- const parseErrors = [];
14
- const result = parseJsonc(content, parseErrors, {
15
- allowTrailingComma: (_a = options.allowTrailingComma) !== null && _a !== void 0 ? _a : true,
16
- disallowComments: (_b = options.disallowComments) !== null && _b !== void 0 ? _b : false,
17
- allowEmptyContent: (_c = options.allowEmptyContent) !== null && _c !== void 0 ? _c : false,
18
- });
19
- if (parseErrors.length > 0) {
20
- const errorMessages = parseErrors.map((error) => `Line ${error.offset}: ${error.error}`);
21
- throw new JsoncParseError(`JSONC parse errors:\n${errorMessages.join('\n')}`, parseErrors);
22
- }
23
- return result;
24
- };
25
- export const parseTextFile = async (filePath) => {
26
- return await fs.readFile(filePath, 'utf8');
27
- };
28
- export const parseJsoncFile = async (filePath, options = {}) => {
29
- try {
30
- const content = await fs.readFile(filePath, 'utf8');
31
- return parseJsoncString(content, options);
32
- }
33
- catch (error) {
34
- if (error instanceof JsoncParseError) {
35
- throw new JsoncParseError(error.message, error.parseErrors, filePath);
36
- }
37
- throw new Error(`Failed to read file ${filePath}: ${error}`);
38
- }
39
- };
40
- export const writeJsoncFile = async (filePath, data, options = {}) => {
41
- var _a;
42
- const content = JSON.stringify(data, null, (_a = options.spaces) !== null && _a !== void 0 ? _a : 2);
43
- await fs.writeFile(filePath, content, 'utf8');
44
- };
45
- //# sourceMappingURL=jsonc-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsonc-parser.js","sourceRoot":"","sources":["../../../src/cli/utils/jsonc-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAmB,KAAK,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAQpE,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YACE,OAAe,EACC,WAAyB,EACzB,QAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,gBAAW,GAAX,WAAW,CAAc;QACzB,aAAQ,GAAR,QAAQ,CAAS;QAGjC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAe,EACf,UAA6B,EAAE,EAC1B,EAAE;;IACP,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE;QAC9C,kBAAkB,EAAE,MAAA,OAAO,CAAC,kBAAkB,mCAAI,IAAI;QACtD,gBAAgB,EAAE,MAAA,OAAO,CAAC,gBAAgB,mCAAI,KAAK;QACnD,iBAAiB,EAAE,MAAA,OAAO,CAAC,iBAAiB,mCAAI,KAAK;KACtD,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CACnC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,EAAE,CAClD,CAAC;QACF,MAAM,IAAI,eAAe,CACvB,wBAAwB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAClD,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;IACtD,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,QAAgB,EAChB,UAA6B,EAAE,EACjB,EAAE;IAChB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,QAAgB,EAChB,IAAS,EACT,UAA+B,EAAE,EAClB,EAAE;;IACjB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,CAAC,CAAC,CAAC;IAChE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- import * as fs from 'fs-extra';
2
- import dotenv from 'dotenv';
3
- import { findPathFile } from './find-path-file';
4
- export const loadEnvVariables = async (appPath) => {
5
- let envFile = '';
6
- try {
7
- const envFilePath = await findPathFile(appPath, '.env');
8
- envFile = await fs.readFile(envFilePath, 'utf8');
9
- }
10
- catch (_a) {
11
- // Allow missing .env
12
- }
13
- return dotenv.parse(envFile);
14
- };
15
- //# sourceMappingURL=load-env-variables.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load-env-variables.js","sourceRoot":"","sources":["../../../src/cli/utils/load-env-variables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IACxD,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAExD,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAAC,WAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC"}
@@ -1,377 +0,0 @@
1
- import * as fs from 'fs-extra';
2
- import { posix, relative, sep } from 'path';
3
- import { SyntaxKind, forEachChild, getDecorators, isArrayLiteralExpression, isArrowFunction, isCallExpression, isClassDeclaration, isComputedPropertyName, isExportAssignment, isFunctionExpression, isIdentifier, isImportDeclaration, isNoSubstitutionTemplateLiteral, isNumericLiteral, isObjectLiteralExpression, isPropertyAccessExpression, isPropertyAssignment, isPropertyDeclaration, isShorthandPropertyAssignment, isStringLiteralLike, isTemplateExpression, isVariableStatement, } from 'typescript';
4
- import { GENERATED_FOLDER_NAME } from '../services/generate.service';
5
- import { findPathFile } from '../utils/find-path-file';
6
- import { getTsProgramAndDiagnostics } from '../utils/get-ts-program-and-diagnostics';
7
- import { parseJsoncFile, parseTextFile } from '../utils/jsonc-parser';
8
- import { formatAndWarnTsDiagnostics } from './format-and-warn-ts-diagnostics';
9
- const isDecoratorNamed = (node, name) => {
10
- const expr = node.expression;
11
- if (isCallExpression(expr)) {
12
- if (isIdentifier(expr.expression))
13
- return expr.expression.text === name;
14
- if (isPropertyAccessExpression(expr.expression))
15
- return expr.expression.name.text === name;
16
- }
17
- return false;
18
- };
19
- const exprToValue = (expr) => {
20
- var _a, _b, _c;
21
- if (isStringLiteralLike(expr))
22
- return expr.text;
23
- if (isNumericLiteral(expr))
24
- return Number(expr.text);
25
- if (expr.kind === SyntaxKind.TrueKeyword)
26
- return true;
27
- if (expr.kind === SyntaxKind.FalseKeyword)
28
- return false;
29
- if (expr.kind === SyntaxKind.NullKeyword)
30
- return null;
31
- if (isPropertyAccessExpression(expr)) {
32
- if (isIdentifier(expr.expression) && isIdentifier(expr.name)) {
33
- return expr.name.text;
34
- }
35
- return String(expr.getText());
36
- }
37
- if (isNoSubstitutionTemplateLiteral(expr)) {
38
- return expr.text;
39
- }
40
- if (isTemplateExpression(expr)) {
41
- let out = expr.head.text;
42
- for (const span of expr.templateSpans) {
43
- const v = exprToValue(span.expression);
44
- out += String(v) + span.literal.text;
45
- }
46
- return out;
47
- }
48
- if (isArrayLiteralExpression(expr)) {
49
- return expr.elements.map((e) => e.kind === SyntaxKind.SpreadElement ? [] : exprToValue(e));
50
- }
51
- if (isObjectLiteralExpression(expr)) {
52
- const obj = {};
53
- for (const prop of expr.properties) {
54
- if (isPropertyAssignment(prop)) {
55
- const key = isIdentifier(prop.name) || isStringLiteralLike(prop.name)
56
- ? prop.name.text
57
- : isComputedPropertyName(prop.name) &&
58
- isStringLiteralLike(prop.name.expression)
59
- ? prop.name.expression.text
60
- : undefined;
61
- if (key)
62
- obj[key] = exprToValue(prop.initializer);
63
- }
64
- else if (isShorthandPropertyAssignment(prop)) {
65
- // Unsupported without a checker; skip to keep it "light".
66
- // Could resolve via typechecker if needed.
67
- }
68
- // getters/setters/methods are ignored intentionally
69
- }
70
- return obj;
71
- }
72
- // Keep it intentionally strict/lightweight: anything non-literal becomes a string fallback.
73
- // You can throw instead if you prefer to fail fast.
74
- return isIdentifier(expr)
75
- ? expr.text
76
- : String((_c = (_b = (_a = expr).getText) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : '');
77
- };
78
- const getFirstArgObject = (dec) => {
79
- if (!isCallExpression(dec.expression))
80
- return undefined;
81
- const [firstArg] = dec.expression.arguments;
82
- return firstArg && isObjectLiteralExpression(firstArg)
83
- ? exprToValue(firstArg)
84
- : undefined;
85
- };
86
- const collectObjects = (program) => {
87
- const manifest = [];
88
- for (const sf of program.getSourceFiles()) {
89
- if (sf.isDeclarationFile) {
90
- continue;
91
- }
92
- const visit = (node) => {
93
- var _a, _b, _c, _d, _e;
94
- if (isClassDeclaration(node) && ((_a = getDecorators(node)) === null || _a === void 0 ? void 0 : _a.length)) {
95
- const decorators = getDecorators(node);
96
- const objectDec = decorators === null || decorators === void 0 ? void 0 : decorators.find((d) => isDecoratorNamed(d, 'ObjectMetadata') ||
97
- isDecoratorNamed(d, 'Object'));
98
- if (objectDec) {
99
- const cfg = getFirstArgObject(objectDec);
100
- if (cfg && typeof cfg === 'object' && !Array.isArray(cfg)) {
101
- const fields = [];
102
- for (const member of node.members) {
103
- if (!isPropertyDeclaration(member)) {
104
- continue;
105
- }
106
- const fieldDec = (_b = getDecorators(member)) === null || _b === void 0 ? void 0 : _b.find((d) => isDecoratorNamed(d, 'FieldMetadata') ||
107
- isDecoratorNamed(d, 'Field'));
108
- if (!fieldDec) {
109
- continue;
110
- }
111
- const fieldCfg = getFirstArgObject(fieldDec);
112
- if (!fieldCfg) {
113
- continue;
114
- }
115
- // Try to attach the TypeScript property name as "name"
116
- let name;
117
- if (member.name && isIdentifier(member.name)) {
118
- name = member.name.text;
119
- }
120
- else {
121
- // fallback to AST text if not a simple identifier
122
- name = (_e = (_d = (_c = member.name) === null || _c === void 0 ? void 0 : _c.getText) === null || _d === void 0 ? void 0 : _d.call(_c)) !== null && _e !== void 0 ? _e : undefined;
123
- }
124
- fields.push({
125
- ...fieldCfg,
126
- ...(name ? { name } : {}),
127
- });
128
- }
129
- manifest.push({ ...cfg, fields });
130
- }
131
- }
132
- }
133
- forEachChild(node, visit);
134
- };
135
- visit(sf);
136
- }
137
- return manifest;
138
- };
139
- // Add if you want a small guard for "export" presence on statements
140
- const hasExportModifier = (st) => {
141
- var _a, _b;
142
- return (_b = (_a = st.modifiers) === null || _a === void 0 ? void 0 : _a.some((m) => m.kind === SyntaxKind.ExportKeyword)) !== null && _b !== void 0 ? _b : false;
143
- };
144
- /**
145
- * Finds (and validates) the new serverless file shape:
146
- * - exactly 2 exported bindings
147
- * - one must be `config` (typed FunctionConfig)
148
- * - the other must be a function (exported function declaration, or const initialized with arrow/function expression)
149
- */
150
- const findHandlerAndConfig = (sf) => {
151
- var _a;
152
- const exported = [];
153
- // 1) export const X = <arrow|function expr>
154
- for (const st of sf.statements) {
155
- if (!isVariableStatement(st) || !hasExportModifier(st))
156
- continue;
157
- for (const decl of st.declarationList.declarations) {
158
- if (!isIdentifier(decl.name))
159
- continue;
160
- const name = decl.name.text;
161
- const init = (_a = decl.initializer) !== null && _a !== void 0 ? _a : undefined;
162
- exported.push({
163
- name,
164
- kind: 'const',
165
- init,
166
- declNode: decl,
167
- });
168
- }
169
- }
170
- // 2) export function X() { ... }
171
- for (const st of sf.statements) {
172
- if (st.kind === SyntaxKind.FunctionDeclaration && hasExportModifier(st)) {
173
- const fd = st;
174
- if (fd.name && isIdentifier(fd.name)) {
175
- exported.push({
176
- name: fd.name.text,
177
- kind: 'function',
178
- init: undefined,
179
- declNode: fd,
180
- });
181
- }
182
- }
183
- }
184
- // Enforce exactly two exports
185
- const unique = Array.from(new Map(exported.map((e) => [e.name, e])).values());
186
- if (unique.length !== 2) {
187
- throw new Error(`Serverless file ${sf.fileName} must export exactly 2 bindings (handler + config). Found: ${unique.map((e) => e.name).join(', ')}`);
188
- }
189
- // Find config
190
- const configExport = unique.find((e) => e.name === 'config');
191
- if (!configExport) {
192
- throw new Error(`Serverless file ${sf.fileName} must export a binding named "config".`);
193
- }
194
- // Must be initialized to an object literal
195
- if (!configExport.init || !isObjectLiteralExpression(configExport.init)) {
196
- throw new Error(`"config" in ${sf.fileName} must be initialized to an object literal.`);
197
- }
198
- // (Light) type guard: ensure declared type mentions FunctionConfig if present
199
- const maybeVarDecl = configExport.declNode;
200
- if ('type' in maybeVarDecl && maybeVarDecl.type) {
201
- const typeText = maybeVarDecl.type.getText(sf);
202
- if (!/\bFunctionConfig\b/.test(typeText)) {
203
- throw new Error(`"config" in ${sf.fileName} must be typed as FunctionConfig (got: ${typeText}).`);
204
- }
205
- }
206
- const configObject = exprToValue(configExport.init);
207
- // Identify the handler: the other export
208
- const handlerExport = unique.find((e) => e.name !== 'config');
209
- if (!handlerExport) {
210
- throw new Error(`Could not find the handler export in ${sf.fileName}.`);
211
- }
212
- // If it's a const, make sure it’s a function-ish initializer
213
- if (handlerExport.kind === 'const') {
214
- const init = handlerExport.init;
215
- const isFuncLike = !!init && (isArrowFunction(init) || isFunctionExpression(init));
216
- if (!isFuncLike) {
217
- throw new Error(`Handler "${handlerExport.name}" in ${sf.fileName} must be a function (arrow or function expression).`);
218
- }
219
- }
220
- return {
221
- handlerName: handlerExport.name,
222
- configObject,
223
- };
224
- };
225
- const posixRelativeFromCwd = (fileName, appPath) => {
226
- const rel = relative(appPath, fileName);
227
- // normalize to posix separators for portability / manifest stability
228
- return rel.split(sep).join(posix.sep);
229
- };
230
- const collectServerlessFunctions = (program, appPath) => {
231
- const serverlessFunctions = [];
232
- for (const sf of program.getSourceFiles()) {
233
- if (sf.isDeclarationFile)
234
- continue;
235
- try {
236
- const { handlerName, configObject } = findHandlerAndConfig(sf);
237
- const handlerPath = posixRelativeFromCwd(sf.fileName, appPath);
238
- serverlessFunctions.push({
239
- ...configObject,
240
- handlerPath,
241
- handlerName,
242
- });
243
- }
244
- catch (_a) {
245
- // Not a serverless file under the new format — ignore and continue scanning.
246
- continue;
247
- }
248
- }
249
- return serverlessFunctions;
250
- };
251
- const setNested = (root, parts, value) => {
252
- var _a;
253
- let cur = root;
254
- for (let i = 0; i < parts.length; i++) {
255
- const key = parts[i];
256
- if (i === parts.length - 1) {
257
- cur[key] = value;
258
- }
259
- else {
260
- cur[key] = ((_a = cur[key]) !== null && _a !== void 0 ? _a : {});
261
- cur = cur[key];
262
- }
263
- }
264
- };
265
- const loadFolderContentIntoJson = async (program, appPath) => {
266
- const sources = {};
267
- // Iterate only files the TS program knows about.
268
- for (const sf of program.getSourceFiles()) {
269
- const abs = sf.fileName;
270
- // Skip .d.ts and anything outside sourcePath
271
- if (sf.isDeclarationFile)
272
- continue;
273
- if (!abs.startsWith(appPath + sep) && abs !== appPath)
274
- continue;
275
- // Keep only TS/TSX files
276
- if (!(abs.endsWith('.ts') || abs.endsWith('.tsx')))
277
- continue;
278
- // Optional extra guard (usually unnecessary if tsconfig excludes node_modules)
279
- if (abs.includes(`${sep}node_modules${sep}`))
280
- continue;
281
- const relFromRoot = relative(appPath, abs);
282
- const parts = relFromRoot.split(sep);
283
- const content = await fs.readFile(abs, 'utf8');
284
- setNested(sources, parts, content);
285
- }
286
- return sources;
287
- };
288
- export const extractTwentyAppConfig = (program) => {
289
- for (const sf of program.getSourceFiles()) {
290
- if (sf.isDeclarationFile || !sf.fileName.endsWith('application.config.ts'))
291
- continue;
292
- let found;
293
- const visit = (node) => {
294
- // Look for "export default twentyAppConfig"
295
- if (isExportAssignment(node) && isIdentifier(node.expression)) {
296
- const varName = node.expression.text;
297
- // find the corresponding variable declaration
298
- for (const stmt of sf.statements) {
299
- if (isVariableStatement(stmt)) {
300
- for (const decl of stmt.declarationList.declarations) {
301
- if (isIdentifier(decl.name) && decl.name.text === varName) {
302
- if (decl.initializer &&
303
- isObjectLiteralExpression(decl.initializer)) {
304
- found = exprToValue(decl.initializer);
305
- }
306
- }
307
- }
308
- }
309
- }
310
- }
311
- if (!found)
312
- forEachChild(node, visit);
313
- };
314
- visit(sf);
315
- if (found)
316
- return found;
317
- }
318
- throw new Error('Could not find default exported ApplicationConfig');
319
- };
320
- const isGeneratedModuleUsedInProgram = (program) => {
321
- for (const sf of program.getSourceFiles()) {
322
- if (sf.isDeclarationFile)
323
- continue;
324
- let found = false;
325
- const visit = (node) => {
326
- if (found)
327
- return;
328
- if (isImportDeclaration(node)) {
329
- const moduleSpecifier = node.moduleSpecifier;
330
- if (isStringLiteralLike(moduleSpecifier)) {
331
- const moduleText = moduleSpecifier.text;
332
- // Match ../../generated, ../generated, ./foo/generated, etc.
333
- const isGeneratedModule = moduleText === GENERATED_FOLDER_NAME ||
334
- moduleText.endsWith(`/${GENERATED_FOLDER_NAME}`);
335
- if (isGeneratedModule && node.importClause) {
336
- found = true;
337
- return;
338
- }
339
- }
340
- }
341
- forEachChild(node, visit);
342
- };
343
- visit(sf);
344
- if (found)
345
- return true;
346
- }
347
- return false;
348
- };
349
- export const loadManifest = async (appPath) => {
350
- const packageJson = await parseJsoncFile(await findPathFile(appPath, 'package.json'));
351
- const yarnLock = await parseTextFile(await findPathFile(appPath, 'yarn.lock'));
352
- const { diagnostics, program } = await getTsProgramAndDiagnostics({
353
- appPath,
354
- });
355
- formatAndWarnTsDiagnostics({
356
- diagnostics,
357
- });
358
- const [objects, serverlessFunctions, application, sources] = [
359
- collectObjects(program),
360
- collectServerlessFunctions(program, appPath),
361
- extractTwentyAppConfig(program),
362
- await loadFolderContentIntoJson(program, appPath),
363
- ];
364
- const shouldGenerate = isGeneratedModuleUsedInProgram(program);
365
- return {
366
- packageJson,
367
- yarnLock,
368
- manifest: {
369
- application,
370
- objects,
371
- serverlessFunctions,
372
- sources,
373
- },
374
- shouldGenerate,
375
- };
376
- };
377
- //# sourceMappingURL=load-manifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load-manifest.js","sourceRoot":"","sources":["../../../src/cli/utils/load-manifest.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,cAAc,eAAe,CAAC"}