nango 0.69.42 → 0.69.44

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 (56) hide show
  1. package/dist/cli.d.ts +0 -9
  2. package/dist/cli.js +0 -210
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.js +70 -228
  5. package/dist/index.js.map +1 -1
  6. package/dist/migrations/toZeroYaml.js +2 -2
  7. package/dist/migrations/toZeroYaml.js.map +1 -1
  8. package/dist/services/docs.service.js +4 -6
  9. package/dist/services/docs.service.js.map +1 -1
  10. package/dist/services/dryrun.service.d.ts +1 -3
  11. package/dist/services/dryrun.service.js +22 -73
  12. package/dist/services/dryrun.service.js.map +1 -1
  13. package/dist/services/model.service.js +8 -0
  14. package/dist/services/model.service.js.map +1 -1
  15. package/dist/services/test.service.js +2 -2
  16. package/dist/services/test.service.js.map +1 -1
  17. package/dist/services/test.service.unit.cli-test.js +8 -1
  18. package/dist/services/test.service.unit.cli-test.js.map +1 -1
  19. package/dist/services/verification.service.d.ts +4 -9
  20. package/dist/services/verification.service.js +14 -80
  21. package/dist/services/verification.service.js.map +1 -1
  22. package/dist/sync.unit.cli-test.js +0 -326
  23. package/dist/sync.unit.cli-test.js.map +1 -1
  24. package/dist/templates/sync-test-template.ejs +42 -10
  25. package/dist/testMocks/utils.d.ts +7 -0
  26. package/dist/testMocks/utils.js +19 -0
  27. package/dist/testMocks/utils.js.map +1 -1
  28. package/dist/testMocks/utils.unified.unit.cli-test.js +21 -1
  29. package/dist/testMocks/utils.unified.unit.cli-test.js.map +1 -1
  30. package/dist/version.d.ts +1 -1
  31. package/dist/version.js +1 -1
  32. package/dist/zeroYaml/compile.d.ts +2 -2
  33. package/dist/zeroYaml/compile.js +6 -6
  34. package/dist/zeroYaml/compile.js.map +1 -1
  35. package/dist/zeroYaml/compile.unit.cli-test.js +3 -3
  36. package/dist/zeroYaml/compile.unit.cli-test.js.map +1 -1
  37. package/dist/zeroYaml/definitions.d.ts +17 -13
  38. package/dist/zeroYaml/definitions.js +98 -56
  39. package/dist/zeroYaml/definitions.js.map +1 -1
  40. package/dist/zeroYaml/deploy.js +5 -9
  41. package/dist/zeroYaml/deploy.js.map +1 -1
  42. package/dist/zeroYaml/dev.js +2 -2
  43. package/dist/zeroYaml/dev.js.map +1 -1
  44. package/dist/zeroYaml/init.js +2 -2
  45. package/dist/zeroYaml/init.js.map +1 -1
  46. package/dist/zeroYaml/json-schema.d.ts +14 -0
  47. package/dist/zeroYaml/json-schema.js +44 -0
  48. package/dist/zeroYaml/json-schema.js.map +1 -0
  49. package/example/package.json +1 -1
  50. package/package.json +7 -7
  51. package/dist/services/deploy.service.d.ts +0 -33
  52. package/dist/services/deploy.service.js +0 -467
  53. package/dist/services/deploy.service.js.map +0 -1
  54. package/dist/services/deploy.service.unit.cli-test.d.ts +0 -1
  55. package/dist/services/deploy.service.unit.cli-test.js +0 -88
  56. package/dist/services/deploy.service.unit.cli-test.js.map +0 -1
