nango 0.59.11 → 0.59.13

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 (46) hide show
  1. package/dist/index.js +39 -12
  2. package/dist/index.js.map +1 -1
  3. package/dist/services/dryrun.service.d.ts +3 -2
  4. package/dist/services/dryrun.service.js.map +1 -1
  5. package/dist/services/model.service.d.ts +1 -1
  6. package/dist/services/model.service.js +4 -3
  7. package/dist/services/model.service.js.map +1 -1
  8. package/dist/services/model.service.unit.test.js +2 -2
  9. package/dist/services/model.service.unit.test.js.map +1 -1
  10. package/dist/services/verification.service.js +6 -5
  11. package/dist/services/verification.service.js.map +1 -1
  12. package/dist/tests/helpers.js +2 -2
  13. package/dist/tests/helpers.js.map +1 -1
  14. package/dist/types.d.ts +1 -0
  15. package/dist/utils/result.d.ts +1 -17
  16. package/dist/utils/result.js +4 -0
  17. package/dist/utils/result.js.map +1 -1
  18. package/dist/version.d.ts +1 -1
  19. package/dist/version.js +1 -1
  20. package/dist/zeroYaml/compile.d.ts +28 -0
  21. package/dist/zeroYaml/compile.js +354 -0
  22. package/dist/zeroYaml/compile.js.map +1 -0
  23. package/dist/zeroYaml/compile.unit.test.d.ts +1 -0
  24. package/dist/zeroYaml/compile.unit.test.js +33 -0
  25. package/dist/zeroYaml/compile.unit.test.js.map +1 -0
  26. package/dist/zeroYaml/definitions.d.ts +24 -0
  27. package/dist/zeroYaml/definitions.js +146 -0
  28. package/dist/zeroYaml/definitions.js.map +1 -0
  29. package/dist/zeroYaml/definitions.unit.test.d.ts +1 -0
  30. package/dist/zeroYaml/definitions.unit.test.js +102 -0
  31. package/dist/zeroYaml/definitions.unit.test.js.map +1 -0
  32. package/dist/zeroYaml/init.d.ts +7 -0
  33. package/dist/zeroYaml/init.js +94 -0
  34. package/dist/zeroYaml/init.js.map +1 -0
  35. package/dist/zeroYaml/zodToNango.d.ts +3 -0
  36. package/dist/zeroYaml/zodToNango.js +113 -0
  37. package/dist/zeroYaml/zodToNango.js.map +1 -0
  38. package/dist/zeroYaml/zodToNango.unit.test.d.ts +1 -0
  39. package/dist/zeroYaml/zodToNango.unit.test.js +75 -0
  40. package/dist/zeroYaml/zodToNango.unit.test.js.map +1 -0
  41. package/example/github/actions/createIssue.ts +39 -0
  42. package/example/github/on-events/pre-connection-deletion.ts +9 -0
  43. package/example/github/syncs/fetchIssues.ts +94 -0
  44. package/example/index.ts +3 -0
  45. package/example/package.json +13 -0
  46. package/package.json +16 -15
