nango 0.59.12 → 0.60.0

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 (70) hide show
  1. package/dist/index.js +103 -22
  2. package/dist/index.js.map +1 -1
  3. package/dist/migrations/toZeroYaml.d.ts +50 -0
  4. package/dist/migrations/toZeroYaml.js +969 -0
  5. package/dist/migrations/toZeroYaml.js.map +1 -0
  6. package/dist/migrations/toZeroYaml.unit.test.d.ts +1 -0
  7. package/dist/migrations/toZeroYaml.unit.test.js +298 -0
  8. package/dist/migrations/toZeroYaml.unit.test.js.map +1 -0
  9. package/dist/services/dryrun.service.d.ts +3 -1
  10. package/dist/services/dryrun.service.js +77 -23
  11. package/dist/services/dryrun.service.js.map +1 -1
  12. package/dist/services/model.service.d.ts +1 -1
  13. package/dist/services/model.service.js +4 -3
  14. package/dist/services/model.service.js.map +1 -1
  15. package/dist/services/model.service.unit.test.js +2 -2
  16. package/dist/services/model.service.unit.test.js.map +1 -1
  17. package/dist/services/sdk.js +2 -1
  18. package/dist/services/sdk.js.map +1 -1
  19. package/dist/services/sdk.service.unit.test.js +2 -1
  20. package/dist/services/sdk.service.unit.test.js.map +1 -1
  21. package/dist/services/verification.service.js +2 -1
  22. package/dist/services/verification.service.js.map +1 -1
  23. package/dist/tests/helpers.js +2 -2
  24. package/dist/tests/helpers.js.map +1 -1
  25. package/dist/types.d.ts +1 -0
  26. package/dist/utils/result.d.ts +1 -17
  27. package/dist/utils/result.js +4 -0
  28. package/dist/utils/result.js.map +1 -1
  29. package/dist/version.d.ts +1 -1
  30. package/dist/version.js +1 -1
  31. package/dist/version.js.map +1 -1
  32. package/dist/zeroYaml/compile.d.ts +36 -0
  33. package/dist/zeroYaml/compile.js +305 -0
  34. package/dist/zeroYaml/compile.js.map +1 -0
  35. package/dist/zeroYaml/compile.unit.cli-test.d.ts +1 -0
  36. package/dist/zeroYaml/compile.unit.cli-test.js +34 -0
  37. package/dist/zeroYaml/compile.unit.cli-test.js.map +1 -0
  38. package/dist/zeroYaml/constants.d.ts +17 -0
  39. package/dist/zeroYaml/constants.js +60 -0
  40. package/dist/zeroYaml/constants.js.map +1 -0
  41. package/dist/zeroYaml/definitions.d.ts +25 -0
  42. package/dist/zeroYaml/definitions.js +142 -0
  43. package/dist/zeroYaml/definitions.js.map +1 -0
  44. package/dist/zeroYaml/definitions.unit.test.d.ts +1 -0
  45. package/dist/zeroYaml/definitions.unit.test.js +105 -0
  46. package/dist/zeroYaml/definitions.unit.test.js.map +1 -0
  47. package/dist/zeroYaml/deploy.d.ts +7 -0
  48. package/dist/zeroYaml/deploy.js +426 -0
  49. package/dist/zeroYaml/deploy.js.map +1 -0
  50. package/dist/zeroYaml/dev.d.ts +4 -0
  51. package/dist/zeroYaml/dev.js +295 -0
  52. package/dist/zeroYaml/dev.js.map +1 -0
  53. package/dist/zeroYaml/init.d.ts +7 -0
  54. package/dist/zeroYaml/init.js +98 -0
  55. package/dist/zeroYaml/init.js.map +1 -0
  56. package/dist/zeroYaml/zodToNango.d.ts +3 -0
  57. package/dist/zeroYaml/zodToNango.js +113 -0
  58. package/dist/zeroYaml/zodToNango.js.map +1 -0
  59. package/dist/zeroYaml/zodToNango.unit.test.d.ts +1 -0
  60. package/dist/zeroYaml/zodToNango.unit.test.js +77 -0
  61. package/dist/zeroYaml/zodToNango.unit.test.js.map +1 -0
  62. package/example/.env.example +16 -0
  63. package/example/.nango/.gitkeep +0 -0
  64. package/example/github/actions/createIssue.ts +39 -0
  65. package/example/github/on-events/pre-connection-deletion.ts +9 -0
  66. package/example/github/syncs/fetchIssues.ts +93 -0
  67. package/example/index.ts +3 -0
  68. package/example/package.json +13 -0
  69. package/example/tsconfig.json +30 -0
  70. package/package.json +27 -24