@@ -1,33 +0,0 @@
1
- import type { DeployOptions, InternalDeployOptions } from '../types.js';
2
- import type { CLIDeployFlowConfig, NangoYamlParsed, OnEventScriptsByProvider, PostDeploy } from '@nangohq/types';
3
- import type { JSONSchema7 } from 'json-schema';
4
- declare class DeployService {
5
- prep({ fullPath, options, environment, debug }: {
6
- fullPath: string;
7
- options: DeployOptions;
8
- environment: string;
9
- debug?: boolean;
10
- }): Promise<void>;
11
- deploy(url: string, body: PostDeploy['Body']): Promise<void>;
12
- internalDeploy({ fullPath, environment, options, debug }: {
13
- fullPath: string;
14
- environment: string;
15
- options: InternalDeployOptions;
16
- debug?: boolean;
17
- }): Promise<void>;
18
- package({ parsed, fullPath, debug, version, optionalSyncName, optionalActionName, integrationId }: {
19
- parsed: NangoYamlParsed;
20
- fullPath: string;
21
- debug: boolean;
22
- version?: string | undefined;
23
- optionalSyncName?: string | undefined;
24
- optionalActionName?: string | undefined;
25
- integrationId?: string | undefined;
26
- }): {
27
- flowConfigs: CLIDeployFlowConfig[];
28
- onEventScriptsByProvider: OnEventScriptsByProvider[] | undefined;
29
- jsonSchema: JSONSchema7;
30
- } | null;
31
- }
32
- declare const deployService: DeployService;
33
- export default deployService;
@@ -1,467 +0,0 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import { AxiosError } from 'axios';
4
- import chalk from 'chalk';
5
- import promptly from 'promptly';
6
- import { compileAllFiles, compileSingleFile, getFileToCompile, resolveTsFileLocation } from './compile.service.js';
7
- import verificationService from './verification.service.js';
8
- import { enrichHeaders, http, isCI, parseSecretKey, printDebug, resolveHostport } from '../utils.js';
9
- import { parse } from './config.service.js';
10
- import { loadSchemaJson } from './model.service.js';
11
- import { NANGO_VERSION } from '../version.js';
12
- class DeployService {
13
- async prep({ fullPath, options, environment, debug = false }) {
14
- const { env, version, sync: optionalSyncName, action: optionalActionName, integration: integrationId, autoConfirm, allowDestructive } = options;
15
- await verificationService.necessaryFilesExist({ fullPath, autoConfirm, checkDist: false });
16
- await parseSecretKey(environment, debug);
17
- const deployHost = resolveHostport(env);
18
- if (debug) {
19
- printDebug(`NANGO_HOSTPORT is set to ${deployHost}.`);
20
- printDebug(`Environment is set to ${environment}`);
21
- if (integrationId) {
22
- printDebug(`Deploying integration '${integrationId}' only`);
23
- }
24
- }
25
- const parsing = parse(fullPath, debug);
26
- if (parsing.isErr()) {
27
- console.log(chalk.red(parsing.error.message));
28
- return;
29
- }
30
- const parser = parsing.value;
31
- // Check if the integrationId exists in the parsed config
32
- if (integrationId && parser.parsed.integrations.every((integration) => integration.providerConfigKey !== integrationId)) {
33
- console.log(chalk.red(`Integration with ID "${integrationId}" not found in configuration.`));
34
- process.exit(1);
35
- }
36
- const hasSingleScript = Boolean(optionalSyncName || optionalActionName);
37
- const integrationIdMode = Boolean(integrationId);
38
- const singleDeployMode = hasSingleScript || integrationIdMode;
39
- let successfulCompile = false;
40
- // case where both integrationId and sync/action are specified
41
- if (hasSingleScript && integrationIdMode) {
42
- const scriptName = String(optionalSyncName || optionalActionName);
43
- const type = optionalSyncName ? 'syncs' : 'actions';
44
- const allMatchingIntegrations = parser.parsed.integrations.filter((integration) => {
45
- const scripts = type === 'syncs' ? integration.syncs : integration.actions;
46
- return scripts.some((script) => script.name === scriptName);
47
- });
48
- // Check if the specified integration has this script
49
- const matchingIntegration = allMatchingIntegrations.find((integration) => integration.providerConfigKey === integrationId);
50
- if (!matchingIntegration) {
51
- console.log(chalk.red(`The ${type.slice(0, -1)} "${scriptName}" does not exist in integration "${integrationId}".`));
52
- process.exit(1);
53
- }
54
- if (debug) {
55
- printDebug(`Compiling only the ${type.slice(0, -1)} "${scriptName}" from integration "${integrationId}"`);
56
- }
57
- const parentFilePath = resolveTsFileLocation({ fullPath, scriptName, providerConfigKey: integrationId, type });
58
- successfulCompile = await compileSingleFile({
59
- fullPath,
60
- file: getFileToCompile({
61
- fullPath,
62
- filePath: path.join(parentFilePath, `${scriptName}.ts`)
63
- }),
64
- parsed: parser.parsed,
65
- debug
66
- });
67
- }
68
- // single script mode without integration ID
69
- else if (hasSingleScript) {
70
- const scriptName = String(optionalSyncName || optionalActionName);
71
- const type = optionalSyncName ? 'syncs' : 'actions';
72
- const providerConfigKey = parser.parsed.integrations.find((integration) => {
73
- if (optionalSyncName) {
74
- return integration.syncs.find((sync) => sync.name === scriptName);
75
- }
76
- else {
77
- return integration.actions.find((action) => action.name === scriptName);
78
- }
79
- })?.providerConfigKey;
80
- if (providerConfigKey) {
81
- const parentFilePath = resolveTsFileLocation({ fullPath, scriptName, providerConfigKey, type });
82
- successfulCompile = await compileSingleFile({
83
- fullPath,
84
- file: getFileToCompile({
85
- fullPath,
86
- filePath: path.join(parentFilePath, `${scriptName}.ts`)
87
- }),
88
- parsed: parser.parsed,
89
- debug
90
- });
91
- }
92
- }
93
- else if (integrationIdMode) {
94
- // Only compile files for the specified integration
95
- const { success } = await compileAllFiles({
96
- fullPath,
97
- debug,
98
- providerConfigKey: integrationId
99
- });
100
- successfulCompile = success;
101
- }
102
- else {
103
- // Compile all files
104
- const { success } = await compileAllFiles({ fullPath, debug });
105
- successfulCompile = success;
106
- }
107
- if (!successfulCompile) {
108
- console.log(chalk.red('Compilation was not fully successful. Please make sure all files compile before deploying'));
109
- process.exit(1);
110
- }
111
- const postData = this.package({
112
- parsed: parser.parsed,
113
- fullPath,
114
- debug,
115
- version,
116
- optionalSyncName,
117
- optionalActionName,
118
- integrationId
119
- });
120
- if (!postData) {
121
- return;
122
- }
123
- const nangoYamlBody = parser.yaml;
124
- const sdkVersion = `${NANGO_VERSION}-yaml`;
125
- const url = deployHost + `/sync/deploy`;
126
- const bodyDeploy = {
127
- ...postData,
128
- reconcile: true,
129
- debug,
130
- nangoYamlBody,
131
- singleDeployMode,
132
- sdkVersion
133
- };
134
- const shouldConfirm = process.env['NANGO_DEPLOY_AUTO_CONFIRM'] !== 'true' && !autoConfirm;
135
- const confirmationUrl = deployHost + `/sync/deploy/confirmation`;
136
- try {
137
- const bodyConfirmation = {
138
- ...postData,
139
- reconcile: false,
140
- debug,
141
- singleDeployMode,
142
- sdkVersion
143
- };
144
- const response = await http.post(confirmationUrl, bodyConfirmation, { headers: enrichHeaders() });
145
- if (shouldConfirm) {
146
- // Show response in term
147
- console.log(JSON.stringify(response.data, null, 2));
148
- }
149
- const { newSyncs, deletedSyncs, deletedModels } = response.data;
150
- for (const sync of newSyncs) {
151
- const syncMessage = sync.connections === 0 || sync.auto_start === false
152
- ? 'The sync will be added to your Nango instance if you deploy.'
153
- : `Nango will start syncing the corresponding data for ${sync.connections} existing connections.`;
154
- console.log(chalk.yellow(`Sync "${sync.name}" is new. ${syncMessage}`));
155
- }
156
- let deletedSyncsConnectionsCount = 0;
157
- for (const sync of deletedSyncs) {
158
- console.log(chalk.red(`Sync "${sync.name}" has been removed. It will stop running and the corresponding data will be deleted for ${sync.connections} existing connections.`));
159
- deletedSyncsConnectionsCount += sync.connections;
160
- }
161
- if (deletedModels.length > 0) {
162
- console.log(chalk.red(`The following models have been removed: ${deletedModels.join(', ')}. WARNING: Renaming a model is the equivalent of deleting the old model and creating a new one. Records from the old model won't be transferred to the new model. Consider running a full sync to transfer records.`));
163
- }
164
- // force confirmation :
165
- // - if auto-confirm flag is not set
166
- // - OR if there are deleted syncs with connections (and allow-destructive flag is not set)
167
- // - OR if there are deleted models (and allow-destructive flag is not set)
168
- // If CI, fail the deploy
169
- const shouldConfirmDestructive = (deletedSyncsConnectionsCount > 0 || deletedModels.length > 0) && !allowDestructive;
170
- if (shouldConfirm || shouldConfirmDestructive) {
171
- let confirmationMsg = `Are you sure you want to continue y/n?`;
172
- if (!shouldConfirm && shouldConfirmDestructive) {
173
- confirmationMsg += ' (set --allow-destructive flag to skip this confirmation)';
174
- }
175
- if (isCI) {
176
- console.log(chalk.red(`Syncs/Actions were not deployed. Confirm the deploy by passing the --auto-confirm flag${shouldConfirmDestructive ? ' and --allow-destructive flag' : ''}. Exiting`));
177
- process.exit(1);
178
- }
179
- const confirmation = await promptly.confirm(confirmationMsg);
180
- if (!confirmation) {
181
- console.log(chalk.red('Syncs/Actions were not deployed. Exiting'));
182
- process.exit(0);
183
- }
184
- }
185
- else {
186
- if (debug) {
187
- const flags = [];
188
- if (!shouldConfirm) {
189
- flags.push('Auto confirm flag');
190
- }
191
- if (!shouldConfirmDestructive) {
192
- flags.push('Allow destructive flag');
193
- }
194
- printDebug(`${flags.join(' and ')} ${flags.length > 1 ? 'are' : 'is'} set, so deploy will start without confirmation`);
195
- }
196
- }
197
- }
198
- catch (err) {
199
- console.log(chalk.red(`Error deploying the syncs/actions with the following error`));
200
- let errorObject = err;
201
- if (err instanceof AxiosError) {
202
- if (err.response?.data?.error) {
203
- errorObject = err.response.data.error;
204
- }
205
- else {
206
- errorObject = { message: err.message, stack: err.stack, code: err.code, status: err.status, url, method: err.config?.method };
207
- }
208
- }
209
- console.log(chalk.red(JSON.stringify(errorObject, null, 2)));
210
- process.exit(1);
211
- }
212
- await this.deploy(url, bodyDeploy);
213
- }
214
- async deploy(url, body) {
215
- await http
216
- .post(url, body, { headers: enrichHeaders() })
217
- .then((response) => {
218
- const results = response.data;
219
- if (results.length === 0) {
220
- console.log(chalk.green(`Successfully removed the syncs/actions.`));
221
- }
222
- else {
223
- const nameAndVersions = results.map((result) => `${result.sync_name || result.name}@v${result.version}`);
224
- console.log(chalk.green(`Successfully deployed the functions: ${nameAndVersions.join(', ')}!`));
225
- }
226
- })
227
- .catch((err) => {
228
- const errorMessage = err instanceof AxiosError ? JSON.stringify(err.response?.data, null, 2) : JSON.stringify(err, ['message', 'name', 'stack'], 2);
229
- console.log(chalk.red(`Error deploying the functions with the following error: ${errorMessage}`));
230
- process.exit(1);
231
- });
232
- }
233
- async internalDeploy({ fullPath, environment, options, debug = false }) {
234
- const { env, integration } = options;
235
- await verificationService.necessaryFilesExist({ fullPath, autoConfirm: true, checkDist: false });
236
- await parseSecretKey('dev', debug);
237
- const deployHost = resolveHostport(env);
238
- if (debug) {
239
- printDebug(`NANGO_HOSTPORT is set to ${deployHost}.`);
240
- printDebug(`Environment is set to ${environment}`);
241
- if (integration) {
242
- printDebug(`Deploying for integration: '${integration}' only`);
243
- }
244
- }
245
- const parsing = parse(fullPath, debug);
246
- if (parsing.isErr()) {
247
- console.log(chalk.red(parsing.error.message));
248
- return;
249
- }
250
- const parser = parsing.value;
251
- if (integration && parser.parsed.integrations.every((int) => int.providerConfigKey === integration)) {
252
- console.log(chalk.red(`Integration with ID "${integration}" not found in configuration.`));
253
- process.exit(1);
254
- }
255
- let successfulCompile = false;
256
- if (integration) {
257
- // Only compile files for the specified integration
258
- const { success } = await compileAllFiles({
259
- fullPath,
260
- debug,
261
- providerConfigKey: integration
262
- });
263
- successfulCompile = success;
264
- }
265
- else {
266
- // Compile all files
267
- const { success } = await compileAllFiles({ fullPath, debug });
268
- successfulCompile = success;
269
- }
270
- if (!successfulCompile) {
271
- console.log(chalk.red('Compilation was not fully successful. Please make sure all files compile before deploying'));
272
- process.exit(1);
273
- }
274
- const postData = this.package({
275
- parsed: parser.parsed,
276
- fullPath,
277
- debug,
278
- integrationId: integration
279
- });
280
- if (!postData) {
281
- return;
282
- }
283
- const nangoYamlBody = parser.yaml;
284
- const url = deployHost + `/sync/deploy/internal?customEnvironment=${environment}`;
285
- const bodyDeploy = { ...postData, reconcile: true, debug, nangoYamlBody, singleDeployMode: false };
286
- await this.deploy(url, bodyDeploy);
287
- }
288
- package({ parsed, fullPath, debug, version = '', optionalSyncName, optionalActionName, integrationId }) {
289
- if (integrationId) {
290
- if (debug) {
291
- printDebug(`Packaging for integration: ${integrationId} only`);
292
- }
293
- }
294
- const hasBothFilters = integrationId && (optionalSyncName || optionalActionName);
295
- if (hasBothFilters && debug) {
296
- const scriptType = optionalSyncName ? 'sync' : 'action';
297
- const scriptName = optionalSyncName || optionalActionName;
298
- printDebug(`Packaging only ${scriptType} "${scriptName}" from integration "${integrationId}"`);
299
- }
300
- const postData = [];
301
- const onEventScriptsByProvider = optionalActionName || optionalSyncName ? undefined : []; // only load on-event scripts if we're not deploying a single sync or action
302
- const filteredIntegrations = integrationId
303
- ? parsed.integrations.filter((integration) => integration.providerConfigKey === integrationId)
304
- : parsed.integrations;
305
- for (const integration of filteredIntegrations) {
306
- const { providerConfigKey, onEventScripts, postConnectionScripts } = integration;
307
- if (onEventScriptsByProvider) {
308
- const scripts = [];
309
- for (const event of Object.keys(onEventScripts)) {
310
- for (const scriptName of onEventScripts[event]) {
311
- const files = loadScriptFiles({ scriptName: scriptName, providerConfigKey, fullPath, type: 'on-events' });
312
- if (!files) {
313
- console.log(chalk.red(`No function files found for "${scriptName}"`));
314
- return null;
315
- }
316
- scripts.push({ name: scriptName, fileBody: files, event });
317
- }
318
- }
319
- // for backward compatibility we also load post-connection-creation scripts
320
- for (const scriptName of postConnectionScripts || []) {
321
- const files = loadScriptFiles({ scriptName: scriptName, providerConfigKey, fullPath, type: 'post-connection-scripts' });
322
- if (files) {
323
- scripts.push({ name: scriptName, fileBody: files, event: 'post-connection-creation' });
324
- }
325
- }
326
- if (scripts.length > 0) {
327
- onEventScriptsByProvider.push({ providerConfigKey, scripts });
328
- }
329
- }
330
- if (!optionalActionName) {
331
- for (const sync of integration.syncs) {
332
- if (optionalSyncName && optionalSyncName !== sync.name) {
333
- continue;
334
- }
335
- const metadata = {};
336
- if (sync.description) {
337
- metadata['description'] = sync.description;
338
- }
339
- if (sync.scopes) {
340
- metadata['scopes'] = sync.scopes;
341
- }
342
- const files = loadScriptFiles({ scriptName: sync.name, providerConfigKey, fullPath, type: 'syncs' });
343
- if (!files) {
344
- console.log(chalk.red(`No script files found for "${sync.name}"`));
345
- return null;
346
- }
347
- if (debug) {
348
- printDebug(`Function files found for ${sync.name}`);
349
- }
350
- const body = {
351
- syncName: sync.name,
352
- providerConfigKey,
353
- models: sync.output || [],
354
- version: version || sync.version,
355
- runs: sync.runs,
356
- track_deletes: sync.track_deletes,
357
- auto_start: sync.auto_start,
358
- attributes: {},
359
- metadata: metadata,
360
- input: sync.input || undefined,
361
- sync_type: sync.sync_type,
362
- type: sync.type,
363
- fileBody: files,
364
- endpoints: sync.endpoints,
365
- webhookSubscriptions: sync.webhookSubscriptions
366
- };
367
- postData.push(body);
368
- }
369
- }
370
- if (!optionalSyncName) {
371
- for (const action of integration.actions) {
372
- if (optionalActionName && optionalActionName !== action.name) {
373
- continue;
374
- }
375
- const metadata = {};
376
- if (action.description) {
377
- metadata['description'] = action.description;
378
- }
379
- if (action.scopes) {
380
- metadata['scopes'] = action.scopes;
381
- }
382
- const files = loadScriptFiles({ scriptName: action.name, providerConfigKey, fullPath, type: 'actions' });
383
- if (!files) {
384
- console.log(chalk.red(`No script files found for "${action.name}"`));
385
- return null;
386
- }
387
- if (debug) {
388
- printDebug(`Function files found for "${action.name}"`);
389
- }
390
- const body = {
391
- syncName: action.name,
392
- providerConfigKey,
393
- models: action.output || [],
394
- version: version || action.version,
395
- runs: null,
396
- metadata: metadata,
397
- input: action.input || undefined,
398
- type: action.type,
399
- fileBody: files,
400
- endpoints: action.endpoint ? [action.endpoint] : [],
401
- track_deletes: false
402
- };
403
- postData.push(body);
404
- }
405
- }
406
- }
407
- if (debug && onEventScriptsByProvider) {
408
- for (const onEventScriptByProvider of onEventScriptsByProvider) {
409
- const { providerConfigKey, scripts } = onEventScriptByProvider;
410
- for (const script of scripts) {
411
- const { name } = script;
412
- printDebug(`on-events function found for ${providerConfigKey} with name ${name}`);
413
- }
414
- }
415
- }
416
- const jsonSchema = loadSchemaJson({ fullPath });
417
- if (!jsonSchema) {
418
- return null;
419
- }
420
- return { flowConfigs: postData, onEventScriptsByProvider, jsonSchema };
421
- }
422
- }
423
- function loadScriptFiles({ fullPath, scriptName, providerConfigKey, type }) {
424
- const js = loadScriptJsFile({ fullPath, scriptName, providerConfigKey });
425
- if (!js) {
426
- return null;
427
- }
428
- const ts = loadScriptTsFile({ fullPath, scriptName, providerConfigKey, type });
429
- if (!ts) {
430
- return null;
431
- }
432
- return { js, ts };
433
- }
434
- function loadScriptJsFile({ scriptName, providerConfigKey, fullPath }) {
435
- const filePath = path.join(fullPath, 'dist', `${scriptName}.js`);
436
- const fileNameWithProviderConfigKey = filePath.replace(`.js`, `-${providerConfigKey}.js`);
437
- try {
438
- let realPath;
439
- if (fs.existsSync(fileNameWithProviderConfigKey)) {
440
- realPath = fs.realpathSync(fileNameWithProviderConfigKey);
441
- }
442
- else {
443
- realPath = fs.realpathSync(filePath);
444
- }
445
- const content = fs.readFileSync(realPath, 'utf8');
446
- return content;
447
- }
448
- catch (err) {
449
- console.error(chalk.red(`Error loading file ${filePath}`), err instanceof Error ? err.message : err);
450
- return null;
451
- }
452
- }
453
- function loadScriptTsFile({ fullPath, scriptName, providerConfigKey, type }) {
454
- const dir = resolveTsFileLocation({ fullPath, scriptName, providerConfigKey, type });
455
- const filePath = path.join(dir, `${scriptName}.ts`);
456
- try {
457
- const tsIntegrationFileContents = fs.readFileSync(filePath, 'utf8');
458
- return tsIntegrationFileContents;
459
- }
460
- catch (err) {
461
- console.error(chalk.red(`Error loading file ${filePath}`), err);
462
- return null;
463
- }
464
- }
465
- const deployService = new DeployService();
466
- export default deployService;
467
- //# sourceMappingURL=deploy.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy.service.js","sourceRoot":"","sources":["../../lib/services/deploy.service.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,88 +0,0 @@
1
- import fs from 'node:fs';
2
- import { beforeAll, describe, expect, it } from 'vitest';
3
- import { compileAllFiles } from './compile.service.js';
4
- import { parse } from './config.service.js';
5
- import deployService from './deploy.service.js';
6
- import { copyDirectoryAndContents, fixturesPath, getTestDirectory, removeVersion } from '../tests/helpers.js';
7
- describe('package', () => {
8
- let dir;
9
- beforeAll(async () => {
10
- dir = await getTestDirectory('deploy-nested');
11
- await fs.promises.rm(dir, { recursive: true, force: true });
12
- await fs.promises.mkdir(dir, { recursive: true });
13
- await copyDirectoryAndContents(`${fixturesPath}/nango-yaml/v2/nested-integrations/hubspot`, `${dir}/hubspot`);
14
- await copyDirectoryAndContents(`${fixturesPath}/nango-yaml/v2/nested-integrations/github`, `${dir}/github`);
15
- await fs.promises.copyFile(`${fixturesPath}/nango-yaml/v2/nested-integrations/nango.yaml`, `${dir}/nango.yaml`);
16
- // Compile only once
17
- const result = await compileAllFiles({ fullPath: dir, debug: false });
18
- expect(result).toEqual({
19
- success: true,
20
- failedFiles: []
21
- });
22
- });
23
- it('should package correctly', () => {
24
- const parsing = parse(dir);
25
- if (parsing.isErr()) {
26
- throw parsing.error;
27
- }
28
- const res = deployService.package({ parsed: parsing.value.parsed, debug: false, fullPath: dir });
29
- expect(removeVersion(JSON.stringify(res.jsonSchema, null, 2))).toMatchSnapshot();
30
- expect(res?.flowConfigs.map((flow) => {
31
- return {
32
- ...flow,
33
- fileBody: {
34
- ts: flow.fileBody.ts,
35
- // Remove tsup comments
36
- js: flow.fileBody.js.replaceAll(/\/\/.*/g, '')
37
- }
38
- };
39
- })).toMatchSnapshot();
40
- });
41
- it('should filter by integrationId when specified', () => {
42
- const parsing = parse(dir);
43
- if (parsing.isErr()) {
44
- throw parsing.error;
45
- }
46
- // Test with hubspot only provided
47
- const resHubspot = deployService.package({
48
- parsed: parsing.value.parsed,
49
- debug: false,
50
- fullPath: dir,
51
- integrationId: 'hubspot'
52
- });
53
- // Verify only hubspot integrations are included
54
- expect(resHubspot).not.toBeNull();
55
- expect(resHubspot.flowConfigs.length).toBeGreaterThan(0);
56
- expect(resHubspot.flowConfigs.every((flow) => flow.providerConfigKey === 'hubspot')).toBe(true);
57
- // Verify no github integrations are included
58
- expect(resHubspot.flowConfigs.some((flow) => flow.providerConfigKey === 'github')).toBe(false);
59
- // Test with github
60
- const resGithub = deployService.package({
61
- parsed: parsing.value.parsed,
62
- debug: false,
63
- fullPath: dir,
64
- integrationId: 'github'
65
- });
66
- // Verify only github integrations are included
67
- expect(resGithub).not.toBeNull();
68
- expect(resGithub.flowConfigs.length).toBeGreaterThan(0);
69
- expect(resGithub.flowConfigs.every((flow) => flow.providerConfigKey === 'github')).toBe(true);
70
- // Verify no hubspot integrations are included
71
- expect(resGithub.flowConfigs.some((flow) => flow.providerConfigKey === 'hubspot')).toBe(false);
72
- // Test with no integrationId (should include all)
73
- const resAll = deployService.package({
74
- parsed: parsing.value.parsed,
75
- debug: false,
76
- fullPath: dir
77
- });
78
- expect(resAll).not.toBeNull();
79
- expect(resAll.flowConfigs.length).toBeGreaterThan(0);
80
- // Verify both hubspot and github integrations are included
81
- const providerKeys = new Set(resAll.flowConfigs.map((flow) => flow.providerConfigKey));
82
- expect(providerKeys.size).toBe(2);
83
- expect(providerKeys.has('hubspot')).toBe(true);
84
- expect(providerKeys.has('github')).toBe(true);
85
- expect(resAll.flowConfigs.length).toBe(resHubspot.flowConfigs.length + resGithub.flowConfigs.length);
86
- });
87
- });
88
- //# sourceMappingURL=deploy.service.unit.cli-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy.service.unit.cli-test.js","sourceRoot":"","sources":["../../lib/services/deploy.service.unit.cli-test.ts"],"names":[],"mappings":"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"}