@@ -0,0 +1,354 @@
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 { glob } from 'glob';
7
+ import ora from 'ora';
8
+ import ts from 'typescript';
9
+ import { generateAdditionalExports } from '../services/model.service.js';
10
+ import { Err, Ok } from '../utils/result.js';
11
+ import { printDebug } from '../utils.js';
12
+ import { buildDefinitions } from './definitions.js';
13
+ const npmPackageRegex = /^[^./\s]/; // Regex to identify npm packages (not starting with . or /)
14
+ const exportRegex = /export\s+\*\s+from\s+['"](\.\/[^'"]+)['"];/g;
15
+ const tsconfig = {
16
+ module: ts.ModuleKind.CommonJS,
17
+ target: ts.ScriptTarget.ESNext,
18
+ strict: true,
19
+ esModuleInterop: true,
20
+ skipLibCheck: true,
21
+ forceConsistentCasingInFileNames: true,
22
+ moduleResolution: ts.ModuleResolutionKind.NodeJs,
23
+ allowUnusedLabels: false,
24
+ allowUnreachableCode: false,
25
+ exactOptionalPropertyTypes: true,
26
+ noFallthroughCasesInSwitch: true,
27
+ noImplicitOverride: true,
28
+ noImplicitReturns: true,
29
+ noPropertyAccessFromIndexSignature: true,
30
+ noUncheckedIndexedAccess: true,
31
+ noUnusedLocals: true,
32
+ noUnusedParameters: true,
33
+ declaration: false,
34
+ sourceMap: true,
35
+ composite: false,
36
+ checkJs: false,
37
+ noEmit: true
38
+ };
39
+ /**
40
+ * This function is used to compile the code in the integration.
41
+ *
42
+ * It will:
43
+ * - Typecheck the code
44
+ * - Compile the code to .cjs
45
+ * - Rebuild nango.yaml in memory
46
+ */
47
+ export async function compileAll({ fullPath, debug }) {
48
+ let spinner = ora({ text: 'Typechecking' }).start();
49
+ try {
50
+ // Read the index.ts content
51
+ const indexContentResult = await readIndexContent(fullPath);
52
+ if (indexContentResult.isErr()) {
53
+ spinner.fail();
54
+ return Err('failed_to_read_index_ts');
55
+ }
56
+ const indexContent = indexContentResult.value;
57
+ // Get the entry points
58
+ const entryPoints = getEntryPoints(indexContent);
59
+ if (entryPoints.length === 0) {
60
+ spinner.fail();
61
+ console.error("No entry points found in index.ts (e.g., export * from './syncs/github/fetch.js'). Nothing to compile.");
62
+ return Err('no_file');
63
+ }
64
+ printDebug(`Found ${entryPoints.length} entry points in index.ts: ${entryPoints.join(', ')}`, debug);
65
+ // Typecheck the code
66
+ const typechecked = typeCheck({ fullPath, entryPoints });
67
+ if (typechecked.isErr()) {
68
+ spinner.fail();
69
+ return typechecked;
70
+ }
71
+ spinner.succeed();
72
+ // Build the entry points
73
+ const text = `Building ${entryPoints.length} file(s)`;
74
+ spinner = ora({ text }).start();
75
+ printDebug('Building', debug);
76
+ for (const entryPoint of entryPoints) {
77
+ const entryPointFullPath = path.join(fullPath, entryPoint);
78
+ spinner.text = `${text} - ${entryPoint}`;
79
+ printDebug(`Building ${entryPointFullPath}`, debug);
80
+ const buildRes = await compileOne({ entryPoint: entryPointFullPath, projectRootPath: fullPath });
81
+ if (buildRes.isErr()) {
82
+ spinner.fail(`Failed to build ${entryPoint}`);
83
+ console.error(chalk.red(buildRes.error.message));
84
+ return buildRes;
85
+ }
86
+ }
87
+ spinner.text = `${text} - Post compilation`;
88
+ printDebug('Post compilation', debug);
89
+ await postCompile({ fullPath });
90
+ spinner.text = text;
91
+ spinner.succeed();
92
+ // Build and export the definitions
93
+ spinner = ora({ text: `Exporting definitions` }).start();
94
+ const rebuild = await buildDefinitions({ fullPath, debug });
95
+ if (rebuild.isErr()) {
96
+ spinner.fail(`Failed to compile definitions`);
97
+ console.log(chalk.red(rebuild.error.message));
98
+ return Err(rebuild.error);
99
+ }
100
+ generateAdditionalExports({ parsed: rebuild.value, fullPath, debug });
101
+ spinner.succeed();
102
+ }
103
+ catch (err) {
104
+ console.error(err);
105
+ spinner.fail();
106
+ return Err('failed_to_compile');
107
+ }
108
+ spinner.succeed('Compiled');
109
+ return Ok(true);
110
+ }
111
+ /**
112
+ * Reads the content of index.ts in the given fullPath.
113
+ */
114
+ async function readIndexContent(fullPath) {
115
+ const indexTsPath = path.join(fullPath, 'index.ts');
116
+ try {
117
+ const indexContent = await fs.promises.readFile(indexTsPath, 'utf8');
118
+ return Ok(indexContent);
119
+ }
120
+ catch (err) {
121
+ console.error(`Could not read ${indexTsPath}`, err);
122
+ return Err('failed_to_read_index_ts');
123
+ }
124
+ }
125
+ /**
126
+ * Extracts the entry points from the index.ts content.
127
+ */
128
+ function getEntryPoints(indexContent) {
129
+ const entryPoints = [];
130
+ let match;
131
+ while ((match = exportRegex.exec(indexContent)) !== null) {
132
+ if (!match[1]) {
133
+ continue;
134
+ }
135
+ entryPoints.push(match[1].endsWith('.js') ? match[1] : `${match[1]}.js`);
136
+ }
137
+ return entryPoints;
138
+ }
139
+ /**
140
+ * Runs the typescript compiler to typecheck the code.
141
+ */
142
+ function typeCheck({ fullPath, entryPoints }) {
143
+ const program = ts.createProgram({
144
+ rootNames: entryPoints.map((file) => path.join(fullPath, file.replace('.js', '.ts'))),
145
+ options: {
146
+ ...tsconfig
147
+ }
148
+ });
149
+ const diagnostics = ts.getPreEmitDiagnostics(program);
150
+ if (diagnostics.length <= 0) {
151
+ return Ok(true);
152
+ }
153
+ // On purpose
154
+ console.log('');
155
+ for (const diagnostic of diagnostics) {
156
+ const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
157
+ if (diagnostic.file && diagnostic.start != null) {
158
+ const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
159
+ const fileName = diagnostic.file.fileName.replace(`${fullPath}/`, '');
160
+ console.error(chalk.red('err'), '-', `${chalk.blue(fileName)}${chalk.yellow(`:${line + 1}:${character + 1}`)}`, `\r\n ${message}\r\n`);
161
+ }
162
+ else {
163
+ console.error(message);
164
+ }
165
+ }
166
+ console.error(`Found ${diagnostics.length} error${diagnostics.length > 1 ? 's' : ''}`);
167
+ return Err('errors');
168
+ }
169
+ /**
170
+ * Bundles the entry file using esbuild and returns the bundled code as a string (in memory).
171
+ */
172
+ export async function bundleFile({ entryPoint }) {
173
+ try {
174
+ const res = await build({
175
+ entryPoints: [entryPoint],
176
+ bundle: true,
177
+ sourcemap: 'inline',
178
+ format: 'cjs',
179
+ target: 'esnext',
180
+ platform: 'node',
181
+ logLevel: 'silent',
182
+ treeShaking: true,
183
+ write: false, // Output in memory
184
+ plugins: [
185
+ {
186
+ name: 'remove-create-wrappers',
187
+ setup(build) {
188
+ build.onLoad({ filter: /\.ts$/ }, async (args) => {
189
+ const source = await fs.promises.readFile(args.path, 'utf8');
190
+ const result = await babel.transformAsync(source, {
191
+ filename: args.path,
192
+ plugins: [removeCreateWrappersBabelPlugin],
193
+ parserOpts: { sourceType: 'module', plugins: ['typescript'] },
194
+ generatorOpts: { decoratorsBeforeExport: true }
195
+ });
196
+ return { contents: result?.code ?? source, loader: 'ts' };
197
+ });
198
+ }
199
+ },
200
+ {
201
+ name: 'external-npm-packages',
202
+ setup(buildInstance) {
203
+ buildInstance.onResolve({ filter: npmPackageRegex }, (args) => {
204
+ if (!args.path.startsWith('.') && !path.isAbsolute(args.path)) {
205
+ return { path: args.path, external: true };
206
+ }
207
+ return null; // let esbuild handle other paths
208
+ });
209
+ }
210
+ }
211
+ ],
212
+ tsconfigRaw: {
213
+ compilerOptions: {
214
+ ...tsconfig,
215
+ importsNotUsedAsValues: 'remove',
216
+ jsx: 'react',
217
+ target: 'esnext'
218
+ }
219
+ }
220
+ });
221
+ if (res.errors.length > 0) {
222
+ return Err('failed_to_build');
223
+ }
224
+ const output = res.outputFiles?.[0]?.text || '';
225
+ return Ok(output);
226
+ }
227
+ catch (err) {
228
+ if (err instanceof Error && err.message.includes('export')) {
229
+ return Err('export');
230
+ }
231
+ console.error(chalk.red(err));
232
+ return Err('failed_to_build_unknown');
233
+ }
234
+ }
235
+ /**
236
+ * We use esbuild to compile the code to .cjs.
237
+ * node.vm only supports CJS and we also bundle all imported files in the same file.
238
+ */
239
+ export async function compileOne({ entryPoint, projectRootPath }) {
240
+ const rel = path.relative(projectRootPath, entryPoint);
241
+ // File are compiled to build/integration-type-script-name.cjs
242
+ // Because it's easier to manipulate the files and it's easier in S3
243
+ const outfile = path.join(projectRootPath, 'build', tsToJsPath(rel));
244
+ // Ensure the output directory exists
245
+ await fs.promises.mkdir(path.dirname(outfile), { recursive: true });
246
+ const bundleResult = await bundleFile({ entryPoint });
247
+ if (bundleResult.isErr()) {
248
+ return Err(bundleResult.error);
249
+ }
250
+ try {
251
+ await fs.promises.writeFile(outfile, bundleResult.value, 'utf8');
252
+ }
253
+ catch (err) {
254
+ console.error(chalk.red(err));
255
+ return Err('failed_to_write_output');
256
+ }
257
+ return Ok(true);
258
+ }
259
+ /**
260
+ * We need to replace the .js extension with .cjs in the imports.
261
+ * This is because the code is compiled to .cjs and the imports are not automatically converted.
262
+ */
263
+ async function postCompile({ fullPath }) {
264
+ const files = await glob(path.join(fullPath, 'build', '/**/*.cjs'));
265
+ // Replace import with correct extension
266
+ await Promise.all(files.map(async (file) => {
267
+ let code = await fs.promises.readFile(file, 'utf8');
268
+ // Rewrite .js to .cjs in import/require paths
269
+ code = code.replace(/((?:import|require|from)\s*\(?['"])(\.\/[^'"]+)\.js(['"])/g, '$1$2.cjs$3');
270
+ await fs.promises.writeFile(file, code);
271
+ }));
272
+ }
273
+ export function tsToJsPath(filePath) {
274
+ return filePath.replace(/^\.\//, '').replaceAll('/', '_').replaceAll('.js', '.cjs');
275
+ }
276
+ /**
277
+ * This plugin is used to remove the create wrappers from the exports.
278
+ *
279
+ * Initially, I didn't want to remove this but because our codebase is ESM and node.vm only compiles CJS
280
+ * it was annoying to have to compile the code twice. And have mixed code when publishing.
281
+ * Since the wrapper is only used to stringly type the exports, we can remove it.
282
+ */
283
+ function removeCreateWrappersBabelPlugin({ types: t }) {
284
+ const allowedExports = ['createAction', 'createSync', 'createOnEvent'];
285
+ return {
286
+ visitor: {
287
+ ExportDefaultDeclaration(path) {
288
+ if (path.node.__transformedByRemoveCreateWrappers) {
289
+ return;
290
+ }
291
+ const decl = path.node.declaration;
292
+ let calleeName = null;
293
+ let arg = null;
294
+ // Case 1: export default createAction({...})
295
+ if (t.isCallExpression(decl) && t.isIdentifier(decl.callee) && allowedExports.includes(decl.callee.name)) {
296
+ let varName = '';
297
+ calleeName = decl.callee.name;
298
+ arg = decl.arguments[0];
299
+ if (!t.isObjectExpression(arg)) {
300
+ throw path.buildCodeFrameError(`Argument to ${calleeName} must be an object literal.`);
301
+ }
302
+ if (calleeName === 'createAction')
303
+ varName = 'action';
304
+ if (calleeName === 'createSync')
305
+ varName = 'sync';
306
+ if (calleeName === 'createOnEvent')
307
+ varName = 'onEvent';
308
+ // Inject type property
309
+ arg.properties = [t.objectProperty(t.identifier('type'), t.stringLiteral(varName)), ...arg.properties];
310
+ const newValue = arg;
311
+ // Insert: export const <varName> = <newValue>;
312
+ const exportConst = t.exportNamedDeclaration(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(varName), newValue)]), []);
313
+ // Insert: export default <varName>;
314
+ const exportDefault = t.exportDefaultDeclaration(t.identifier(varName));
315
+ exportConst.__transformedByRemoveCreateWrappers = true;
316
+ exportDefault.__transformedByRemoveCreateWrappers = true;
317
+ path.replaceWithMultiple([exportConst, exportDefault]);
318
+ }
319
+ // Case 2: export default action; (or sync/onEvent)
320
+ else if (t.isIdentifier(decl)) {
321
+ const binding = path.scope.getBinding(decl.name);
322
+ if (!binding || !binding.path.isVariableDeclarator()) {
323
+ throw path.buildCodeFrameError(`Invalid constant export`);
324
+ }
325
+ const init = binding.path.node.init;
326
+ if (!t.isCallExpression(init) || !t.isIdentifier(init.callee) || !allowedExports.includes(init.callee.name)) {
327
+ throw path.buildCodeFrameError(`Invalid function used in export`);
328
+ }
329
+ let varName = '';
330
+ calleeName = init.callee.name;
331
+ arg = init.arguments[0];
332
+ if (!t.isObjectExpression(arg)) {
333
+ throw path.buildCodeFrameError(`Argument to ${calleeName} must be an object literal.`);
334
+ }
335
+ if (calleeName === 'createAction')
336
+ varName = 'action';
337
+ if (calleeName === 'createSync')
338
+ varName = 'sync';
339
+ if (calleeName === 'createOnEvent')
340
+ varName = 'onEvent';
341
+ // Inject type property (mutate the object literal)
342
+ arg.properties = [t.objectProperty(t.identifier('type'), t.stringLiteral(varName)), ...arg.properties];
343
+ // Replace the variable's initializer with the object literal
344
+ binding.path.get('init').replaceWith(arg);
345
+ return;
346
+ }
347
+ else {
348
+ throw path.buildCodeFrameError(`Unsupported export`);
349
+ }
350
+ }
351
+ }
352
+ };
353
+ }
354
+ //# 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,33 @@
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
+ expect(result.isOk()).toBe(true);
31
+ });
32
+ });
33
+ //# sourceMappingURL=compile.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.unit.test.js","sourceRoot":"","sources":["../../lib/zeroYaml/compile.unit.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,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { CreateActionResponse, CreateSyncResponse } from '@nangohq/runner-sdk';
2
+ import type { NangoModel, NangoYamlParsed, ParsedNangoAction, ParsedNangoSync, Result } from '@nangohq/types';
3
+ export declare function buildDefinitions({ fullPath, debug }: {
4
+ fullPath: string;
5
+ debug: boolean;
6
+ }): Promise<Result<NangoYamlParsed>>;
7
+ export declare function buildSync({ params, integrationIdClean, basename, basenameClean }: {
8
+ params: CreateSyncResponse<Record<string, Zod.ZodObject<any>>, Zod.ZodTypeAny>;
9
+ integrationIdClean: string;
10
+ basename: string;
11
+ basenameClean: string;
12
+ }): {
13
+ sync: ParsedNangoSync;
14
+ models: Map<string, NangoModel>;
15
+ };
16
+ export declare function buildAction({ params, integrationIdClean, basename, basenameClean }: {
17
+ params: CreateActionResponse<Zod.ZodTypeAny, Zod.ZodTypeAny, Zod.ZodTypeAny>;
18
+ integrationIdClean: string;
19
+ basename: string;
20
+ basenameClean: string;
21
+ }): {
22
+ action: ParsedNangoAction;
23
+ models: Map<string, NangoModel>;
24
+ };
@@ -0,0 +1,146 @@
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { zodToNangoModelField } from './zodToNango.js';
4
+ import { Err, Ok } from '../utils/result.js';
5
+ import { printDebug } from '../utils.js';
6
+ import { tsToJsPath } from './compile.js';
7
+ const allowed = ['action', 'sync', 'onEvent'];
8
+ const exportRegex = /^export \* from ['"](.+)['"];?$/gm;
9
+ export async function buildDefinitions({ fullPath, debug }) {
10
+ const indexPath = path.join(fullPath, 'index.ts');
11
+ const indexContent = await fs.readFile(indexPath, 'utf-8');
12
+ const parsed = { yamlVersion: 'v2', integrations: [], models: new Map() };
13
+ printDebug('Rebuilding parsed from js files', debug);
14
+ const matched = indexContent.matchAll(exportRegex);
15
+ let num = 0;
16
+ for (const match of matched) {
17
+ const filePath = match[1];
18
+ if (!filePath) {
19
+ continue;
20
+ }
21
+ num += 1;
22
+ const modulePath = path.join(fullPath, 'build', tsToJsPath(filePath));
23
+ const moduleContent = await import(modulePath);
24
+ if (!moduleContent.default || !moduleContent.default.default) {
25
+ return Err(new Error(`Script should have a default export ${modulePath}`));
26
+ }
27
+ if (!moduleContent.default.default.type || !allowed.includes(moduleContent.default.default.type)) {
28
+ return Err(new Error(`Script should be declared using utility function (createSync, createAction, createOnEvent) ${modulePath}`));
29
+ }
30
+ printDebug(`Parsing ${filePath}`, debug);
31
+ const script = moduleContent.default.default;
32
+ const basename = path.basename(filePath, '.js');
33
+ const basenameClean = basename.replaceAll(/[^a-zA-Z0-9]/g, '');
34
+ const split = filePath.split('/');
35
+ const integrationId = split[split.length - 3];
36
+ const integrationIdClean = integrationId.replaceAll(/[^a-zA-Z0-9]/g, '_');
37
+ let integration = parsed.integrations.find((v) => v.providerConfigKey === integrationId);
38
+ if (!integration) {
39
+ integration = {
40
+ providerConfigKey: integrationId,
41
+ actions: [],
42
+ syncs: [],
43
+ onEventScripts: { 'post-connection-creation': [], 'pre-connection-deletion': [] }
44
+ };
45
+ parsed.integrations.push(integration);
46
+ }
47
+ switch (script.type) {
48
+ case 'sync': {
49
+ const def = buildSync({ params: script, integrationIdClean, basename, basenameClean });
50
+ integration.syncs.push(def.sync);
51
+ def.models.forEach((v, k) => {
52
+ parsed.models.set(k, v);
53
+ });
54
+ break;
55
+ }
56
+ case 'action': {
57
+ const def = buildAction({ params: script, integrationIdClean, basename, basenameClean });
58
+ integration.actions.push(def.action);
59
+ def.models.forEach((v, k) => {
60
+ parsed.models.set(k, v);
61
+ });
62
+ break;
63
+ }
64
+ case 'onEvent': {
65
+ if (script.event === 'post-connection-creation') {
66
+ integration.onEventScripts['post-connection-creation'].push(basename);
67
+ }
68
+ else if (script.event === 'pre-connection-deletion') {
69
+ integration.onEventScripts['pre-connection-deletion'].push(basename);
70
+ }
71
+ break;
72
+ }
73
+ }
74
+ }
75
+ if (num === 0) {
76
+ return Err(new Error('No export in index.ts'));
77
+ }
78
+ printDebug('Correctly parsed', debug);
79
+ return Ok(parsed);
80
+ }
81
+ export function buildSync({ params, integrationIdClean, basename, basenameClean }) {
82
+ const models = new Map();
83
+ const usedModels = new Set(Object.keys(params.models));
84
+ const metadata = params.metadata ? zodToNangoModelField(`SyncMetadata_${integrationIdClean}_${basenameClean}`, params.metadata) : null;
85
+ if (metadata) {
86
+ usedModels.add(metadata.name);
87
+ if (!Array.isArray(metadata.value)) {
88
+ models.set(metadata.name, { name: metadata.name, fields: [{ ...metadata, name: 'metadata' }], isAnon: true });
89
+ }
90
+ else {
91
+ models.set(metadata.name, { name: metadata.name, fields: metadata.value });
92
+ }
93
+ }
94
+ const sync = {
95
+ type: 'sync',
96
+ description: params.description,
97
+ auto_start: params.autoStart === true,
98
+ endpoints: params.endpoints,
99
+ input: metadata?.name || null,
100
+ name: basename,
101
+ output: Object.entries(params.models).map(([name, model]) => {
102
+ const to = zodToNangoModelField(name, model);
103
+ models.set(name, { name, fields: to['value'] });
104
+ usedModels.add(name);
105
+ return name;
106
+ }),
107
+ runs: params.frequency,
108
+ scopes: params.scopes || [],
109
+ sync_type: params.syncType,
110
+ track_deletes: params.trackDeletes === true,
111
+ usedModels: Array.from(usedModels.values()),
112
+ version: params.version || '0.0.1',
113
+ webhookSubscriptions: params.webhookSubscriptions || []
114
+ };
115
+ return { sync, models };
116
+ }
117
+ export function buildAction({ params, integrationIdClean, basename, basenameClean }) {
118
+ const models = new Map();
119
+ const input = zodToNangoModelField(`ActionInput_${integrationIdClean}_${basenameClean}`, params.input);
120
+ if (!Array.isArray(input.value)) {
121
+ models.set(input.name, { name: input.name, fields: [{ ...input, name: 'input' }], isAnon: true });
122
+ }
123
+ else {
124
+ models.set(input.name, { name: input.name, fields: input.value });
125
+ }
126
+ const output = zodToNangoModelField(`ActionOutput_${integrationIdClean}_${basenameClean}`, params.output);
127
+ if (!Array.isArray(output.value)) {
128
+ models.set(output.name, { name: output.name, fields: [{ ...output, name: 'output' }], isAnon: true });
129
+ }
130
+ else {
131
+ models.set(output.name, { name: output.name, fields: output.value });
132
+ }
133
+ const action = {
134
+ type: 'action',
135
+ description: params.description,
136
+ endpoint: params.endpoint,
137
+ input: input.name,
138
+ name: basename,
139
+ output: [output.name],
140
+ scopes: params.scopes || [],
141
+ usedModels: [input.name, output.name],
142
+ version: params.version || '0.0.1'
143
+ };
144
+ return { action, models };
145
+ }
146
+ //# 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 {};