nango 0.21.1 → 0.21.5

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.
package/dist/entry.js ADDED
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ var node_1 = require("@nangohq/node");
55
+ // TODO this will be a local interface created by the config yaml file
56
+ //import { ticket } from '@nangohq/models';
57
+ var GithubTicketSync = /** @class */ (function (_super) {
58
+ __extends(GithubTicketSync, _super);
59
+ function GithubTicketSync() {
60
+ return _super !== null && _super.apply(this, arguments) || this;
61
+ }
62
+ //async fetchData(nango: NangoHelper): { [ticket.name]: [ticket.type] } {
63
+ GithubTicketSync.prototype.fetchData = function (nango) {
64
+ return __awaiter(this, void 0, void 0, function () {
65
+ var issues, tickets;
66
+ return __generator(this, function (_a) {
67
+ switch (_a.label) {
68
+ case 0: return [4 /*yield*/, nango.get({
69
+ endpoint: 'repos/NangoHQ/nango/issues'
70
+ })];
71
+ case 1:
72
+ issues = _a.sent();
73
+ tickets = issues.map(function (issue) { return ({
74
+ id: issue.id,
75
+ title: issue.title,
76
+ description: issue.body,
77
+ status: issue.state,
78
+ author: {
79
+ avatar_url: issue.user.avatar_url
80
+ }
81
+ }); });
82
+ return [2 /*return*/, tickets];
83
+ }
84
+ });
85
+ });
86
+ };
87
+ return GithubTicketSync;
88
+ }(node_1.NangoSync));
89
+ exports.default = GithubSync;
package/dist/index.js CHANGED
@@ -7,32 +7,37 @@ import axios from 'axios';
7
7
  import chalk from 'chalk';
8
8
  import figlet from 'figlet';
9
9
  import fs from 'fs';
10
- import path, { dirname } from 'path';
11
- import { fileURLToPath } from 'url';
12
- import yaml from 'js-yaml';
13
- import ejs from 'ejs';
10
+ import path from 'path';
14
11
  import * as dotenv from 'dotenv';
15
12
  import promptly from 'promptly';
16
13
  import { cloudHost, stagingHost, nangoConfigFile, loadSimplifiedConfig, checkForIntegrationFile } from '@nangohq/shared';
17
- import { init, run, tsc, tscWatch, configWatch, dockerRun } from './sync.js';
18
- import { hostport, checkEnvVars, enrichHeaders, httpsAgent, NANGO_INTEGRATIONS_LOCATION, buildInterfaces } from './utils.js';
14
+ import { init, run, generate, tsc, tscWatch, configWatch, dockerRun, version } from './sync.js';
15
+ import { upgradeAction, checkEnvVars, enrichHeaders, httpsAgent, NANGO_INTEGRATIONS_LOCATION, verifyNecessaryFiles } from './utils.js';
19
16
  class NangoCommand extends Command {
20
17
  createCommand(name) {
21
18
  const cmd = new Command(name);
22
19
  cmd.option('-sk, --secret-key [secretKey]', 'Set the secret key. Overrides the `NANGO_SECRET_KEY` value set in the .env file');
23
20
  cmd.option('-h, --host [host]', 'Set the host. Overrides the `NANGO_HOSTPORT` value set in the .env file');
21
+ cmd.hook('preAction', async () => {
22
+ await upgradeAction();
23
+ });
24
24
  return cmd;
25
25
  }
26
26
  }
27
27
  const program = new NangoCommand();
28
- const __filename = fileURLToPath(import.meta.url);
29
- const __dirname = dirname(__filename);
30
28
  dotenv.config();
31
29
  // Test from the package root (/packages/cli) with 'node dist/index.js'
32
30
  program
33
31
  .name('nango')
34
32
  .description(`A CLI tool to configure Nango:\n- By defaults, the CLI assumes that you are running Nango on localhost:3003\n- For Nango Cloud: Set the NANGO_HOSTPORT & NANGO_SECRET_KEY env variables\n- For Self-Hosting: set the NANGO_HOSTPORT env variable`);
35
33
  program.addHelpText('before', chalk.green(figlet.textSync('Nango CLI')));
34
+ program
35
+ .command('version')
36
+ .alias('v')
37
+ .description('Print the version of the Nango CLI')
38
+ .action(() => {
39
+ version();
40
+ });
36
41
  program
37
42
  .command('init')
38
43
  .alias('i')
@@ -45,52 +50,15 @@ program
45
50
  .alias('g')
46
51
  .description('Generate a new Nango integration')
