nango 0.36.14 → 0.36.15

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 (40) hide show
  1. package/dist/cli.d.ts +16 -0
  2. package/dist/cli.js +338 -0
  3. package/dist/cli.js.map +1 -0
  4. package/dist/constants.d.ts +4 -0
  5. package/dist/constants.js +5 -0
  6. package/dist/constants.js.map +1 -0
  7. package/dist/index.js +25 -16
  8. package/dist/index.js.map +1 -1
  9. package/dist/nango-sync.d.ts +1 -0
  10. package/dist/services/compile.service.d.ts +5 -0
  11. package/dist/services/compile.service.js +72 -0
  12. package/dist/services/compile.service.js.map +1 -0
  13. package/dist/services/config.service.d.ts +8 -0
  14. package/dist/services/config.service.js +73 -0
  15. package/dist/services/config.service.js.map +1 -0
  16. package/dist/services/deploy.service.d.ts +16 -0
  17. package/dist/services/deploy.service.js +237 -0
  18. package/dist/services/deploy.service.js.map +1 -0
  19. package/dist/services/dryrun.service.d.ts +15 -0
  20. package/dist/services/dryrun.service.js +149 -0
  21. package/dist/services/dryrun.service.js.map +1 -0
  22. package/dist/services/local-integration.service.d.ts +6 -0
  23. package/dist/services/local-integration.service.js +62 -0
  24. package/dist/services/local-integration.service.js.map +1 -0
  25. package/dist/services/model.service.d.ts +8 -0
  26. package/dist/services/model.service.js +162 -0
  27. package/dist/services/model.service.js.map +1 -0
  28. package/dist/services/parser.service.d.ts +6 -0
  29. package/dist/services/parser.service.js +79 -0
  30. package/dist/services/parser.service.js.map +1 -0
  31. package/dist/services/verification.service.d.ts +6 -0
  32. package/dist/services/verification.service.js +113 -0
  33. package/dist/services/verification.service.js.map +1 -0
  34. package/dist/sync.unit.test.js +93 -11
  35. package/dist/sync.unit.test.js.map +1 -1
  36. package/dist/utils.d.ts +2 -3
  37. package/dist/utils.js +31 -90
  38. package/dist/utils.js.map +1 -1
  39. package/docker/docker-compose.yaml +2 -2
  40. package/package.json +5 -3