@@ -0,0 +1,305 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import * as babel from '@babel/core';
4
+ import chalk from 'chalk';
5
+ import { build } from 'esbuild';
6
+ import ora from 'ora';
7
+ import ts from 'typescript';
8
+ import { generateAdditionalExports } from '../services/model.service.js';
9
+ import { Err, Ok } from '../utils/result.js';
10
+ import { printDebug } from '../utils.js';
11
+ import { BabelError, CompileError, customErrors, importRegex, npmPackageRegex, tsconfig, tsconfigString } from './constants.js';
12
+ import { buildDefinitions } from './definitions.js';
13
+ /**
14
+ * This function is used to compile the code in the integration.
15
+ *
16
+ * It will:
17
+ * - Typecheck the code
18
+ * - Compile the code to .cjs
19
+ * - Rebuild nango.yaml in memory
20
+ */
21
+ export async function compileAll({ fullPath, debug }) {
22
+ let spinner = ora({ text: 'Typechecking' }).start();
23
+ try {
24
+ // Read the index.ts content
25
+ const indexContentResult = await readIndexContent(fullPath);
26
+ if (indexContentResult.isErr()) {
27
+ spinner.fail();
28
+ console.error(chalk.red(`Could not read index.ts`));
29
+ return Err('failed_to_read_index_ts');
30
+ }
31
+ const indexContent = indexContentResult.value;
32
+ // Get the entry points
33
+ const entryPoints = getEntryPoints(indexContent);
34
+ if (entryPoints.length === 0) {
35
+ spinner.fail();
36
+ console.error(chalk.red("No entry points found in index.ts (e.g., export * from './syncs/github/fetch.js'). Nothing to compile."));
37
+ return Err('no_file');
38
+ }
39
+ printDebug(`Found ${entryPoints.length} entry points in index.ts: ${entryPoints.join(', ')}`, debug);
40
+ // Typecheck the code
41
+ const typechecked = typeCheck({ fullPath, entryPoints });
42
+ if (typechecked.isErr()) {
43
+ spinner.fail();
44
+ return typechecked;
45
+ }
46
+ spinner.succeed();
47
+ // Build the entry points
48
+ const text = `Building ${entryPoints.length} file(s)`;
49
+ spinner = ora({ text }).start();
50
+ printDebug('Building', debug);
51
+ for (const entryPoint of entryPoints) {
52
+ const entryPointFullPath = path.join(fullPath, entryPoint);
53
+ spinner.text = `${text} - ${entryPoint}`;
54
+ printDebug(`Building ${entryPointFullPath}`, debug);
55
+ const buildRes = await compileOne({ entryPoint: entryPointFullPath, projectRootPath: fullPath });
56
+ if (buildRes.isErr()) {
57
+ spinner.fail(`Failed to build ${entryPoint}`);
58
+ console.error(chalk.red(buildRes.error.message));
59
+ return buildRes;
60
+ }
61
+ }
62
+ spinner.succeed();
63
+ // Build and export the definitions
64
+ spinner = ora({ text: `Exporting definitions` }).start();
65
+ const rebuild = await buildDefinitions({ fullPath, debug });
66
+ if (rebuild.isErr()) {
67
+ spinner.fail(`Failed to compile definitions`);
68
+ console.log(chalk.red(rebuild.error.message));
69
+ return Err(rebuild.error);
70
+ }
71
+ generateAdditionalExports({ parsed: rebuild.value, fullPath, debug });
72
+ spinner.succeed();
73
+ }
74
+ catch (err) {
75
+ console.error(err);
76
+ spinner.fail();
77
+ return Err('failed_to_compile');
78
+ }
79
+ spinner.succeed('Compiled');
80
+ return Ok(true);
81
+ }
82
+ /**
83
+ * Reads the content of index.ts in the given fullPath.
84
+ */
85
+ export async function readIndexContent(fullPath) {
86
+ const indexTsPath = path.join(fullPath, 'index.ts');
87
+ try {
88
+ const indexContent = await fs.promises.readFile(indexTsPath, 'utf8');
89
+ return Ok(indexContent);
90
+ }
91
+ catch {
92
+ return Err('failed_to_read_index_ts');
93
+ }
94
+ }
95
+ /**
96
+ * Extracts the entry points from the index.ts content.
97
+ */
98
+ export function getEntryPoints(indexContent) {
99
+ const entryPoints = [];
100
+ let match;
101
+ while ((match = importRegex.exec(indexContent)) !== null) {
102
+ const fp = match.groups?.['path'];
103
+ if (!fp) {
104
+ continue;
105
+ }
106
+ entryPoints.push(fp.endsWith('.js') ? fp : `${fp}.js`);
107
+ }
108
+ return entryPoints;
109
+ }
110
+ /**
111
+ * Runs the typescript compiler to typecheck the code.
112
+ */
113
+ function typeCheck({ fullPath, entryPoints }) {
114
+ const program = ts.createProgram({
115
+ rootNames: entryPoints.map((file) => path.join(fullPath, file.replace('.js', '.ts'))),
116
+ options: tsconfig
117
+ });
118
+ const diagnostics = ts.getPreEmitDiagnostics(program);
119
+ if (diagnostics.length <= 0) {
120
+ return Ok(true);
121
+ }
122
+ // On purpose
123
+ console.log('');
124
+ for (const diagnostic of diagnostics) {
125
+ const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
126
+ if (diagnostic.file && diagnostic.start != null) {
127
+ const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
128
+ const fileName = diagnostic.file.fileName.replace(`${fullPath}/`, '');
129
+ console.error(chalk.red('err'), '-', `${chalk.blue(fileName)}${chalk.yellow(`:${line + 1}:${character + 1}`)}`, `\r\n ${message}\r\n`);
130
+ }
131
+ else {
132
+ console.error(message);
133
+ }
134
+ }
135
+ console.error(`Found ${diagnostics.length} error${diagnostics.length > 1 ? 's' : ''}`);
136
+ return Err('errors');
137
+ }
138
+ /**
139
+ * Bundles the entry file using esbuild and returns the bundled code as a string (in memory).
140
+ */
141
+ export async function bundleFile({ entryPoint }) {
142
+ try {
143
+ const res = await build({
144
+ entryPoints: [entryPoint],
145
+ bundle: true,
146
+ sourcemap: 'inline',
147
+ format: 'cjs',
148
+ target: 'esnext',
149
+ platform: 'node',
150
+ logLevel: 'silent',
151
+ treeShaking: true,
152
+ write: false, // Output in memory
153
+ plugins: [
154
+ {
155
+ name: 'remove-create-wrappers',
156
+ setup(build) {
157
+ build.onLoad({ filter: /\.ts$/ }, async (args) => {
158
+ const source = await fs.promises.readFile(args.path, 'utf8');
159
+ const result = await babel.transformAsync(source, {
160
+ filename: args.path,
161
+ plugins: [removeCreateWrappersBabelPlugin],
162
+ parserOpts: { sourceType: 'module', plugins: ['typescript'] },
163
+ generatorOpts: { decoratorsBeforeExport: true }
164
+ });
165
+ return { contents: result?.code ?? source, loader: 'ts' };
166
+ });
167
+ }
168
+ },
169
+ {
170
+ name: 'external-npm-packages',
171
+ setup(buildInstance) {
172
+ buildInstance.onResolve({ filter: npmPackageRegex }, (args) => {
173
+ if (!args.path.startsWith('.') && !path.isAbsolute(args.path)) {
174
+ return { path: args.path, external: true };
175
+ }
176
+ return null; // let esbuild handle other paths
177
+ });
178
+ }
179
+ }
180
+ ],
181
+ tsconfigRaw: {
182
+ compilerOptions: tsconfigString
183
+ }
184
+ });
185
+ if (res.errors.length > 0) {
186
+ return Err('failed_to_build');
187
+ }
188
+ const output = res.outputFiles?.[0]?.text || '';
189
+ return Ok(output);
190
+ }
191
+ catch (err) {
192
+ // We can throw our own error, so we throw one with a custom code that we get back and re-hydrate a new error
193
+ if (err instanceof Error && err.message.includes('nango_')) {
194
+ const code = /(nango_[a-z_]+)/.exec(err.message)?.[1];
195
+ return Err(new CompileError(code, customErrors[code]));
196
+ }
197
+ return Err(new CompileError('failed_to_build_unknown', err instanceof Error ? err.message : 'unknown_error'));
198
+ }
199
+ }
200
+ /**
201
+ * We use esbuild to compile the code to .cjs.
202
+ * node.vm only supports CJS and we also bundle all imported files in the same file.
203
+ */
204
+ export async function compileOne({ entryPoint, projectRootPath }) {
205
+ const rel = path.relative(projectRootPath, entryPoint);
206
+ // File are compiled to build/integration-type-script-name.cjs
207
+ // Because it's easier to manipulate the files and it's easier in S3
208
+ const outfile = path.join(projectRootPath, 'build', tsToJsPath(rel));
209
+ // Ensure the output directory exists
210
+ await fs.promises.mkdir(path.dirname(outfile), { recursive: true });
211
+ const bundleResult = await bundleFile({ entryPoint });
212
+ if (bundleResult.isErr()) {
213
+ return Err(bundleResult.error);
214
+ }
215
+ try {
216
+ await fs.promises.writeFile(outfile, bundleResult.value, 'utf8');
217
+ }
218
+ catch (err) {
219
+ console.error(chalk.red(err));
220
+ return Err('failed_to_write_output');
221
+ }
222
+ return Ok(true);
223
+ }
224
+ export function tsToJsPath(filePath) {
225
+ return filePath.replace(/^\.\//, '').replaceAll('/', '_').replaceAll('.js', '.cjs');
226
+ }
227
+ /**
228
+ * This plugin is used to remove the create wrappers from the exports.
229
+ *
230
+ * Initially, I didn't want to remove this but because our codebase is ESM and node.vm only compiles CJS
231
+ * it was annoying to have to compile the code twice. And have mixed code when publishing.
232
+ * Since the wrapper is only used to stringly type the exports, we can remove it.
233
+ */
234
+ function removeCreateWrappersBabelPlugin({ types: t }) {
235
+ const allowedExports = ['createAction', 'createSync', 'createOnEvent'];
236
+ return {
237
+ visitor: {
238
+ ExportDefaultDeclaration(path) {
239
+ if (path.node.__transformedByRemoveCreateWrappers) {
240
+ return;
241
+ }
242
+ const decl = path.node.declaration;
243
+ let calleeName = null;
244
+ let arg = null;
245
+ // Case 1: export default createAction({...})
246
+ if (t.isCallExpression(decl) && t.isIdentifier(decl.callee) && allowedExports.includes(decl.callee.name)) {
247
+ let varName = '';
248
+ calleeName = decl.callee.name;
249
+ arg = decl.arguments[0];
250
+ if (!t.isObjectExpression(arg)) {
251
+ throw new BabelError('nango_invalid_function_param');
252
+ }
253
+ if (calleeName === 'createAction')
254
+ varName = 'action';
255
+ if (calleeName === 'createSync')
256
+ varName = 'sync';
257
+ if (calleeName === 'createOnEvent')
258
+ varName = 'onEvent';
259
+ // Inject type property
260
+ arg.properties = [t.objectProperty(t.identifier('type'), t.stringLiteral(varName)), ...arg.properties];
261
+ const newValue = arg;
262
+ // Insert: export const <varName> = <newValue>;
263
+ const exportConst = t.exportNamedDeclaration(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(varName), newValue)]), []);
264
+ // Insert: export default <varName>;
265
+ const exportDefault = t.exportDefaultDeclaration(t.identifier(varName));
266
+ exportConst.__transformedByRemoveCreateWrappers = true;
267
+ exportDefault.__transformedByRemoveCreateWrappers = true;
268
+ path.replaceWithMultiple([exportConst, exportDefault]);
269
+ }
270
+ // Case 2: export default action; (or sync/onEvent)
271
+ else if (t.isIdentifier(decl)) {
272
+ const binding = path.scope.getBinding(decl.name);
273
+ if (!binding || !binding.path.isVariableDeclarator()) {
274
+ throw new BabelError('nango_invalid_default_export');
275
+ }
276
+ const init = binding.path.node.init;
277
+ if (!t.isCallExpression(init) || !t.isIdentifier(init.callee) || !allowedExports.includes(init.callee.name)) {
278
+ throw new BabelError('nango_invalid_default_export');
279
+ }
280
+ let varName = '';
281
+ calleeName = init.callee.name;
282
+ arg = init.arguments[0];
283
+ if (!t.isObjectExpression(arg)) {
284
+ throw new BabelError('nango_invalid_function_param');
285
+ }
286
+ if (calleeName === 'createAction')
287
+ varName = 'action';
288
+ if (calleeName === 'createSync')
289
+ varName = 'sync';
290
+ if (calleeName === 'createOnEvent')
291
+ varName = 'onEvent';
292
+ // Inject type property (mutate the object literal)
293
+ arg.properties = [t.objectProperty(t.identifier('type'), t.stringLiteral(varName)), ...arg.properties];
294
+ // Replace the variable's initializer with the object literal
295
+ binding.path.get('init').replaceWith(arg);
296
+ return;
297
+ }
298
+ else {
299
+ throw new BabelError('nango_unsupported_export');
300
+ }
301
+ }
302
+ }
303
+ };
304
+ }
305
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../lib/zeroYaml/compile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,34 @@
1
+ import { exec as execCb } from 'node:child_process';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import { promisify } from 'node:util';
5
+ import { describe, expect, it } from 'vitest';
6
+ import { bundleFile, compileAll } from './compile.js';
7
+ import { copyDirectoryAndContents, fixturesPath, getTestDirectory } from '../tests/helpers.js';
8
+ const exec = promisify(execCb);
9
+ describe('bundleFile', () => {
10
+ it('should bundle a sync with a constant export', async () => {
11
+ const result = await bundleFile({ entryPoint: path.join(fixturesPath, 'zero/valid/github/syncs/fetchIssues.ts') });
12
+ const value = result.unwrap();
13
+ expect(value).toMatchSnapshot();
14
+ });
15
+ it('should bundle an action with a default export', async () => {
16
+ const result = await bundleFile({ entryPoint: path.join(fixturesPath, 'zero/valid/github/actions/createIssue.ts') });
17
+ const value = result.unwrap();
18
+ expect(value).toMatchSnapshot();
19
+ });
20
+ });
21
+ describe('compileAll', () => {
22
+ it('should compile a minimal integration', async () => {
23
+ const dir = await getTestDirectory('zero_valid');
24
+ console.log('compiling to ', dir);
25
+ await copyDirectoryAndContents(path.join(fixturesPath, 'zero/valid'), dir);
26
+ const pkg = { name: 'test', dependencies: { nango: `file:${path.resolve(path.join(fixturesPath, '..'))}`, zod: '3.24.2' } };
27
+ await fs.promises.writeFile(path.join(dir, 'package.json'), JSON.stringify(pkg, null, 2));
28
+ await exec('npm i', { cwd: dir });
29
+ const result = await compileAll({ fullPath: dir, debug: false });
30
+ result.unwrap();
31
+ expect(result.isOk()).toBe(true);
32
+ });
33
+ });
34
+ //# sourceMappingURL=compile.unit.cli-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.unit.cli-test.js","sourceRoot":"","sources":["../../lib/zeroYaml/compile.unit.cli-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE/F,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAE/B,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,wCAAwC,CAAC,EAAE,CAAC,CAAC;QACnH,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,0CAA0C,CAAC,EAAE,CAAC,CAAC;QACrH,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;QAE3E,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC;QAE5H,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,MAAM,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import ts from 'typescript';
2
+ export declare const npmPackageRegex: RegExp;
3
+ export declare const importRegex: RegExp;
4
+ export declare const tsconfig: ts.CompilerOptions;
5
+ export declare const tsconfigString: Record<string, any>;
6
+ export type BabelErrorType = 'nango_unsupported_export' | 'nango_invalid_function_param' | 'nango_invalid_default_export' | 'nango_invalid_export_constant';
7
+ export declare class BabelError extends Error {
8
+ type: BabelErrorType;
9
+ constructor(type: BabelErrorType);
10
+ }
11
+ export declare const customErrors: Record<BabelErrorType, string>;
12
+ export declare class CompileError extends Error {
13
+ type: BabelErrorType | 'failed_to_build_unknown';
14
+ msg: string;
15
+ filePath?: string;
16
+ constructor(type: BabelErrorType | 'failed_to_build_unknown', msg: string);
17
+ }
@@ -0,0 +1,60 @@
1
+ import ts from 'typescript';
2
+ export const npmPackageRegex = /^[^./\s]/;
3
+ export const importRegex = /^import ['"](?<path>\.\/[^'"]+)['"];/gm;
4
+ export const tsconfig = {
5
+ module: ts.ModuleKind.CommonJS,
6
+ target: ts.ScriptTarget.ESNext,
7
+ strict: true,
8
+ esModuleInterop: true,
9
+ skipLibCheck: true,
10
+ forceConsistentCasingInFileNames: true,
11
+ moduleResolution: ts.ModuleResolutionKind.NodeJs,
12
+ allowUnusedLabels: false,
13
+ allowUnreachableCode: false,
14
+ exactOptionalPropertyTypes: true,
15
+ noFallthroughCasesInSwitch: true,
16
+ noImplicitOverride: true,
17
+ noImplicitReturns: true,
18
+ noPropertyAccessFromIndexSignature: true,
19
+ noUncheckedIndexedAccess: true,
20
+ noUnusedLocals: true,
21
+ noUnusedParameters: true,
22
+ declaration: false,
23
+ sourceMap: true,
24
+ composite: false,
25
+ checkJs: false,
26
+ noEmit: true
27
+ };
28
+ export const tsconfigString = {
29
+ ...tsconfig,
30
+ module: 'commonjs',
31
+ target: 'esnext',
32
+ importsNotUsedAsValues: 'remove',
33
+ jsx: 'react',
34
+ moduleResolution: 'node16'
35
+ };
36
+ export class BabelError extends Error {
37
+ type;
38
+ constructor(type) {
39
+ super(type);
40
+ this.type = type;
41
+ }
42
+ }
43
+ const defaultMsg = 'Invalid default export: should be createAction(), createSync() or createOnEvent()';
44
+ export const customErrors = {
45
+ nango_unsupported_export: defaultMsg,
46
+ nango_invalid_function_param: 'Invalid function parameter, should be an object',
47
+ nango_invalid_default_export: defaultMsg,
48
+ nango_invalid_export_constant: defaultMsg
49
+ };
50
+ export class CompileError extends Error {
51
+ type;
52
+ msg;
53
+ filePath;
54
+ constructor(type, msg) {
55
+ super(msg);
56
+ this.type = type;
57
+ this.msg = msg;
58
+ }
59
+ }
60
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../lib/zeroYaml/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,wCAAwC,CAAC;AAEpE,MAAM,CAAC,MAAM,QAAQ,GAAuB;IACxC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ;IAC9B,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;IAC9B,MAAM,EAAE,IAAI;IACZ,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,gCAAgC,EAAE,IAAI;IACtC,gBAAgB,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM;IAChD,iBAAiB,EAAE,KAAK;IACxB,oBAAoB,EAAE,KAAK;IAC3B,0BAA0B,EAAE,IAAI;IAChC,0BAA0B,EAAE,IAAI;IAChC,kBAAkB,EAAE,IAAI;IACxB,iBAAiB,EAAE,IAAI;IACvB,kCAAkC,EAAE,IAAI;IACxC,wBAAwB,EAAE,IAAI;IAC9B,cAAc,EAAE,IAAI;IACpB,kBAAkB,EAAE,IAAI;IACxB,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;CACf,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAwB;IAC/C,GAAG,QAAQ;IACX,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,QAAQ;IAChB,sBAAsB,EAAE,QAAQ;IAChC,GAAG,EAAE,OAAO;IACZ,gBAAgB,EAAE,QAAQ;CAC7B,CAAC;AAGF,MAAM,OAAO,UAAW,SAAQ,KAAK;IACjC,IAAI,CAAC;IACL,YAAY,IAAoB;QAC5B,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ;AAED,MAAM,UAAU,GAAG,mFAAmF,CAAC;AACvG,MAAM,CAAC,MAAM,YAAY,GAAmC;IACxD,wBAAwB,EAAE,UAAU;IACpC,4BAA4B,EAAE,iDAAiD;IAC/E,4BAA4B,EAAE,UAAU;IACxC,6BAA6B,EAAE,UAAU;CAC5C,CAAC;AACF,MAAM,OAAO,YAAa,SAAQ,KAAK;IACnC,IAAI,CAA6C;IACjD,GAAG,CAAS;IACZ,QAAQ,CAAU;IAClB,YAAY,IAAgD,EAAE,GAAW;QACrE,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;CACJ"}
@@ -0,0 +1,25 @@
1
+ import type { CreateActionResponse, CreateSyncResponse } from '@nangohq/runner-sdk';
2
+ import type { ZodModel } from '@nangohq/runner-sdk/lib/types.js';
3
+ import type { NangoModel, NangoYamlParsed, ParsedNangoAction, ParsedNangoSync, Result } from '@nangohq/types';
4
+ export declare function buildDefinitions({ fullPath, debug }: {
5
+ fullPath: string;
6
+ debug: boolean;
7
+ }): Promise<Result<NangoYamlParsed>>;
8
+ export declare function buildSync({ params, integrationIdClean, basename, basenameClean }: {
9
+ params: CreateSyncResponse<Record<string, ZodModel>, Zod.ZodTypeAny>;
10
+ integrationIdClean: string;
11
+ basename: string;
12
+ basenameClean: string;
13
+ }): {
14
+ sync: ParsedNangoSync;
15
+ models: Map<string, NangoModel>;
16
+ };
17
+ export declare function buildAction({ params, integrationIdClean, basename, basenameClean }: {
18
+ params: CreateActionResponse<Zod.ZodTypeAny, Zod.ZodTypeAny, Zod.ZodTypeAny>;
19
+ integrationIdClean: string;
20
+ basename: string;
21
+ basenameClean: string;
22
+ }): {
23
+ action: ParsedNangoAction;
24
+ models: Map<string, NangoModel>;
25
+ };
@@ -0,0 +1,142 @@
1
+ import path from 'node:path';
2
+ import { zodToNangoModelField } from './zodToNango.js';
3
+ import { Err, Ok } from '../utils/result.js';
4
+ import { printDebug } from '../utils.js';
5
+ import { getEntryPoints, readIndexContent, tsToJsPath } from './compile.js';
6
+ const allowed = ['action', 'sync', 'onEvent'];
7
+ export async function buildDefinitions({ fullPath, debug }) {
8
+ const parsed = { yamlVersion: 'v2', integrations: [], models: new Map() };
9
+ printDebug('Rebuilding parsed from js files', debug);
10
+ const indexRes = await readIndexContent(fullPath);
11
+ if (indexRes.isErr()) {
12
+ return Err(indexRes.error);
13
+ }
14
+ const matched = getEntryPoints(indexRes.value);
15
+ let num = 0;
16
+ for (const filePath of matched) {
17
+ num += 1;
18
+ const modulePath = path.join(fullPath, 'build', tsToJsPath(filePath));
19
+ const moduleContent = await import(modulePath);
20
+ if (!moduleContent.default || !moduleContent.default.default) {
21
+ return Err(new Error(`Script should have a default export ${modulePath}`));
22
+ }
23
+ if (!moduleContent.default.default.type || !allowed.includes(moduleContent.default.default.type)) {
24
+ return Err(new Error(`Script should be declared using utility function (createSync, createAction, createOnEvent) ${modulePath}`));
25
+ }
26
+ printDebug(`Parsing ${filePath}`, debug);
27
+ const script = moduleContent.default.default;
28
+ const basename = path.basename(filePath, '.js');
29
+ const basenameClean = basename.replaceAll(/[^a-zA-Z0-9]/g, '');
30
+ const split = filePath.split('/');
31
+ const integrationId = split[split.length - 3];
32
+ const integrationIdClean = integrationId.replaceAll(/[^a-zA-Z0-9]/g, '_');
33
+ let integration = parsed.integrations.find((v) => v.providerConfigKey === integrationId);
34
+ if (!integration) {
35
+ integration = {
36
+ providerConfigKey: integrationId,
37
+ actions: [],
38
+ syncs: [],
39
+ onEventScripts: { 'post-connection-creation': [], 'pre-connection-deletion': [] }
40
+ };
41
+ parsed.integrations.push(integration);
42
+ }
43
+ switch (script.type) {
44
+ case 'sync': {
45
+ const def = buildSync({ params: script, integrationIdClean, basename, basenameClean });
46
+ integration.syncs.push(def.sync);
47
+ def.models.forEach((v, k) => {
48
+ parsed.models.set(k, v);
49
+ });
50
+ break;
51
+ }
52
+ case 'action': {
53
+ const def = buildAction({ params: script, integrationIdClean, basename, basenameClean });
54
+ integration.actions.push(def.action);
55
+ def.models.forEach((v, k) => {
56
+ parsed.models.set(k, v);
57
+ });
58
+ break;
59
+ }
60
+ case 'onEvent': {
61
+ if (script.event === 'post-connection-creation') {
62
+ integration.onEventScripts['post-connection-creation'].push(basename);
63
+ }
64
+ else if (script.event === 'pre-connection-deletion') {
65
+ integration.onEventScripts['pre-connection-deletion'].push(basename);
66
+ }
67
+ break;
68
+ }
69
+ }
70
+ }
71
+ if (num === 0) {
72
+ return Err(new Error('No export in index.ts'));
73
+ }
74
+ printDebug('Correctly parsed', debug);
75
+ return Ok(parsed);
76
+ }
77
+ export function buildSync({ params, integrationIdClean, basename, basenameClean }) {
78
+ const models = new Map();
79
+ const usedModels = new Set(Object.keys(params.models));
80
+ const metadata = params.metadata ? zodToNangoModelField(`SyncMetadata_${integrationIdClean}_${basenameClean}`, params.metadata) : null;
81
+ if (metadata) {
82
+ usedModels.add(metadata.name);
83
+ if (!Array.isArray(metadata.value)) {
84
+ models.set(metadata.name, { name: metadata.name, fields: [{ ...metadata, name: 'metadata' }], isAnon: true });
85
+ }
86
+ else {
87
+ models.set(metadata.name, { name: metadata.name, fields: metadata.value });
88
+ }
89
+ }
90
+ const sync = {
91
+ type: 'sync',
92
+ description: params.description,
93
+ auto_start: params.autoStart === true,
94
+ endpoints: params.endpoints,
95
+ input: metadata?.name || null,
96
+ name: basename,
97
+ output: Object.entries(params.models).map(([name, model]) => {
98
+ const to = zodToNangoModelField(name, model);
99
+ models.set(name, { name, fields: to['value'] });
100
+ usedModels.add(name);
101
+ return name;
102
+ }),
103
+ runs: params.frequency,
104
+ scopes: params.scopes || [],
105
+ sync_type: params.syncType,
106
+ track_deletes: params.trackDeletes === true,
107
+ usedModels: Array.from(usedModels.values()),
108
+ version: params.version || '0.0.1',
109
+ webhookSubscriptions: params.webhookSubscriptions || []
110
+ };
111
+ return { sync, models };
112
+ }
113
+ export function buildAction({ params, integrationIdClean, basename, basenameClean }) {
114
+ const models = new Map();
115
+ const input = zodToNangoModelField(`ActionInput_${integrationIdClean}_${basenameClean}`, params.input);
116
+ if (!Array.isArray(input.value)) {
117
+ models.set(input.name, { name: input.name, fields: [{ ...input, name: 'input' }], isAnon: true });
118
+ }
119
+ else {
120
+ models.set(input.name, { name: input.name, fields: input.value });
121
+ }
122
+ const output = zodToNangoModelField(`ActionOutput_${integrationIdClean}_${basenameClean}`, params.output);
123
+ if (!Array.isArray(output.value)) {
124
+ models.set(output.name, { name: output.name, fields: [{ ...output, name: 'output' }], isAnon: true });
125
+ }
126
+ else {
127
+ models.set(output.name, { name: output.name, fields: output.value });
128
+ }
129
+ const action = {
130
+ type: 'action',
131
+ description: params.description,
132
+ endpoint: params.endpoint,
133
+ input: input.name,
134
+ name: basename,
135
+ output: [output.name],
136
+ scopes: params.scopes || [],
137
+ usedModels: [input.name, output.name],
138
+ version: params.version || '0.0.1'
139
+ };
140
+ return { action, models };
141
+ }
142
+ //# sourceMappingURL=definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../lib/zeroYaml/definitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};