47
52
  .action(() => {
48
- const templateContents = fs.readFileSync(path.resolve(__dirname, './integration.ejs'), 'utf8');
49
- const cwd = process.cwd();
50
- const configContents = fs.readFileSync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/${nangoConfigFile}`), 'utf8');
51
- const configData = yaml.load(configContents);
52
- const { integrations } = configData;
53
- const { models } = configData;
54
- const interfaceDefinitions = buildInterfaces(models);
55
- fs.writeFileSync(`${NANGO_INTEGRATIONS_LOCATION}/models.ts`, interfaceDefinitions.join('\n'));
56
- for (let i = 0; i < Object.keys(integrations).length; i++) {
57
- const providerConfigKey = Object.keys(integrations)[i];
58
- const syncObject = integrations[providerConfigKey];
59
- const syncNames = Object.keys(syncObject);
60
- for (let k = 0; k < syncNames.length; k++) {
61
- const syncName = syncNames[k];
62
- const syncData = syncObject[syncName];
63
- const { returns: models } = syncData;
64
- const syncNameCamel = syncName
65
- .split('-')
66
- .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
67
- .join('');
68
- const rendered = ejs.render(templateContents, {
69
- syncName: syncNameCamel,
70
- interfaceNames: models.map((model) => {
71
- const singularModel = model?.charAt(model.length - 1) === 's' ? model.slice(0, -1) : model;
72
- return `${singularModel.charAt(0).toUpperCase()}${singularModel.slice(1)}`;
73
- }),
74
- mappings: models.map((model) => {
75
- const singularModel = model.charAt(model.length - 1) === 's' ? model.slice(0, -1) : model;
76
- return {
77
- name: model,
78
- type: `${singularModel.charAt(0).toUpperCase()}${singularModel.slice(1)}`
79
- };
80
- })
81
- });
82
- if (!fs.existsSync(`${NANGO_INTEGRATIONS_LOCATION}/${syncName}.ts`)) {
83
- fs.writeFileSync(`${NANGO_INTEGRATIONS_LOCATION}/${syncName}.ts`, rendered);
84
- }
85
- }
86
- }
87
- console.log(chalk.green(`Integration files have been created`));
53
+ verifyNecessaryFiles();
54
+ generate();
88
55
  });
89
56
  program
90
57
  .command('tsc')
91
58
  .alias('compile')
92
59
  .description('Compile the integration files to JavaScript')
93
60
  .action(() => {
61
+ verifyNecessaryFiles();
94
62
  tsc();
95
63
  });
96
64
  program
@@ -101,6 +69,7 @@ program
101
69
  .option('--no-compile-interfaces', `Watch the ${nangoConfigFile} and recompile the interfaces on change`, true)
102
70
  .action(async function () {
103
71
  const { compileInterfaces } = this.opts();
72
+ verifyNecessaryFiles();
104
73
  if (compileInterfaces) {
105
74
  configWatch();
106
75
  }
@@ -110,18 +79,20 @@ program
110
79
  .command('docker:run')
111
80
  .alias('dr')
112
81
  .description('Run the docker container locally')
113
- .action(() => {
114
- dockerRun();
82
+ .action(async () => {
83
+ verifyNecessaryFiles();
84
+ await dockerRun();
115
85
  });
116
86
  program
117
87
  .command('dev')
118
88
  .alias('develop')
119
89
  .alias('watch')
120
90
  .description('Work locally to add integration code')
121
- .action(() => {
91
+ .action(async () => {
92
+ verifyNecessaryFiles();
122
93
  configWatch();
123
94
  tscWatch();
124
- dockerRun();
95
+ await dockerRun();
125
96
  });
126
97
  program
127
98
  .command('deploy')
@@ -134,13 +105,13 @@ program
134
105
  const options = this.opts();
135
106
  (async (options) => {
136
107
  const { staging, version, sync: optionalSyncName, secretKey, host } = options;
108
+ verifyNecessaryFiles();
137
109
  if (host) {
138
110
  process.env['NANGO_HOSTPORT'] = host;
139
111
  }
140
112
  if (secretKey) {
141
113
  process.env['NANGO_SECRET_KEY'] = secretKey;
142
114
  }
143
- console.log(process.env['NANGO_HOSTPORT']);
144
115
  if (!process.env['NANGO_HOSTPORT']) {
145
116
  if (staging) {
146
117
  process.env['NANGO_HOSTPORT'] = stagingHost;
@@ -149,8 +120,7 @@ program
149
120
  process.env['NANGO_HOSTPORT'] = cloudHost;
150
121
  }
151
122
  }
152
- console.log(process.env['NANGO_HOSTPORT']);
153
- if (hostport !== 'http://localhost:3003' && !process.env['NANGO_SECRET_KEY']) {
123
+ if (process.env['NANGO_HOSTPORT'] !== 'http://localhost:3003' && !process.env['NANGO_SECRET_KEY']) {
154
124
  console.log(chalk.red(`NANGO_SECRET_KEY environment variable is not set. Please set it now`));
155
125
  try {
156
126
  const secretKey = await promptly.prompt('Secret Key: ');
@@ -166,7 +136,7 @@ program
166
136
  return;
167
137
  }
168
138
  }
169
- checkEnvVars();
139
+ checkEnvVars(process.env['NANGO_HOSTPORT']);
170
140
  tsc();
171
141
  const cwd = process.cwd();
172
142
  const config = await loadSimplifiedConfig(path.resolve(cwd, NANGO_INTEGRATIONS_LOCATION));
@@ -199,7 +169,11 @@ program
199
169
  postData.push(body);
200
170
  }
201
171
  }
202
- const url = hostport + `/sync/deploy`;
172
+ const url = process.env['NANGO_HOSTPORT'] + `/sync/deploy`;
173
+ if (postData.length === 0) {
174
+ console.log(chalk.red(`No syncs found to deploy. Please make sure your integration files compiled successfully and exist in your dist directory`));
175
+ return;
176
+ }
203
177
  await axios
204
178
  .post(url, postData, { headers: enrichHeaders(), httpsAgent: httpsAgent() })
205
179
  .then((_) => {
@@ -216,6 +190,7 @@ program
216
190
  .alias('scc')
217
191
  .description('Verify the parsed sync config and output the object for verification')
218
192
  .action(async () => {
193
+ verifyNecessaryFiles();
219
194
  const cwd = process.cwd();
220
195
  const config = await loadSimplifiedConfig(path.resolve(cwd, NANGO_INTEGRATIONS_LOCATION));
221
196
  console.log(chalk.green(JSON.stringify(config, null, 2)));
@@ -230,7 +205,7 @@ program
230
205
  .option('-l, --lastSyncDate [lastSyncDate]', 'Optional: last sync date to retrieve records greater than this date')
231
206
  .option('-u, --useServerLastSyncDate', 'Optional boolean: use the server stored last sync date to retrieve records greater than this date')
232
207
  .action(async function () {
233
- checkEnvVars();
208
+ verifyNecessaryFiles();
234
209
  run(this.args, this.opts());
235
210
  });
236
211
  program.parse();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACzH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAO7H,MAAM,YAAa,SAAQ,OAAO;IACrB,aAAa,CAAC,IAAY;QAC/B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,+BAA+B,EAAE,iFAAiF,CAAC,CAAC;QAC/H,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,yEAAyE,CAAC,CAAC;QAE3G,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAED,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AAEnC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,uEAAuE;AACvE,OAAO;KACF,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CACR,kPAAkP,CACrP,CAAC;AAEN,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAEzE,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,GAAG,EAAE;IACT,IAAI,EAAE,CAAC;AACX,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,UAAU,CAAC;KACnB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,GAAG,EAAE;IACT,MAAM,gBAAgB,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAC;IAE/F,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,IAAI,eAAe,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACvH,MAAM,UAAU,GAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,CAA2B,CAAC;IACpF,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;IACpC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAE9B,MAAM,oBAAoB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAErD,EAAE,CAAC,aAAa,CAAC,GAAG,2BAA2B,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvD,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAW,CAAC;QACjE,MAAM,UAAU,GAAG,YAAY,CAAC,iBAAiB,CAAmD,CAAC;QACrG,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAW,CAAC;YACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAoC,CAAC;YACzE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;YACrC,MAAM,aAAa,GAAG,QAAQ;iBACzB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;YACd,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBAC1C,QAAQ,EAAE,aAAa;gBACvB,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBACjC,MAAM,aAAa,GAAG,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC3F,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,CAAC,CAAC;gBACF,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC3B,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC1F,OAAO;wBACH,IAAI,EAAE,KAAK;wBACX,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;qBAC5E,CAAC;gBACN,CAAC,CAAC;aACL,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,2BAA2B,IAAI,QAAQ,KAAK,CAAC,EAAE;gBACjE,EAAE,CAAC,aAAa,CAAC,GAAG,2BAA2B,IAAI,QAAQ,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC/E;SACJ;KACJ;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,KAAK,CAAC;KACd,KAAK,CAAC,SAAS,CAAC;KAChB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,GAAG,EAAE;IACT,GAAG,EAAE,CAAC;AACV,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,WAAW,CAAC;KACpB,KAAK,CAAC,eAAe,CAAC;KACtB,KAAK,CAAC,MAAM,CAAC;KACb,WAAW,CAAC,mGAAmG,CAAC;KAChH,MAAM,CAAC,yBAAyB,EAAE,aAAa,eAAe,yCAAyC,EAAE,IAAI,CAAC;KAC9G,MAAM,CAAC,KAAK;IACT,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAE1C,IAAI,iBAAiB,EAAE;QACnB,WAAW,EAAE,CAAC;KACjB;IAED,QAAQ,EAAE,CAAC;AACf,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,YAAY,CAAC;KACrB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,GAAG,EAAE;IACT,SAAS,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,KAAK,CAAC;KACd,KAAK,CAAC,SAAS,CAAC;KAChB,KAAK,CAAC,OAAO,CAAC;KACd,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,GAAG,EAAE;IACT,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAQP,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC;KACrD,MAAM,CAAC,yBAAyB,EAAE,qGAAqG,CAAC;KACxI,MAAM,CAAC,uBAAuB,EAAE,sCAAsC,CAAC;KACvE,MAAM,CAAC,KAAK;IACT,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC,KAAK,EAAE,OAAsB,EAAE,EAAE;QAC9B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAE9E,IAAI,IAAI,EAAE;YACN,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;SACxC;QAED,IAAI,SAAS,EAAE;YACX,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;SAC/C;QAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAChC,IAAI,OAAO,EAAE;gBACT,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,WAAW,CAAC;aAC/C;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;aAC7C;SACJ;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAE3C,IAAI,QAAQ,KAAK,uBAAuB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;YAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC,CAAC;YAC9F,IAAI;gBACA,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBACxD,IAAI,SAAS,EAAE;oBACX,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;iBAC/C;qBAAM;oBACH,OAAO;iBACV;aACJ;YAAC,OAAO,KAAK,EAAE;gBACZ,OAAO,CAAC,GAAG,CAAC,uDAAuD,EAAE,KAAK,CAAC,CAAC;gBAC5E,OAAO;aACV;SACJ;QAED,YAAY,EAAE,CAAC;QACf,GAAG,EAAE,CAAC;QAEN,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC,CAAC;QAE1F,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,qBAAqB,eAAe,OAAO,CAAC,CAAC;SAChE;QAED,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,KAAK,MAAM,WAAW,IAAI,MAAM,EAAE;YAC9B,MAAM,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC;YAC1C,IAAI,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;YAE5B,IAAI,gBAAgB,EAAE;gBAClB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;aAClE;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACtB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;gBAE7E,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,uBAAuB,CACxF,QAAQ,EACR,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,EAAE,CAAC,CACtD,CAAC;gBAEF,IAAI,CAAC,qBAAqB,EAAE;oBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,QAAQ,OAAO,mBAAmB,eAAe,CAAC,CAAC,CAAC;oBAC3G,SAAS;iBACZ;gBAED,MAAM,IAAI,GAAG;oBACT,QAAQ;oBACR,iBAAiB;oBACjB,MAAM;oBACN,OAAO;oBACP,IAAI;oBACJ,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,MAAM,CAAC;oBACtD,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;iBAC7C,CAAC;gBAEF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvB;SACJ;QAED,MAAM,GAAG,GAAG,QAAQ,GAAG,cAAc,CAAC;QAEtC,MAAM,KAAK;aACN,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;aAC3E,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uDAAuD,YAAY,GAAG,CAAC,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;IACX,CAAC,CAAC,CAAC,OAAwB,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,mBAAmB,CAAC;KAC5B,KAAK,CAAC,KAAK,CAAC;KACZ,WAAW,CAAC,sEAAsE,CAAC;KACnF,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAE1F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,UAAU,CAAC;KACnB,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,uBAAuB,EAAE,2CAA2C,CAAC;KAC5E,MAAM,CAAC,sCAAsC,EAAE,yGAAyG,CAAC;KACzJ,MAAM,CAAC,kCAAkC,EAAE,2BAA2B,CAAC;KACvE,MAAM,CAAC,mCAAmC,EAAE,qEAAqE,CAAC;KAClH,MAAM,CAAC,6BAA6B,EAAE,mGAAmG,CAAC;KAC1I,MAAM,CAAC,KAAK;IACT,YAAY,EAAE,CAAC;IACf,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
@@ -2,27 +2,5 @@ import { NangoSync } from '@nangohq/node';
2
2
  import { <%= interfaceNames.join(', ') %> } from './models';
3
3
 
4
4
  export default async function fetchData(nango: NangoSync): Promise<{<% for (let i = 0; i < mappings.length; i++) { %><%= mappings[i].name %>: <%= mappings[i].type %>[]<% if (i !== mappings.length - 1) { %>, <% } %><% } %>}> {
5
- /**
6
- * Rest of the integration code goes below.
7
- * Example:
8
- const response = await nango.get({
9
- endpoint: 'repos/NangoHQ/nango/issues'
10
- });
11
-
12
- const issues = response.data.map((ghIssue: any) => {
13
- const issue: Issue = {
14
- id: ghIssue.id,
15
- title: ghIssue.title,
16
- description: ghIssue.body,
17
- status: ghIssue.status,
18
- author: {
19
- avatar_url: ghIssue.user.avatar_url,
20
- }
21
- };
22
-
23
- return issue;
24
- });
25
-
26
- return { issues };
27
- */
5
+ // Integration code goes here. See github-issue-example for a working example.
28
6
  }
@@ -0,0 +1,62 @@
1
+ import { NangoSync } from '@nangohq/node';
2
+ import { <%= interfaceNames.join(', ') %> } from './models';
3
+
4
+ export default async function fetchData(nango: NangoSync): Promise<{<% for (let i = 0; i < mappings.length; i++) { %><%= mappings[i].name %>: <%= mappings[i].type %>[]<% if (i !== mappings.length - 1) { %>, <% } %><% } %>}> {
5
+
6
+ const repos = await paginate(nango, '/user/repos');
7
+
8
+ for (let repo of repos) {
9
+ let issues = await paginate(nango, `/repos/${repo.owner.login}/${repo.name}/issues`);
10
+
11
+ // Filter out pull requests
12
+ issues = issues.filter(issue => !('pull_request' in issue));
13
+
14
+ const mappedIssues: GithubIssue[] = issues.map(issue => ({
15
+ id: issue.id,
16
+ owner: repo.owner.login,
17
+ repo: repo.name,
18
+ issue_number: issue.number,
19
+ title: issue.title,
20
+ state: issue.state,
21
+ author: issue.user.login,
22
+ author_id: issue.user.id,
23
+ body: issue.body,
24
+ date_created: issue.created_at,
25
+ date_last_modified: issue.updated_at
26
+ }));
27
+
28
+ if (mappedIssues.length > 0) {
29
+ await nango.batchSend(mappedIssues, 'GithubIssue');
30
+ await nango.log(`Sent ${mappedIssues.length} issues from ${repo.owner.login}/${repo.name}`);
31
+ }
32
+ }
33
+
34
+ // Return empty array with the model key to indicate success
35
+ return { GithubIssue: [] };
36
+ }
37
+
38
+ async function paginate(nango: NangoSync, endpoint: string) {
39
+ const MAX_PAGE = 100;
40
+
41
+ let results: any[] = [];
42
+ let page = 1;
43
+ while (true) {
44
+ const resp = await nango.get({
45
+ endpoint: endpoint,
46
+ params: {
47
+ limit: `${MAX_PAGE}`,
48
+ page: `${page}`
49
+ }
50
+ });
51
+
52
+ results = results.concat(resp.data);
53
+
54
+ if (resp.data.length == MAX_PAGE) {
55
+ page += 1;
56
+ } else {
57
+ break;
58
+ }
59
+ }
60
+
61
+ return results;
62
+ }
package/dist/sync.d.ts CHANGED
@@ -5,7 +5,9 @@ interface RunArgs {
5
5
  lastSyncDate?: string;
6
6
  useServerLastSyncDate?: boolean;
7
7
  }
8
+ export declare const version: () => void;
8
9
  export declare const init: () => void;
10
+ export declare const generate: () => Promise<void>;
9
11
  export declare const run: (args: string[], options: RunArgs) => Promise<void>;
10
12
  export declare const tsc: () => void;
11
13
  export declare const tscWatch: () => void;
@@ -15,5 +17,5 @@ export declare const configWatch: () => void;
15
17
  * @desc spawn a child process to run the docker compose located in the cli
16
18
  * Look into https://www.npmjs.com/package/docker-compose to avoid dependency maybe?
17
19
  */
18
- export declare const dockerRun: () => void;
20
+ export declare const dockerRun: () => Promise<void>;
19
21
  export {};
package/dist/sync.js CHANGED
@@ -1,42 +1,78 @@
1
1
  import fs from 'fs';
2
- import path from 'path';
2
+ import path, { dirname } from 'path';
3
+ import { fileURLToPath } from 'url';
3
4
  import yaml from 'js-yaml';
4
5
  import chalk from 'chalk';
5
6
  import chokidar from 'chokidar';
6
7
  import * as tsNode from 'ts-node';
7
8
  import glob from 'glob';
9
+ import ejs from 'ejs';
8
10
  import * as dotenv from 'dotenv';
9
11
  import { spawn } from 'child_process';
12
+ import parser from '@babel/parser';
13
+ import traverse from '@babel/traverse';
10
14
  import { cloudHost, stagingHost, SyncType, syncRunService, nangoConfigFile } from '@nangohq/shared';
11
15
  import { hostport, getConnection, NANGO_INTEGRATIONS_LOCATION, buildInterfaces } from './utils.js';
16
+ const __filename = fileURLToPath(import.meta.url);
17
+ const __dirname = dirname(__filename);
12
18
  dotenv.config();
19
+ const exampleSyncName = 'github-issue-example';
20
+ const createModelFile = (notify = false) => {
21
+ if (!fs.existsSync(`${NANGO_INTEGRATIONS_LOCATION}/models.ts`)) {
22
+ const cwd = process.cwd();
23
+ const configContents = fs.readFileSync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/${nangoConfigFile}`), 'utf8');
24
+ const configData = yaml.load(configContents);
25
+ const { models } = configData;
26
+ const interfaceDefinitions = buildInterfaces(models);
27
+ fs.writeFileSync(`${NANGO_INTEGRATIONS_LOCATION}/models.ts`, interfaceDefinitions.join('\n'));
28
+ if (notify) {
29
+ console.log(chalk.green(`${NANGO_INTEGRATIONS_LOCATION}/${nangoConfigFile} was updated. The interface file (${NANGO_INTEGRATIONS_LOCATION}/models.ts) was updated to reflect the updated config`));
30
+ }
31
+ }
32
+ };
33
+ export const version = () => {
34
+ const packageJson = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../package.json'), 'utf8'));
35
+ const dockerComposeYaml = fs.readFileSync(path.resolve(__dirname, '../docker/docker-compose.yaml'), 'utf8');
36
+ const dockerCompose = yaml.load(dockerComposeYaml);
37
+ const nangoServerImage = dockerCompose.services['nango-server'].image;
38
+ const nangoWorkerImage = dockerCompose.services['nango-worker'].image;
39
+ const nangoServerVersion = nangoServerImage.split(':').pop();
40
+ const nangoWorkerVersion = nangoWorkerImage.split(':').pop();
41
+ console.log(chalk.green('Nango Server version:'), nangoServerVersion);
42
+ console.log(chalk.green('Nango Worker version:'), nangoWorkerVersion);
43
+ console.log(chalk.green('Nango CLI version:'), packageJson.version);
44
+ };
13
45
  export const init = () => {
14
46
  const data = {
15
47
  integrations: {
16
48
  github: {
17
- 'github-issues': {
49
+ [exampleSyncName]: {
18
50
  runs: 'every half hour',
19
- returns: ['issues']
51
+ returns: ['GithubIssue']
20
52
  }
21
53
  },
22
54
  'asana-dev': {
23
55
  'asana-projects': {
24
56
  runs: 'every hour',
25
- returns: ['projects']
57
+ returns: ['AsanaProject']
26
58
  }
27
59
  }
28
60
  },
29
61
  models: {
30
- issues: {
62
+ GithubIssue: {
31
63
  id: 'integer',
64
+ owner: 'string',
65
+ repo: 'string',
66
+ issue_number: 'number',
32
67
  title: 'string',
33
- description: 'string',
34
- status: 'string',
35
- author: {
36
- avatar_url: 'string'
37
- }
68
+ author: 'string',
69
+ author_id: 'string',
70
+ state: 'string',
71
+ date_created: 'date',
72
+ date_last_modified: 'date',
73
+ body: 'string'
38
74
  },
39
- projects: {
75
+ AsanaProject: {
40
76
  id: 'number',
41
77
  type: 'string'
42
78
  }
@@ -46,8 +82,62 @@ export const init = () => {
46
82
  if (!fs.existsSync(NANGO_INTEGRATIONS_LOCATION)) {
47
83
  fs.mkdirSync(NANGO_INTEGRATIONS_LOCATION);
48
84
  }
49
- fs.writeFileSync(`${NANGO_INTEGRATIONS_LOCATION}/${nangoConfigFile}`, yamlData);
50
- console.log(chalk.green(`${nangoConfigFile} file has been created`));
85
+ if (!fs.existsSync(`${NANGO_INTEGRATIONS_LOCATION}/${nangoConfigFile}`)) {
86
+ fs.writeFileSync(`${NANGO_INTEGRATIONS_LOCATION}/${nangoConfigFile}`, yamlData);
87
+ }
88
+ // check if a .env file exists and if not create it with some default content
89
+ if (!fs.existsSync('.env')) {
90
+ fs.writeFileSync('.env', `#NANGO_HOSTPORT=https://api-staging.nango.dev
91
+ #NANGO_SECRET_KEY=xxxx-xxx-xxxx
92
+ #NANGO_INTEGRATIONS_LOCATION=use-this-to-override-where-the-nango-integrations-directory-goes
93
+ #NANGO_PORT=use-this-to-override-the-default-3003
94
+ #NANGO_DB_PORT=use-this-to-override-the-default-5432`);
95
+ }
96
+ console.log(chalk.green(`Nango integrations initialized!`));
97
+ };
98
+ export const generate = async () => {
99
+ const templateContents = fs.readFileSync(path.resolve(__dirname, './integration.ejs'), 'utf8');
100
+ const githubExampleTemplateContents = fs.readFileSync(path.resolve(__dirname, './integration.github.ejs'), 'utf8');
101
+ const cwd = process.cwd();
102
+ const configContents = fs.readFileSync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/${nangoConfigFile}`), 'utf8');
103
+ const configData = yaml.load(configContents);
104
+ const { integrations } = configData;
105
+ const { models } = configData;
106
+ const interfaceDefinitions = buildInterfaces(models);
107
+ fs.writeFileSync(`${NANGO_INTEGRATIONS_LOCATION}/models.ts`, interfaceDefinitions.join('\n'));
108
+ for (let i = 0; i < Object.keys(integrations).length; i++) {
109
+ const providerConfigKey = Object.keys(integrations)[i];
110
+ const syncObject = integrations[providerConfigKey];
111
+ const syncNames = Object.keys(syncObject);
112
+ for (let k = 0; k < syncNames.length; k++) {
113
+ const syncName = syncNames[k];
114
+ const syncData = syncObject[syncName];
115
+ const { returns: models } = syncData;
116
+ const syncNameCamel = syncName
117
+ .split('-')
118
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
119
+ .join('');
120
+ const ejsTeamplateContents = syncName === exampleSyncName ? githubExampleTemplateContents : templateContents;
121
+ const rendered = ejs.render(ejsTeamplateContents, {
122
+ syncName: syncNameCamel,
123
+ interfaceNames: models.map((model) => {
124
+ const singularModel = model?.charAt(model.length - 1) === 's' ? model.slice(0, -1) : model;
125
+ return `${singularModel.charAt(0).toUpperCase()}${singularModel.slice(1)}`;
126
+ }),
127
+ mappings: models.map((model) => {
128
+ const singularModel = model.charAt(model.length - 1) === 's' ? model.slice(0, -1) : model;
129
+ return {
130
+ name: model,
131
+ type: `${singularModel.charAt(0).toUpperCase()}${singularModel.slice(1)}`
132
+ };
133
+ })
134
+ });
135
+ if (!fs.existsSync(`${NANGO_INTEGRATIONS_LOCATION}/${syncName}.ts`)) {
136
+ fs.writeFileSync(`${NANGO_INTEGRATIONS_LOCATION}/${syncName}.ts`, rendered);
137
+ }
138
+ }
139
+ }
140
+ console.log(chalk.green(`Integration files have been created`));
51
141
  };
52
142
  export const run = async (args, options) => {
53
143
  let syncName, providerConfigKey, connectionId, suppliedLastSyncDate, useServerLastSyncDate;
@@ -111,6 +201,9 @@ export const tsc = () => {
111
201
  if (!fs.existsSync(distDir)) {
112
202
  fs.mkdirSync(distDir);
113
203
  }
204
+ if (!fs.existsSync(`${NANGO_INTEGRATIONS_LOCATION}/models.ts`)) {
205
+ createModelFile();
206
+ }
114
207
  const rawNangoIntegrationLocation = NANGO_INTEGRATIONS_LOCATION.replace('./', '');
115
208
  const compiler = tsNode.create({
116
209
  compilerOptions: JSON.parse(tsconfig).compilerOptions
@@ -118,6 +211,9 @@ export const tsc = () => {
118
211
  const integrationFiles = glob.sync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/*.ts`));
119
212
  for (const filePath of integrationFiles) {
120
213
  try {
214
+ if (!nangoCallsAreAwaited(filePath)) {
215
+ return;
216
+ }
121
217
  const result = compiler.compile(fs.readFileSync(filePath, 'utf8'), filePath);
122
218
  const jsFilePath = path.join(path.dirname(filePath), path.basename(filePath, '.ts') + '.js');
123
219
  const distJSFilePath = jsFilePath.replace(rawNangoIntegrationLocation, `${rawNangoIntegrationLocation}/dist`);
@@ -130,6 +226,29 @@ export const tsc = () => {
130
226
  }
131
227
  }
132
228
  };
229
+ const nangoCallsAreAwaited = (filePath) => {
230
+ const code = fs.readFileSync(filePath, 'utf-8');
231
+ let areAwaited = true;
232
+ const ast = parser.parse(code, { sourceType: 'module', plugins: ['typescript'] });
233
+ const message = (call, lineNumber) => console.log(chalk.red(`nango.${call}() calls must be awaited in "${filePath}:${lineNumber}". Not awaiting can lead to unexpected results.`));
234
+ const nangoCalls = ['batchSend', 'log', 'getFieldMapping', 'setFieldMapping', 'get', 'post', 'put', 'patch', 'delete'];
235
+ // @ts-ignore
236
+ traverse.default(ast, {
237
+ CallExpression(path) {
238
+ const lineNumber = path.node.loc?.start.line;
239
+ const callee = path.node.callee;
240
+ if (callee.object.type === 'Identifier' && callee.object.name === 'nango' && callee.property.type === 'Identifier') {
241
+ if (path.parent.type !== 'AwaitExpression') {
242
+ if (nangoCalls.includes(callee.property.name)) {
243
+ message(callee.property.name, lineNumber);
244
+ areAwaited = false;
245
+ }
246
+ }
247
+ }
248
+ }
249
+ });
250
+ return areAwaited;
251
+ };
133
252
  export const tscWatch = () => {
134
253
  const cwd = process.cwd();
135
254
  const tsconfig = fs.readFileSync('./node_modules/nango/tsconfig.dev.json', 'utf8');
@@ -145,6 +264,9 @@ export const tscWatch = () => {
145
264
  if (!fs.existsSync(distDir)) {
146
265
  fs.mkdirSync(distDir);
147
266
  }
267
+ if (!fs.existsSync(`${NANGO_INTEGRATIONS_LOCATION}/models.ts`)) {
268
+ createModelFile();
269
+ }
148
270
  watcher.on('add', (filePath) => {
149
271
  if (filePath === `${rawNangoIntegrationLocation}/${nangoConfigFile}`) {
150
272
  return;
@@ -172,6 +294,9 @@ export const tscWatch = () => {
172
294
  compilerOptions: JSON.parse(tsconfig).compilerOptions
173
295
  });
174
296
  try {
297
+ if (!nangoCallsAreAwaited(filePath)) {
298
+ return;
299
+ }
175
300
  const result = compiler.compile(fs.readFileSync(filePath, 'utf8'), filePath);
176
301
  const jsFilePath = path.join(path.dirname(filePath), path.basename(filePath, '.ts') + '.js');
177
302
  const distJSFilePath = jsFilePath.replace(rawNangoIntegrationLocation, `${rawNangoIntegrationLocation}/dist`);
@@ -188,33 +313,48 @@ export const tscWatch = () => {
188
313
  export const configWatch = () => {
189
314
  const watchPath = `${NANGO_INTEGRATIONS_LOCATION}/${nangoConfigFile}`;
190
315
  const watcher = chokidar.watch(watchPath, { ignoreInitial: true });
191
- watcher.on('add', (filePath) => {
192
- buildInterface(filePath);
316
+ watcher.on('add', () => {
317
+ createModelFile(true);
193
318
  });
194
- watcher.on('change', (filePath) => {
195
- buildInterface(filePath);
319
+ watcher.on('change', () => {
320
+ createModelFile(true);
196
321
  });
197
- function buildInterface(filePath) {
198
- const cwd = process.cwd();
199
- const configContents = fs.readFileSync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/${nangoConfigFile}`), 'utf8');
200
- const configData = yaml.load(configContents);
201
- const { models } = configData;
202
- const interfaces = buildInterfaces(models);
203
- fs.writeFileSync(`${NANGO_INTEGRATIONS_LOCATION}/models.ts`, interfaces.join('\n'));
204
- console.log(chalk.green(`${filePath} was updated. The interface file (${NANGO_INTEGRATIONS_LOCATION}/models.ts) was updated to reflect the updated config`));
205
- }
206
322
  };
323
+ let child;
324
+ process.on('SIGINT', () => {
325
+ if (child) {
326
+ const dockerDown = spawn('docker', ['compose', '-f', 'node_modules/nango/docker/docker-compose.yaml', '--project-directory', '.', 'down'], {
327
+ stdio: 'inherit'
328
+ });
329
+ dockerDown.on('exit', () => {
330
+ process.exit();
331
+ });
332
+ }
333
+ else {
334
+ process.exit();
335
+ }
336
+ });
207
337
  /**
208
338
  * Docker Run
209
339
  * @desc spawn a child process to run the docker compose located in the cli
210
340
  * Look into https://www.npmjs.com/package/docker-compose to avoid dependency maybe?
211
341
  */
212
- export const dockerRun = () => {
342
+ export const dockerRun = async () => {
213
343
  const cwd = process.cwd();
214
- spawn('docker', ['compose', '-f', 'node_modules/nango/docker/docker-compose.yaml', '--project-directory', '.', 'up', '--build'], {
344
+ child = spawn('docker', ['compose', '-f', 'node_modules/nango/docker/docker-compose.yaml', '--project-directory', '.', 'up', '--build'], {
215
345
  cwd,
216
346
  detached: false,
217
347
  stdio: 'inherit'
218
348
  });
349
+ await new Promise((resolve, reject) => {
350
+ child?.on('exit', (code) => {
351
+ if (code !== 0) {
352
+ reject(new Error(`Error with the nango docker containers, please check your containers using 'docker ps''`));
353
+ return;
354
+ }
355
+ resolve(true);
356
+ });
357
+ child?.on('error', reject);
358
+ });
219
359
  };
220
360
  //# sourceMappingURL=sync.js.map
package/dist/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../lib/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnG,MAAM,CAAC,MAAM,EAAE,CAAC;AAUhB,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,EAAE;IACrB,MAAM,IAAI,GAAgB;QACtB,YAAY,EAAE;YACV,MAAM,EAAE;gBACJ,eAAe,EAAE;oBACb,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,CAAC,QAAQ,CAAC;iBACtB;aACJ;YACD,WAAW,EAAE;gBACT,gBAAgB,EAAE;oBACd,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,CAAC,UAAU,CAAC;iBACxB;aACJ;SACJ;QACD,MAAM,EAAE;YACJ,MAAM,EAAE;gBACJ,EAAE,EAAE,SAAS;gBACb,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,QAAQ;gBACrB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE;oBACJ,UAAU,EAAE,QAAQ;iBACvB;aACJ;YACD,QAAQ,EAAE;gBACN,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,QAAQ;aACjB;SACJ;KACJ,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE;QAC7C,EAAE,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;KAC7C;IACD,EAAE,CAAC,aAAa,CAAC,GAAG,2BAA2B,IAAI,eAAe,EAAE,EAAE,QAAQ,CAAC,CAAC;IAEhF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,eAAe,wBAAwB,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAE,IAAc,EAAE,OAAgB,EAAE,EAAE;IAC1D,IAAI,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,CAAC;IAC3F,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACjB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,GAAG,IAAI,CAAC;KACnG;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,CAAC;KACpJ;IAED,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAChD,OAAO;KACV;IAED,IAAI,CAAC,iBAAiB,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC1D,OAAO;KACV;IAED,IAAI,CAAC,YAAY,EAAE;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACpD,OAAO;KACV;IAED,MAAM,eAAe,GAAG,CAAC,MAAM,aAAa,CAAC,iBAA2B,EAAE,YAAsB,EAAE;QAC9F,eAAe,EAAE,IAAI;QACrB,kBAAkB,EAAE,IAAI;KAC3B,CAAC,CAA+B,CAAC;IAElC,IAAI,CAAC,eAAe,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC/C,OAAO;KACV;IAED,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,EAAE;QACpD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;KACvC;IAED,IAAI,YAAY,GAAG,IAAI,CAAC;IAExB,IAAI,oBAAoB,EAAE;QACtB,YAAY,GAAG,IAAI,IAAI,CAAC,oBAA8B,CAAC,CAAC;KAC3D;IAED,IAAI,CAAC,qBAAqB,EAAE;QACxB,YAAY,GAAG,IAAI,CAAC;KACvB;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC;QAC/B,SAAS,EAAE,KAAK;QAChB,eAAe;QACf,QAAQ;QACR,QAAQ,EAAE,QAAQ,CAAC,OAAO;QAC1B,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,EAAE,CAAC;KACpE,CAAC,CAAC;IAEH,IAAI;QACA,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE;IACpB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,wCAAwC,EAAE,MAAM,CAAC,CAAC;IAEnF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,OAAO,CAAC,CAAC;IAEzE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QACzB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KACzB;IAED,MAAM,2BAA2B,GAAG,2BAA2B,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAElF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3B,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,eAAe;KACxD,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,OAAO,CAAC,CAAC,CAAC;IAC7F,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE;QACrC,IAAI;YACA,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;YAC7F,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,2BAA2B,EAAE,GAAG,2BAA2B,OAAO,CAAC,CAAC;YAE9G,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,QAAQ,gBAAgB,CAAC,CAAC,CAAC;SACnE;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,oBAAoB,QAAQ,IAAI,CAAC,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACxB;KACJ;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,wCAAwC,EAAE,MAAM,CAAC,CAAC;IAEnF,MAAM,SAAS,GAAG,CAAC,GAAG,2BAA2B,OAAO,EAAE,GAAG,2BAA2B,IAAI,eAAe,EAAE,CAAC,CAAC;IAC/G,MAAM,2BAA2B,GAAG,2BAA2B,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAElF,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE;QACtC,aAAa,EAAE,KAAK;QACpB,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE;YAC1B,OAAO,QAAQ,KAAK,GAAG,2BAA2B,YAAY,CAAC;QACnE,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,OAAO,CAAC,CAAC;IAEzE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QACzB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KACzB;IAED,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,QAAgB,EAAE,EAAE;QACnC,IAAI,QAAQ,KAAK,GAAG,2BAA2B,IAAI,eAAe,EAAE,EAAE;YAClE,OAAO;SACV;QACD,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAgB,EAAE,EAAE;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;QAC7F,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,2BAA2B,EAAE,GAAG,2BAA2B,OAAO,CAAC,CAAC;QAC9G,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAgB,EAAE,EAAE;QACtC,IAAI,QAAQ,KAAK,GAAG,2BAA2B,IAAI,eAAe,EAAE,EAAE;YAClE,+CAA+C;YAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,OAAO,CAAC,CAAC,CAAC;YAC7F,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE;gBACjC,WAAW,CAAC,IAAI,CAAC,CAAC;aACrB;YACD,OAAO;SACV;QACD,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,SAAS,WAAW,CAAC,QAAgB;QACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,eAAe;SACxD,CAAC,CAAC;QAEH,IAAI;YACA,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;YAE7F,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,2BAA2B,EAAE,GAAG,2BAA2B,OAAO,CAAC,CAAC;YAC9G,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAEzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,QAAQ,eAAe,CAAC,CAAC,CAAC;SACjE;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,mBAAmB,QAAQ,GAAG,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO;SACV;IACL,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC5B,MAAM,SAAS,GAAG,GAAG,2BAA2B,IAAI,eAAe,EAAE,CAAC;IACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC3B,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC9B,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,SAAS,cAAc,CAAC,QAAgB;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,IAAI,eAAe,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACvH,MAAM,UAAU,GAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,CAA2B,CAAC;QACpF,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAC9B,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,EAAE,CAAC,aAAa,CAAC,GAAG,2BAA2B,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,qCAAqC,2BAA2B,uDAAuD,CAAC,CAClJ,CAAC;IACN,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,+CAA+C,EAAE,qBAAqB,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE;QAC7H,GAAG;QACH,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,SAAS;KACnB,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../lib/sync.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -5,7 +5,9 @@ export declare const NANGO_INTEGRATIONS_LOCATION: string;
5
5
  export declare const hostport: string;
6
6
  export declare function setCloudHost(): void;
7
7
  export declare function setStagingHost(): void;
8
- export declare function checkEnvVars(): void;
8
+ export declare function checkEnvVars(optionalHostport?: string): void;
9
+ export declare function verifyNecessaryFiles(): void;
10
+ export declare function upgradeAction(): Promise<void>;
9
11
  export declare function getConnection(providerConfigKey: string, connectionId: string, headers?: Record<string, string | boolean>): Promise<any>;
10
12
  export declare function enrichHeaders(headers?: Record<string, string | number | boolean>): Record<string, string | number | boolean>;
11
13
  export declare function httpsAgent(): https.Agent;
package/dist/utils.js CHANGED
@@ -1,7 +1,17 @@
1
1
  import https from 'https';
2
2
  import axios from 'axios';
3
- import { cloudHost, stagingHost } from '@nangohq/shared';
3
+ import fs from 'fs';
4
+ import npa from 'npm-package-arg';
5
+ import path, { dirname } from 'path';
6
+ import { fileURLToPath } from 'url';
7
+ import semver from 'semver';
8
+ import { spawn } from 'child_process';
9
+ import promptly from 'promptly';
10
+ import chalk from 'chalk';
11
+ import { cloudHost, stagingHost, nangoConfigFile } from '@nangohq/shared';
4
12
  import * as dotenv from 'dotenv';
13
+ const __filename = fileURLToPath(import.meta.url);
14
+ const __dirname = dirname(__filename);
5
15
  dotenv.config();
6
16
  export const NANGO_INTEGRATIONS_LOCATION = process.env['NANGO_INTEGRATIONS_LOCATION'] || './nango-integrations';
7
17
  let parsedHostport = process.env['NANGO_HOSTPORT'] || 'http://localhost:3003';
@@ -15,7 +25,8 @@ export function setCloudHost() {
15
25
  export function setStagingHost() {
16
26
  process.env['NANGO_HOSTPORT'] = stagingHost;
17
27
  }
18
- export function checkEnvVars() {
28
+ export function checkEnvVars(optionalHostport) {
29
+ const hostport = optionalHostport || process.env['NANGO_HOSTPORT'] || 'http://localhost:3003';
19
30
  if (hostport === 'http://localhost:3003') {
20
31
  console.log(`Assuming you are running Nango on localhost:3003 because you did not set the NANGO_HOSTPORT env var.\n\n`);
21
32
  }
@@ -34,6 +45,47 @@ export function checkEnvVars() {
34
45
  console.log(`Assuming you are self-hosting Nango (because you set the NANGO_HOSTPORT env var to ${hostport}).`);
35
46
  }
36
47
  }
48
+ export function verifyNecessaryFiles() {
49
+ if (!fs.existsSync(path.resolve(process.cwd(), NANGO_INTEGRATIONS_LOCATION))) {
50
+ console.log(chalk.red(`No ${nangoConfigFile} file found. Please run 'nango init' first`));
51
+ process.exit(1);
52
+ }
53
+ }
54
+ export async function upgradeAction() {
55
+ try {
56
+ const resolved = npa('nango');
57
+ const { version } = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../package.json'), 'utf8'));
58
+ const response = await axios.get(`https://registry.npmjs.org/${resolved.name}`);
59
+ const latestVersion = response.data['dist-tags'].latest;
60
+ if (semver.gt(latestVersion, version)) {
61
+ console.log(chalk.red(`A new version of ${resolved.name} is available: ${latestVersion}`));
62
+ const cwd = process.cwd();
63
+ const upgrade = await promptly.confirm('Would you like to upgrade? (yes/no)');
64
+ if (upgrade) {
65
+ console.log(chalk.yellow(`Upgrading ${resolved.name} to version ${latestVersion}...`));
66
+ const child = spawn('npm', ['install', '--no-audit', `nango@${latestVersion}`], {
67
+ cwd,
68
+ detached: false,
69
+ stdio: 'inherit'
70
+ });
71
+ await new Promise((resolve, reject) => {
72
+ child.on('exit', (code) => {
73
+ if (code !== 0) {
74
+ reject(new Error(`Upgrade process exited with code ${code}`));
75
+ return;
76
+ }
77
+ resolve(true);
78
+ console.log(chalk.green(`Successfully upgraded ${resolved.name} to version ${latestVersion}`));
79
+ });
80
+ child.on('error', reject);
81
+ });
82
+ }
83
+ }
84
+ }
85
+ catch (error) {
86
+ console.error(`An error occurred: ${error.message}`);
87
+ }
88
+ }
37
89
  export async function getConnection(providerConfigKey, connectionId, headers) {
38
90
  checkEnvVars();
39
91
  const url = hostport + `/connection/${connectionId}`;
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"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"}
@@ -15,15 +15,16 @@ services:
15
15
  - nango
16
16
 
17
17
  nango-server:
18
- image: nangohq/nango-server:0.21.1
18
+ image: nangohq/nango-server:0.21.5
19
19
  container_name: nango-server
20
20
  environment:
21
21
  - TEMPORAL_ADDRESS=temporal:7233
22
22
  - NANGO_DB_MIGRATION_FOLDER=/usr/nango-server/src/packages/shared/lib/db/migrations
23
23
  - NANGO_CALLBACK_URL=${NANGO_CALLBACK_URL:-http://localhost:3003/oauth/callback}
24
+ - SERVER_PORT=${NANGO_PORT:-SERVER_PORT:-3003}
24
25
  restart: always
25
26
  ports:
26
- - '3003:3003'
27
+ - '${NANGO_PORT:-3003}:3003'
27
28
  depends_on:
28
29
  - nango-db
29
30
  volumes:
@@ -32,7 +33,7 @@ services:
32
33
  - nango
33
34
 
34
35
  nango-worker:
35
- image: nangohq/nango-worker:0.21.1
36
+ image: nangohq/nango-worker:0.21.5
36
37
  container_name: nango-worker
37
38
  restart: always
38
39
  ports:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nango",
3
- "version": "0.21.1",
3
+ "version": "0.21.5",
4
4
  "description": "Nango's CLI tool.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -20,8 +20,8 @@
20
20
  "dev": "npm run copyfiles && tsc -w"
21
21
  },
22
22
  "dependencies": {
23
- "@nangohq/shared": "0.21.1",
24
- "@types/promptly": "^3.0.2",
23
+ "@babel/traverse": "^7.22.5",
24
+ "@nangohq/shared": "0.21.5",
25
25
  "@vercel/ncc": "^0.36.1",
26
26
  "axios": "^1.2.0",
27
27
  "byots": "^5.0.0-dev.20221103.1.34",
@@ -34,8 +34,10 @@
34
34
  "figlet": "^1.6.0",
35
35
  "js-yaml": "^4.1.0",
36
36
  "memfs": "^3.5.1",
37
+ "npm-package-arg": "^10.1.0",
37
38
  "ora": "^6.3.1",
38
39
  "promptly": "^3.2.0",
40
+ "semver": "^7.5.2",
39
41
  "ts-node": "^10.9.1",
40
42
  "typescript": "^5.0.4"
41
43
  },
@@ -43,11 +45,15 @@
43
45
  "@babel/core": "^7.22.1",
44
46
  "@babel/preset-env": "^7.22.4",
45
47
  "@babel/preset-typescript": "^7.21.5",
48
+ "@types/babel__traverse": "^7.20.1",
49
+ "@types/babel-traverse": "^6.25.7",
46
50
  "@types/commander": "^2.12.2",
47
51
  "@types/ejs": "^3.1.2",
48
52
  "@types/figlet": "^1.5.6",
49
53
  "@types/glob": "^8.1.0",
50
54
  "@types/node": "^20.1.4",
55
+ "@types/npm-package-arg": "^6.1.1",
56
+ "@types/promptly": "^3.0.2",
51
57
  "babel-loader": "^9.1.2",
52
58
  "webpack": "^5.85.1",
53
59
  "webpack-cli": "^5.1.3",