@@ -0,0 +1,162 @@
1
+ import fs from 'fs';
2
+ import yaml from 'js-yaml';
3
+ import chalk from 'chalk';
4
+ import { SyncConfigType, nangoConfigFile } from '@nangohq/shared';
5
+ import { printDebug, getNangoRootPath } from '../utils.js';
6
+ import { TYPES_FILE_NAME, NangoSyncTypesFileLocation } from '../constants.js';
7
+ import configService from './config.service.js';
8
+ class ModelService {
9
+ build(models, integrations, debug = false) {
10
+ const returnedModels = Object.keys(integrations).reduce((acc, providerConfigKey) => {
11
+ const syncObject = integrations[providerConfigKey];
12
+ const syncNames = Object.keys(syncObject);
13
+ for (let i = 0; i < syncNames.length; i++) {
14
+ const syncName = syncNames[i];
15
+ const syncData = syncObject[syncName];
16
+ if (syncData.returns) {
17
+ const syncReturns = Array.isArray(syncData.returns) ? syncData.returns : [syncData.returns];
18
+ syncReturns.forEach((modelName) => {
19
+ if (!acc.includes(modelName)) {
20
+ acc.push(modelName);
21
+ }
22
+ });
23
+ }
24
+ }
25
+ return acc;
26
+ }, []);
27
+ if (!models) {
28
+ return null;
29
+ }
30
+ const interfaceDefinitions = Object.keys(models).map((modelName) => {
31
+ const fields = models[modelName];
32
+ // we only care that models that are returned have an ID field
33
+ // if the model is not returned from a sync script then it must be a
34
+ // helper model that is used to build the returned models
35
+ const syncForModel = Object.keys(integrations).find((providerConfigKey) => {
36
+ const syncObject = integrations[providerConfigKey];
37
+ const syncNames = Object.keys(syncObject);
38
+ for (let i = 0; i < syncNames.length; i++) {
39
+ const syncName = syncNames[i];
40
+ const syncData = syncObject[syncName];
41
+ if (syncData.returns && syncData.type !== SyncConfigType.ACTION) {
42
+ return syncData.returns.includes(modelName);
43
+ }
44
+ }
45
+ return false;
46
+ });
47
+ if (returnedModels.includes(modelName) && !fields['id'] && syncForModel) {
48
+ throw new Error(`Model "${modelName}" doesn't have an id field. This is required to be able to uniquely identify the data record.`);
49
+ }
50
+ const singularModelName = modelName.charAt(modelName.length - 1) === 's' ? modelName.slice(0, -1) : modelName;
51
+ const interfaceName = `${singularModelName.charAt(0).toUpperCase()}${singularModelName.slice(1)}`;
52
+ let extendsClause = '';
53
+ const fieldDefinitions = Object.keys(fields)
54
+ .filter((fieldName) => {
55
+ if (fieldName === '__extends') {
56
+ const fieldModel = fields[fieldName];
57
+ const multipleExtends = fieldModel.split(',').map((e) => e.trim());
58
+ extendsClause = ` extends ${multipleExtends.join(', ')}`;
59
+ return false;
60
+ }
61
+ return true;
62
+ })
63
+ .map((fieldName) => {
64
+ const fieldModel = fields[fieldName];
65
+ const fieldType = this.getFieldType(fieldModel, debug);
66
+ return ` ${fieldName}: ${fieldType};`;
67
+ })
68
+ .join('\n');
69
+ const interfaceDefinition = `export interface ${interfaceName}${extendsClause} {\n${fieldDefinitions}\n}\n`;
70
+ return interfaceDefinition;
71
+ });
72
+ return interfaceDefinitions;
73
+ }
74
+ getFieldType(rawField, debug = false) {
75
+ if (typeof rawField === 'string') {
76
+ let field = rawField;
77
+ let hasNull = false;
78
+ let hasUndefined = false;
79
+ let tsType = '';
80
+ if (field.indexOf('null') !== -1) {
81
+ field = field.replace(/\s*\|\s*null\s*/g, '');
82
+ hasNull = true;
83
+ }
84
+ if (field === 'undefined') {
85
+ if (debug) {
86
+ printDebug(`Field is defined undefined which isn't recommended.`);
87
+ }
88
+ return 'undefined';
89
+ }
90
+ if (field.indexOf('undefined') !== -1) {
91
+ field = field.replace(/\s*\|\s*undefined\s*/g, '');
92
+ hasUndefined = true;
93
+ }
94
+ switch (field) {
95
+ case 'boolean':
96
+ case 'bool':
97
+ tsType = 'boolean';
98
+ break;
99
+ case 'string':
100
+ tsType = 'string';
101
+ break;
102
+ case 'char':
103
+ tsType = 'string';
104
+ break;
105
+ case 'integer':
106
+ case 'int':
107
+ case 'number':
108
+ tsType = 'number';
109
+ break;
110
+ case 'date':
111
+ tsType = 'Date';
112
+ break;
113
+ default:
114
+ tsType = field;
115
+ }
116
+ if (hasNull) {
117
+ tsType = `${tsType} | null`;
118
+ }
119
+ if (hasUndefined) {
120
+ tsType = `${tsType} | undefined`;
121
+ }
122
+ return tsType;
123
+ }
124
+ else {
125
+ try {
126
+ const nestedFields = Object.keys(rawField)
127
+ .map((fieldName) => ` ${fieldName}: ${this.getFieldType(rawField[fieldName])};`)
128
+ .join('\n');
129
+ return `{\n${nestedFields}\n}`;
130
+ }
131
+ catch (_) {
132
+ console.log(chalk.red(`Failed to parse field ${rawField} so just returning it back as a string`));
133
+ return String(rawField);
134
+ }
135
+ }
136
+ }
137
+ async createModelFile(notify = false) {
138
+ const configContents = fs.readFileSync(`./${nangoConfigFile}`, 'utf8');
139
+ const configData = yaml.load(configContents);
140
+ const { models, integrations } = configData;
141
+ const interfaceDefinitions = modelService.build(models, integrations);
142
+ if (interfaceDefinitions) {
143
+ fs.writeFileSync(`./${TYPES_FILE_NAME}`, interfaceDefinitions.join('\n'));
144
+ }
145
+ // insert NangoSync types to the bottom of the file
146
+ const typesContent = fs.readFileSync(`${getNangoRootPath()}/${NangoSyncTypesFileLocation}`, 'utf8');
147
+ fs.writeFileSync(`./${TYPES_FILE_NAME}`, typesContent, { flag: 'a' });
148
+ const { success, error, response: config } = await configService.load();
149
+ if (!success || !config) {
150
+ console.log(chalk.red(error?.message));
151
+ throw new Error('Failed to load config');
152
+ }
153
+ const flowConfig = `export const NangoFlows = ${JSON.stringify(config, null, 2)} as const; \n`;
154
+ fs.writeFileSync(`./${TYPES_FILE_NAME}`, flowConfig, { flag: 'a' });
155
+ if (notify) {
156
+ console.log(chalk.green(`The ${nangoConfigFile} was updated. The interface file (${TYPES_FILE_NAME}) was updated to reflect the updated config`));
157
+ }
158
+ }
159
+ }
160
+ const modelService = new ModelService();
161
+ export default modelService;
162
+ //# sourceMappingURL=model.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.service.js","sourceRoot":"","sources":["../../lib/services/model.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { SyncConfigType } from '@nangohq/shared';
2
+ declare class ParserService {
3
+ callsAreUsedCorrectly(filePath: string, type: SyncConfigType | undefined, modelNames: string[]): boolean;
4
+ }
5
+ declare const parserService: ParserService;
6
+ export default parserService;
@@ -0,0 +1,79 @@
1
+ import fs from 'fs';
2
+ import chalk from 'chalk';
3
+ import traverse from '@babel/traverse';
4
+ import * as t from '@babel/types';
5
+ import parser from '@babel/parser';
6
+ import { SyncConfigType } from '@nangohq/shared';
7
+ class ParserService {
8
+ callsAreUsedCorrectly(filePath, type = SyncConfigType.SYNC, modelNames) {
9
+ const code = fs.readFileSync(filePath, 'utf-8');
10
+ let areAwaited = true;
11
+ let usedCorrectly = true;
12
+ const ast = parser.parse(code, { sourceType: 'module', plugins: ['typescript'] });
13
+ const awaitMessage = (call, lineNumber) => console.log(chalk.red(`nango.${call}() calls must be awaited in "${filePath}:${lineNumber}". Not awaiting can lead to unexpected results.`));
14
+ const disallowedMessage = (call, lineNumber) => console.log(chalk.red(`nango.${call}() calls are not allowed in an action script. Please remove it at "${filePath}:${lineNumber}".`));
15
+ const nangoCalls = [
16
+ 'batchSend',
17
+ 'batchSave',
18
+ 'batchDelete',
19
+ 'log',
20
+ 'getFieldMapping',
21
+ 'setFieldMapping',
22
+ 'getMetadata',
23
+ 'setMetadata',
24
+ 'get',
25
+ 'post',
26
+ 'put',
27
+ 'patch',
28
+ 'delete',
29
+ 'getConnection',
30
+ 'setLastSyncDate',
31
+ 'getEnvironmentVariables',
32
+ 'triggerAction'
33
+ ];
34
+ const disallowedActionCalls = ['batchSend', 'batchSave', 'batchDelete', 'setLastSyncDate'];
35
+ const deprecatedCalls = {
36
+ batchSend: 'batchSave',
37
+ getFieldMapping: 'getMetadata',
38
+ setFieldMapping: 'setMetadata'
39
+ };
40
+ const callsReferencingModelsToCheck = ['batchSave', 'batchDelete'];
41
+ const traverseFn = traverse.default || traverse;
42
+ traverseFn(ast, {
43
+ CallExpression(path) {
44
+ const lineNumber = path.node.loc?.start.line;
45
+ const callee = path.node.callee;
46
+ if (callee.object?.type === 'Identifier' && callee.object.name === 'nango' && callee.property?.type === 'Identifier') {
47
+ if (deprecatedCalls[callee.property.name]) {
48
+ console.warn(chalk.yellow(`nango.${callee.property.name}() used at line ${lineNumber} is deprecated. Use nango.${deprecatedCalls[callee.property.name]}() instead.`));
49
+ }
50
+ if (type === SyncConfigType.ACTION) {
51
+ if (disallowedActionCalls.includes(callee.property.name)) {
52
+ disallowedMessage(callee.property.name, lineNumber);
53
+ usedCorrectly = false;
54
+ }
55
+ }
56
+ const isAwaited = path.findParent((parentPath) => parentPath.isAwaitExpression());
57
+ const isThenOrCatch = path.findParent((parentPath) => t.isMemberExpression(parentPath.node) &&
58
+ (t.isIdentifier(parentPath.node.property, { name: 'then' }) || t.isIdentifier(parentPath.node.property, { name: 'catch' })));
59
+ if (!isAwaited && !isThenOrCatch && nangoCalls.includes(callee.property.name)) {
60
+ awaitMessage(callee.property.name, lineNumber);
61
+ areAwaited = false;
62
+ }
63
+ if (callsReferencingModelsToCheck.includes(callee.property.name)) {
64
+ const args = path.node.arguments;
65
+ const modelArg = args[args.length - 1];
66
+ if (t.isStringLiteral(modelArg) && !modelNames.includes(modelArg.value)) {
67
+ console.log(chalk.red(`"${modelArg.value}" is not a valid model name. Please check "${filePath}:${lineNumber}". The possible model names are: ${modelNames.join(', ')}`));
68
+ usedCorrectly = false;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ });
74
+ return areAwaited && usedCorrectly;
75
+ }
76
+ }
77
+ const parserService = new ParserService();
78
+ export default parserService;
79
+ //# sourceMappingURL=parser.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.service.js","sourceRoot":"","sources":["../../lib/services/parser.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ declare class VerificationService {
2
+ necessaryFilesExist(autoConfirm: boolean, debug?: boolean, checkDist?: boolean): Promise<void>;
3
+ filesMatchConfig(): Promise<boolean>;
4
+ }
5
+ declare const verificationService: VerificationService;
6
+ export default verificationService;
@@ -0,0 +1,113 @@
1
+ import fs from 'fs';
2
+ import glob from 'glob';
3
+ import chalk from 'chalk';
4
+ import path from 'path';
5
+ import promptly from 'promptly';
6
+ import { nangoConfigFile } from '@nangohq/shared';
7
+ import configService from './config.service.js';
8
+ import compileService from './compile.service.js';
9
+ import { printDebug } from '../utils.js';
10
+ import { NANGO_INTEGRATIONS_NAME } from '../constants.js';
11
+ import { init, generate } from '../cli.js';
12
+ class VerificationService {
13
+ async necessaryFilesExist(autoConfirm, debug = false, checkDist = false) {
14
+ const cwd = process.cwd();
15
+ if (debug) {
16
+ printDebug(`Current full working directory is read as: ${cwd}`);
17
+ }
18
+ const currentDirectorySplit = cwd.split(/[\/\\]/);
19
+ const currentDirectory = currentDirectorySplit[currentDirectorySplit.length - 1];
20
+ if (debug) {
21
+ printDebug(`Current stripped directory is read as: ${currentDirectory}`);
22
+ }
23
+ if (currentDirectory !== NANGO_INTEGRATIONS_NAME) {
24
+ console.log(chalk.red(`You must run this command in the ${NANGO_INTEGRATIONS_NAME} directory.`));
25
+ process.exit(1);
26
+ }
27
+ if (!fs.existsSync(`./${nangoConfigFile}`)) {
28
+ const install = autoConfirm
29
+ ? true
30
+ : await promptly.confirm(`No ${nangoConfigFile} file was found. Would you like to create some default integrations and build them? (yes/no)`);
31
+ if (install) {
32
+ if (debug) {
33
+ printDebug(`Running init, generate, and tsc to create ${nangoConfigFile} file, generate the integration files and then compile them.`);
34
+ }
35
+ init(debug);
36
+ await generate(debug);
37
+ await compileService.run(debug);
38
+ }
39
+ else {
40
+ console.log(chalk.red(`Exiting...`));
41
+ process.exit(1);
42
+ }
43
+ }
44
+ else {
45
+ if (debug) {
46
+ printDebug(`Found ${nangoConfigFile} file successfully.`);
47
+ }
48
+ }
49
+ if (!checkDist) {
50
+ return;
51
+ }
52
+ const distDir = './dist';
53
+ if (!fs.existsSync(distDir)) {
54
+ if (debug) {
55
+ printDebug("Dist directory doesn't exist.");
56
+ }
57
+ const createDist = autoConfirm
58
+ ? true
59
+ : await promptly.confirm(`No dist directory was found. Would you like to create it and create default integrations? (yes/no)`);
60
+ if (createDist) {
61
+ if (debug) {
62
+ printDebug(`Creating the dist directory and generating the default integration files.`);
63
+ }
64
+ fs.mkdirSync(distDir);
65
+ await generate(debug);
66
+ await compileService.run(debug);
67
+ }
68
+ }
69
+ else {
70
+ const files = fs.readdirSync(distDir);
71
+ if (files.length === 0) {
72
+ if (debug) {
73
+ printDebug(`Dist directory exists but is empty.`);
74
+ }
75
+ const compile = autoConfirm
76
+ ? true
77
+ : await promptly.confirm(`The dist directory is empty. Would you like to generate the default integrations? (yes/no)`);
78
+ if (compile) {
79
+ if (debug) {
80
+ printDebug(`Generating the default integration files.`);
81
+ }
82
+ await compileService.run(debug);
83
+ }
84
+ }
85
+ }
86
+ }
87
+ async filesMatchConfig() {
88
+ const { success, error, response: config } = await configService.load();
89
+ if (!success || !config) {
90
+ console.log(chalk.red(error?.message));
91
+ throw new Error('Failed to load config');
92
+ }
93
+ const syncNames = config.map((provider) => provider.syncs.map((sync) => sync.name)).flat();
94
+ const actionNames = config.map((provider) => provider.actions.map((action) => action.name)).flat();
95
+ const flows = [...syncNames, ...actionNames];
96
+ const tsFiles = glob.sync(`./*.ts`);
97
+ const tsFileNames = tsFiles.filter((file) => !file.includes('models.ts')).map((file) => path.basename(file, '.ts'));
98
+ const missingSyncsAndActions = flows.filter((syncOrActionName) => !tsFileNames.includes(syncOrActionName));
99
+ if (missingSyncsAndActions.length > 0) {
100
+ console.log(chalk.red(`The following syncs are missing a corresponding .ts file: ${missingSyncsAndActions.join(', ')}`));
101
+ throw new Error('Syncs missing .ts files');
102
+ }
103
+ const extraSyncs = tsFileNames.filter((syncName) => !flows.includes(syncName));
104
+ if (extraSyncs.length > 0) {
105
+ console.log(chalk.red(`The following .ts files do not have a corresponding sync in the config: ${extraSyncs.join(', ')}`));
106
+ throw new Error('Extra .ts files');
107
+ }
108
+ return true;
109
+ }
110
+ }
111
+ const verificationService = new VerificationService();
112
+ export default verificationService;
113
+ //# sourceMappingURL=verification.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.service.js","sourceRoot":"","sources":["../../lib/services/verification.service.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,13 @@ import path from 'path';
3
3
  import * as fs from 'fs';
4
4
  import yaml from 'js-yaml';
5
5
  import { SyncConfigType } from '@nangohq/shared';
6
- import { init, generate, exampleSyncName, nangoCallsAreUsedCorrectly } from './sync.js';
6
+ import { init, generate } from './cli.js';
7
+ import { exampleSyncName } from './constants.js';
8
+ import configService from './services/config.service.js';
9
+ import parserService from './services/parser.service.js';
7
10
  describe('generate function tests', () => {
8
11
  const testDirectory = './nango-integrations';
12
+ const fixturesPath = './packages/cli/lib/fixtures';
9
13
  beforeAll(async () => {
10
14
  if (!fs.existsSync('./packages/cli/dist/nango-sync.d.ts')) {
11
15
  await fs.promises.writeFile('./packages/cli/dist/nango-sync.d.ts', '', 'utf8');
@@ -98,6 +102,76 @@ describe('generate function tests', () => {
98
102
  await generate(false, true);
99
103
  expect(fs.existsSync(`${testDirectory}/single-model-return.ts`)).toBe(true);
100
104
  });
105
+ it('should not create a file if endpoint is missing from a v2 config', async () => {
106
+ await init();
107
+ const data = {
108
+ integrations: {
109
+ 'demo-github-integration': {
110
+ syncs: {
111
+ 'single-model-return': {
112
+ type: 'sync',
113
+ runs: 'every half hour',
114
+ returns: 'GithubIssue'
115
+ }
116
+ }
117
+ }
118
+ },
119
+ models: {
120
+ GithubIssue: {
121
+ id: 'integer',
122
+ owner: 'string',
123
+ repo: 'string',
124
+ issue_number: 'number',
125
+ title: 'string',
126
+ author: 'string',
127
+ author_id: 'string',
128
+ state: 'string',
129
+ date_created: 'date',
130
+ date_last_modified: 'date',
131
+ body: 'string'
132
+ }
133
+ }
134
+ };
135
+ const yamlData = yaml.dump(data);
136
+ await fs.promises.writeFile(`${testDirectory}/nango.yaml`, yamlData, 'utf8');
137
+ expect(fs.existsSync(`${testDirectory}/single-model-return.ts`)).toBe(false);
138
+ });
139
+ it('should generate missing from a v2 config', async () => {
140
+ await init();
141
+ const data = {
142
+ integrations: {
143
+ 'demo-github-integration': {
144
+ syncs: {
145
+ 'single-model-issue-output': {
146
+ type: 'sync',
147
+ runs: 'every half hour',
148
+ endpoint: 'GET /tickets/issue',
149
+ output: 'GithubIssue'
150
+ }
151
+ }
152
+ }
153
+ },
154
+ models: {
155
+ GithubIssue: {
156
+ id: 'integer',
157
+ owner: 'string',
158
+ repo: 'string',
159
+ issue_number: 'number',
160
+ title: 'string',
161
+ author: 'string',
162
+ author_id: 'string',
163
+ state: 'string',
164
+ date_created: 'date',
165
+ date_last_modified: 'date',
166
+ body: 'string'
167
+ }
168
+ }
169
+ };
170
+ const yamlData = yaml.dump(data);
171
+ await fs.promises.writeFile(`${testDirectory}/nango.yaml`, yamlData, 'utf8');
172
+ await generate(false, true);
173
+ expect(fs.existsSync(`${testDirectory}/single-model-issue-output.ts`)).toBe(true);
174
+ });
101
175
  it('should throw an error if a model is missing an id that is actively used', async () => {
102
176
  await init();
103
177
  const data = {
@@ -159,7 +233,7 @@ describe('generate function tests', () => {
159
233
  await fs.promises.writeFile(`${testDirectory}/nango.yaml`, yamlData, 'utf8');
160
234
  await generate(false, true);
161
235
  });
162
- it('should allow javascript primitivs as a return type with no model', async () => {
236
+ it('should allow javascript primitives as a return type with no model', async () => {
163
237
  await init();
164
238
  const data = {
165
239
  integrations: {
@@ -197,27 +271,35 @@ describe('generate function tests', () => {
197
271
  };
198
272
  const yamlData = yaml.dump(data);
199
273
  await fs.promises.writeFile(`${testDirectory}/nango.yaml`, yamlData, 'utf8');
200
- expect(generate(false, true)).rejects.toThrow();
274
+ expect(await generate(false, true)).toBeUndefined();
201
275
  });
202
276
  it('should not complain of try catch not being awaited', async () => {
203
- const filePath = './packages/cli/lib/fixtures';
204
- const awaiting = nangoCallsAreUsedCorrectly(`${filePath}/sync.ts`, SyncConfigType.SYNC, ['GithubIssue']);
277
+ const awaiting = parserService.callsAreUsedCorrectly(`${fixturesPath}/sync.ts`, SyncConfigType.SYNC, ['GithubIssue']);
205
278
  expect(awaiting).toBe(true);
206
279
  });
207
280
  it('should complain of a non try catch not being awaited', async () => {
208
- const filePath = './packages/cli/lib/fixtures';
209
- const awaiting = nangoCallsAreUsedCorrectly(`${filePath}/failing-sync.ts`, SyncConfigType.SYNC, ['GithubIssue']);
281
+ const awaiting = parserService.callsAreUsedCorrectly(`${fixturesPath}/failing-sync.ts`, SyncConfigType.SYNC, ['GithubIssue']);
210
282
  expect(awaiting).toBe(false);
211
283
  });
212
284
  it('should not complain about a correct model', async () => {
213
- const filePath = './packages/cli/lib/fixtures';
214
- const usedCorrectly = nangoCallsAreUsedCorrectly(`${filePath}/bad-model.ts`, SyncConfigType.SYNC, ['SomeBadModel']);
285
+ const usedCorrectly = parserService.callsAreUsedCorrectly(`${fixturesPath}/bad-model.ts`, SyncConfigType.SYNC, ['SomeBadModel']);
215
286
  expect(usedCorrectly).toBe(true);
216
287
  });
217
288
  it('should complain about an incorrect model', async () => {
218
- const filePath = './packages/cli/lib/fixtures';
219
- const awaiting = nangoCallsAreUsedCorrectly(`${filePath}/bad-model.ts`, SyncConfigType.SYNC, ['GithubIssue']);
289
+ const awaiting = parserService.callsAreUsedCorrectly(`${fixturesPath}/bad-model.ts`, SyncConfigType.SYNC, ['GithubIssue']);
220
290
  expect(awaiting).toBe(false);
221
291
  });
292
+ it('should parse a nango.yaml file that is version 1 as expected', async () => {
293
+ const { response: config } = await configService.load(path.resolve(__dirname, `./fixtures/nango-yaml/v1`));
294
+ expect(config).toBeDefined();
295
+ const json = fs.readFileSync(path.resolve(__dirname, `./fixtures/nango-yaml/v1/object.json`), 'utf8');
296
+ expect(config).toEqual(JSON.parse(json));
297
+ });
298
+ it('should parse a nango.yaml file that is version 2 as expected', async () => {
299
+ const { response: config } = await configService.load(path.resolve(__dirname, `./fixtures/nango-yaml/v2`));
300
+ expect(config).toBeDefined();
301
+ const json = fs.readFileSync(path.resolve(__dirname, `./fixtures/nango-yaml/v2/object.json`), 'utf8');
302
+ expect(config).toEqual(JSON.parse(json));
303
+ });
222
304
  });
223
305
  //# sourceMappingURL=sync.unit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.unit.test.js","sourceRoot":"","sources":["../lib/sync.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.unit.test.js","sourceRoot":"","sources":["../lib/sync.unit.test.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import https from 'https';
3
- import type { SimplifiedNangoIntegration, NangoModel, NangoIntegration } from '@nangohq/shared';
3
+ import type { NangoModel, NangoIntegration } from '@nangohq/shared';
4
4
  export declare const NANGO_INTEGRATIONS_NAME = "nango-integrations";
5
5
  export declare const NANGO_INTEGRATIONS_LOCATION: string;
6
6
  export declare const port: string;
@@ -11,7 +11,6 @@ export declare function printDebug(message: string): void;
11
11
  export declare function isGlobal(packageName: string): Promise<boolean>;
12
12
  export declare function isLocallyInstalled(packageName: string, debug?: boolean): boolean;
13
13
  export declare function checkEnvVars(optionalHostport?: string): void;
14
- export declare function verifyNecessaryFiles(autoConfirm: boolean, debug?: boolean, checkDist?: boolean): Promise<void>;
15
14
  export declare function upgradeAction(debug?: boolean): Promise<void>;
16
15
  export declare function getConnection(providerConfigKey: string, connectionId: string, setHeaders?: Record<string, string | boolean>, debug?: boolean): Promise<any>;
17
16
  export declare function getProviderBySyncName(params: Record<string, string>, debug?: boolean): Promise<any>;
@@ -20,4 +19,4 @@ export declare function httpsAgent(): https.Agent;
20
19
  export declare function getFieldType(rawField: string | NangoModel, debug?: boolean): string;
21
20
  export declare function buildInterfaces(models: NangoModel, integrations: NangoIntegration, debug?: boolean): (string | undefined)[] | null;
22
21
  export declare function getNangoRootPath(debug?: boolean): string | null;
23
- export declare function getModelNamesFromConfig(config: SimplifiedNangoIntegration[]): string[];
22
+ export declare function parseSecretKey(environment: string, debug?: boolean): Promise<void>;