nango 0.16.48-beta → 0.17.6
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/index.js +53 -197
- package/dist/index.js.map +1 -1
- package/package.json +3 -29
- package/dist/entry.js +0 -89
- package/dist/integration.ejs +0 -30
- package/dist/migration.ejs +0 -35
- package/dist/sync.d.ts +0 -19
- package/dist/sync.js +0 -252
- package/dist/sync.js.map +0 -1
- package/dist/utils.d.ts +0 -13
- package/dist/utils.js +0 -136
- package/dist/utils.js.map +0 -1
- package/docker/docker-compose.yaml +0 -68
- package/tsconfig.dev.json +0 -30
package/dist/index.js
CHANGED
|
@@ -4,36 +4,24 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Command } from 'commander';
|
|
6
6
|
import axios from 'axios';
|
|
7
|
-
import
|
|
8
|
-
import figlet from 'figlet';
|
|
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';
|
|
14
|
-
import * as dotenv from 'dotenv';
|
|
15
|
-
import { loadSimplifiedConfig, checkForIntegrationFile } from '@nangohq/shared';
|
|
16
|
-
import { init, run, tsc, tscWatch, configWatch, dockerRun } from './sync.js';
|
|
17
|
-
import { checkEnvVars, enrichHeaders, httpsAgent, getConnection, configFile, NANGO_INTEGRATIONS_LOCATION, buildInterfaces, setCloudHost, setStagingHost } from './utils.js';
|
|
7
|
+
import https from 'https';
|
|
18
8
|
const program = new Command();
|
|
19
9
|
let hostport = process.env['NANGO_HOSTPORT'] || 'http://localhost:3003';
|
|
20
|
-
|
|
21
|
-
|
|
10
|
+
let cloudHost = 'https://api.nango.dev';
|
|
11
|
+
let stagingHost = 'https://nango-cloud-staging.onrender.com';
|
|
22
12
|
if (hostport.slice(-1) === '/') {
|
|
23
13
|
hostport = hostport.slice(0, -1);
|
|
24
14
|
}
|
|
25
|
-
dotenv.config();
|
|
26
15
|
// Test from the package root (/packages/cli) with 'node dist/index.js'
|
|
27
16
|
program
|
|
28
17
|
.name('nango')
|
|
29
18
|
.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`);
|
|
30
|
-
program.addHelpText('before', chalk.green(figlet.textSync('Nango CLI')));
|
|
31
19
|
program
|
|
32
20
|
.command('config:list')
|
|
33
21
|
.description('List all provider configurations.')
|
|
34
22
|
.action(async function () {
|
|
35
23
|
checkEnvVars();
|
|
36
|
-
|
|
24
|
+
let url = hostport + '/config';
|
|
37
25
|
await axios
|
|
38
26
|
.get(url, { headers: enrichHeaders(), httpsAgent: httpsAgent() })
|
|
39
27
|
.then((res) => {
|
|
@@ -51,7 +39,7 @@ program
|
|
|
51
39
|
.argument('<provider_config_key>', 'The unique key of the provider configuration (chosen by you upon creating this provider configuration).')
|
|
52
40
|
.action(async function () {
|
|
53
41
|
checkEnvVars();
|
|
54
|
-
|
|
42
|
+
let url = hostport + `/config/${this.args[0]}`;
|
|
55
43
|
await axios
|
|
56
44
|
.get(url, { headers: enrichHeaders(), httpsAgent: httpsAgent() })
|
|
57
45
|
.then((res) => {
|
|
@@ -71,14 +59,14 @@ program
|
|
|
71
59
|
.argument('<oauth_scopes>', 'The OAuth Scopes obtained from the API provider (comma-separated).')
|
|
72
60
|
.action(async function () {
|
|
73
61
|
checkEnvVars();
|
|
74
|
-
|
|
62
|
+
let body = {
|
|
75
63
|
provider_config_key: this.args[0],
|
|
76
64
|
provider: this.args[1],
|
|
77
65
|
oauth_client_id: this.args[2],
|
|
78
66
|
oauth_client_secret: this.args[3],
|
|
79
67
|
oauth_scopes: this.args[4]
|
|
80
68
|
};
|
|
81
|
-
|
|
69
|
+
let url = hostport + `/config`;
|
|
82
70
|
await axios
|
|
83
71
|
.post(url, body, { headers: enrichHeaders(), httpsAgent: httpsAgent() })
|
|
84
72
|
.then((_) => {
|
|
@@ -98,14 +86,14 @@ program
|
|
|
98
86
|
.argument('<oauth_scopes>', 'The OAuth Scopes obtained from the API provider (comma-separated).')
|
|
99
87
|
.action(async function () {
|
|
100
88
|
checkEnvVars();
|
|
101
|
-
|
|
89
|
+
let body = {
|
|
102
90
|
provider_config_key: this.args[0],
|
|
103
91
|
provider: this.args[1],
|
|
104
92
|
oauth_client_id: this.args[2],
|
|
105
93
|
oauth_client_secret: this.args[3],
|
|
106
94
|
oauth_scopes: this.args[4]
|
|
107
95
|
};
|
|
108
|
-
|
|
96
|
+
let url = hostport + `/config`;
|
|
109
97
|
await axios
|
|
110
98
|
.put(url, body, { headers: enrichHeaders(), httpsAgent: httpsAgent() })
|
|
111
99
|
.then((_) => {
|
|
@@ -121,7 +109,7 @@ program
|
|
|
121
109
|
.argument('<provider_config_key>', 'The unique key of the provider configuration (chosen by you upon creating this provider configuration).')
|
|
122
110
|
.action(async function () {
|
|
123
111
|
checkEnvVars();
|
|
124
|
-
|
|
112
|
+
let url = hostport + `/config/${this.args[0]}`;
|
|
125
113
|
await axios
|
|
126
114
|
.delete(url, { headers: enrichHeaders(), httpsAgent: httpsAgent() })
|
|
127
115
|
.then((_) => {
|
|
@@ -138,15 +126,15 @@ program
|
|
|
138
126
|
.argument('<connection_id>', 'The ID of the Connection.')
|
|
139
127
|
.action(async function () {
|
|
140
128
|
checkEnvVars();
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
129
|
+
let url = hostport + `/connection/${this.args[1]}`;
|
|
130
|
+
await axios
|
|
131
|
+
.get(url, { params: { provider_config_key: this.args[0] }, headers: enrichHeaders(), httpsAgent: httpsAgent() })
|
|
132
|
+
.then((res) => {
|
|
133
|
+
console.log(res.data);
|
|
134
|
+
})
|
|
135
|
+
.catch((err) => {
|
|
136
|
+
console.log(`❌ ${err.response?.data.error || JSON.stringify(err)}`);
|
|
137
|
+
});
|
|
150
138
|
});
|
|
151
139
|
program
|
|
152
140
|
.command('token:get')
|
|
@@ -155,7 +143,7 @@ program
|
|
|
155
143
|
.argument('<connection_id>', 'The ID of the Connection.')
|
|
156
144
|
.action(async function () {
|
|
157
145
|
checkEnvVars();
|
|
158
|
-
|
|
146
|
+
let url = hostport + `/connection/${this.args[1]}`;
|
|
159
147
|
await axios
|
|
160
148
|
.get(url, { params: { provider_config_key: this.args[0] }, headers: enrichHeaders(), httpsAgent: httpsAgent() })
|
|
161
149
|
.then((response) => {
|
|
@@ -179,7 +167,7 @@ program
|
|
|
179
167
|
.description('List connections without credentials.')
|
|
180
168
|
.action(async function () {
|
|
181
169
|
checkEnvVars();
|
|
182
|
-
|
|
170
|
+
let url = hostport + `/connection`;
|
|
183
171
|
await axios
|
|
184
172
|
.get(url, { headers: enrichHeaders(), httpsAgent: httpsAgent() })
|
|
185
173
|
.then((res) => {
|
|
@@ -196,7 +184,7 @@ program
|
|
|
196
184
|
.argument('<connection_id>', 'The ID of the Connection.')
|
|
197
185
|
.action(async function () {
|
|
198
186
|
checkEnvVars();
|
|
199
|
-
|
|
187
|
+
let url = hostport + `/connection/${this.args[1]}`;
|
|
200
188
|
await axios
|
|
201
189
|
.delete(url, { params: { provider_config_key: this.args[0] }, headers: enrichHeaders(), httpsAgent: httpsAgent() })
|
|
202
190
|
.then((_) => {
|
|
@@ -206,173 +194,41 @@ program
|
|
|
206
194
|
console.log(`❌ ${err.response?.data.error || JSON.stringify(err)}`);
|
|
207
195
|
});
|
|
208
196
|
});
|
|
209
|
-
program
|
|
210
|
-
|
|
211
|
-
.
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
init();
|
|
215
|
-
});
|
|
216
|
-
program
|
|
217
|
-
.command('generate')
|
|
218
|
-
.alias('g')
|
|
219
|
-
.description('Generate a new Nango integration')
|
|
220
|
-
.action(() => {
|
|
221
|
-
const templateContents = fs.readFileSync(path.resolve(__dirname, './integration.ejs'), 'utf8');
|
|
222
|
-
const cwd = process.cwd();
|
|
223
|
-
const configContents = fs.readFileSync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/${configFile}`), 'utf8');
|
|
224
|
-
const configData = yaml.load(configContents);
|
|
225
|
-
const { integrations } = configData;
|
|
226
|
-
const { models } = configData;
|
|
227
|
-
const interfaceDefinitions = buildInterfaces(models);
|
|
228
|
-
fs.writeFileSync(`${NANGO_INTEGRATIONS_LOCATION}/models.ts`, interfaceDefinitions.join('\n'));
|
|
229
|
-
for (let i = 0; i < Object.keys(integrations).length; i++) {
|
|
230
|
-
const providerConfigKey = Object.keys(integrations)[i];
|
|
231
|
-
const syncObject = integrations[providerConfigKey];
|
|
232
|
-
const syncNames = Object.keys(syncObject);
|
|
233
|
-
for (let k = 0; k < syncNames.length; k++) {
|
|
234
|
-
const syncName = syncNames[k];
|
|
235
|
-
const syncData = syncObject[syncName];
|
|
236
|
-
const { returns: models } = syncData;
|
|
237
|
-
const syncNameCamel = syncName
|
|
238
|
-
.split('-')
|
|
239
|
-
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
240
|
-
.join('');
|
|
241
|
-
const rendered = ejs.render(templateContents, {
|
|
242
|
-
syncName: syncNameCamel,
|
|
243
|
-
interfaceNames: models.map((model) => {
|
|
244
|
-
const singularModel = model?.charAt(model.length - 1) === 's' ? model.slice(0, -1) : model;
|
|
245
|
-
return `${singularModel.charAt(0).toUpperCase()}${singularModel.slice(1)}`;
|
|
246
|
-
}),
|
|
247
|
-
mappings: models.map((model) => {
|
|
248
|
-
const singularModel = model.charAt(model.length - 1) === 's' ? model.slice(0, -1) : model;
|
|
249
|
-
return {
|
|
250
|
-
name: model,
|
|
251
|
-
type: `${singularModel.charAt(0).toUpperCase()}${singularModel.slice(1)}`
|
|
252
|
-
};
|
|
253
|
-
})
|
|
254
|
-
});
|
|
255
|
-
if (!fs.existsSync(`${NANGO_INTEGRATIONS_LOCATION}/${syncName}.ts`)) {
|
|
256
|
-
fs.writeFileSync(`${NANGO_INTEGRATIONS_LOCATION}/${syncName}.ts`, rendered);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
console.log(chalk.green(`Integration files have been created`));
|
|
261
|
-
});
|
|
262
|
-
program
|
|
263
|
-
.command('tsc')
|
|
264
|
-
.description('Compile the integration files to JavaScript')
|
|
265
|
-
.action(() => {
|
|
266
|
-
tsc();
|
|
267
|
-
});
|
|
268
|
-
program
|
|
269
|
-
.command('tsc:watch')
|
|
270
|
-
.description('Watch tsc files while developing. Set --no-compile-interfaces to disable watching the config file')
|
|
271
|
-
.option('--no-compile-interfaces', `Watch the ${configFile} and recompile the interfaces on change`, true)
|
|
272
|
-
.action(async function () {
|
|
273
|
-
const { compileInterfaces } = this.opts();
|
|
274
|
-
if (compileInterfaces) {
|
|
275
|
-
configWatch();
|
|
197
|
+
program.parseAsync(process.argv);
|
|
198
|
+
function enrichHeaders(headers = {}) {
|
|
199
|
+
if ((process.env['NANGO_HOSTPORT'] === cloudHost || process.env['NANGO_HOSTPORT'] === stagingHost) && process.env['NANGO_SECRET_KEY']) {
|
|
200
|
+
// For Nango Cloud (unified)
|
|
201
|
+
headers['Authorization'] = 'Bearer ' + process.env['NANGO_SECRET_KEY'];
|
|
276
202
|
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
.command('docker:run')
|
|
281
|
-
.description('Run the docker container locally')
|
|
282
|
-
.action(() => {
|
|
283
|
-
dockerRun();
|
|
284
|
-
});
|
|
285
|
-
program
|
|
286
|
-
.command('dev')
|
|
287
|
-
.alias('develop')
|
|
288
|
-
.alias('watch')
|
|
289
|
-
.description('Work locally to add integration code')
|
|
290
|
-
.action(() => {
|
|
291
|
-
configWatch();
|
|
292
|
-
tscWatch();
|
|
293
|
-
dockerRun();
|
|
294
|
-
});
|
|
295
|
-
program
|
|
296
|
-
.command('deploy')
|
|
297
|
-
.alias('d')
|
|
298
|
-
.description('Deploy a Nango integration')
|
|
299
|
-
.option('--staging', 'Deploy to the staging instance')
|
|
300
|
-
.option('-v, --version [version]', 'Optional: Set a version of this deployment to tag this integraion with. Can be used for rollbacks.')
|
|
301
|
-
.option('-s, --sync [syncName]', 'Optional deploy only this sync name.')
|
|
302
|
-
.action(async function () {
|
|
303
|
-
const { staging, version } = this.opts();
|
|
304
|
-
if (!process.env['NANGO_HOSTPORT']) {
|
|
305
|
-
console.log(chalk.red(`NANGO_HOSTPORT environment variable is not set`));
|
|
306
|
-
return;
|
|
203
|
+
else if (process.env['NANGO_SECRET_KEY']) {
|
|
204
|
+
// For Nango OSS
|
|
205
|
+
headers['Authorization'] = 'Basic ' + Buffer.from(process.env['NANGO_SECRET_KEY'] + ':').toString('base64');
|
|
307
206
|
}
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
207
|
+
headers['Accept-Encoding'] = 'application/json';
|
|
208
|
+
return headers;
|
|
209
|
+
}
|
|
210
|
+
function httpsAgent() {
|
|
211
|
+
return new https.Agent({
|
|
212
|
+
rejectUnauthorized: false
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
function checkEnvVars() {
|
|
216
|
+
if (hostport === 'http://localhost:3003') {
|
|
217
|
+
console.log(`Assuming you are running Nango on localhost:3003 because you did not set the NANGO_HOSTPORT env var.\n\n`);
|
|
311
218
|
}
|
|
312
|
-
if (
|
|
313
|
-
|
|
219
|
+
else if (hostport === cloudHost || hostport === stagingHost) {
|
|
220
|
+
if (!process.env['NANGO_SECRET_KEY']) {
|
|
221
|
+
console.log(`Assuming you are using Nango Cloud but your are lacking the NANGO_SECRET_KEY env var.`);
|
|
222
|
+
}
|
|
223
|
+
else if (hostport === cloudHost) {
|
|
224
|
+
console.log(`Assuming you are using Nango Cloud (because you set the NANGO_HOSTPORT env var to https://api.nango.dev).`);
|
|
225
|
+
}
|
|
226
|
+
else if (hostport === stagingHost) {
|
|
227
|
+
console.log(`Assuming you are using Nango Cloud (because you set the NANGO_HOSTPORT env var to https://api.staging.nango.dev).`);
|
|
228
|
+
}
|
|
314
229
|
}
|
|
315
230
|
else {
|
|
316
|
-
|
|
317
|
-
}
|
|
318
|
-
checkEnvVars();
|
|
319
|
-
tsc();
|
|
320
|
-
const cwd = process.cwd();
|
|
321
|
-
const config = await loadSimplifiedConfig(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/${configFile}`));
|
|
322
|
-
if (!config) {
|
|
323
|
-
throw new Error(`Error loading the ${configFile} file`);
|
|
324
|
-
}
|
|
325
|
-
const postData = [];
|
|
326
|
-
for (const integration of config) {
|
|
327
|
-
const { providerConfigKey, syncs } = integration;
|
|
328
|
-
for (const sync of syncs) {
|
|
329
|
-
const { name: syncName, runs, returns: models } = sync;
|
|
330
|
-
const { path: integrationFilePath, result: integrationFileResult } = checkForIntegrationFile(syncName, path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}`));
|
|
331
|
-
if (!integrationFileResult) {
|
|
332
|
-
console.log(chalk.red(`No integration file found for ${syncName} at ${integrationFilePath}. Skipping...`));
|
|
333
|
-
continue;
|
|
334
|
-
}
|
|
335
|
-
const body = {
|
|
336
|
-
syncName,
|
|
337
|
-
providerConfigKey,
|
|
338
|
-
models,
|
|
339
|
-
version,
|
|
340
|
-
runs,
|
|
341
|
-
fileBody: fs.readFileSync(integrationFilePath, 'utf8')
|
|
342
|
-
};
|
|
343
|
-
postData.push(body);
|
|
344
|
-
}
|
|
231
|
+
console.log(`Assuming you are self-hosting Nango (becauses you set the NANGO_HOSTPORT env var to ${hostport}).`);
|
|
345
232
|
}
|
|
346
|
-
|
|
347
|
-
await axios
|
|
348
|
-
.post(url, postData, { headers: enrichHeaders(), httpsAgent: httpsAgent() })
|
|
349
|
-
.then((_) => {
|
|
350
|
-
console.log(chalk.green(`Successfully deployed the syncs!`));
|
|
351
|
-
})
|
|
352
|
-
.catch((_err) => {
|
|
353
|
-
console.log(chalk.red(`Error deploying the syncs`));
|
|
354
|
-
});
|
|
355
|
-
});
|
|
356
|
-
program
|
|
357
|
-
.command('sync:config.check')
|
|
358
|
-
.alias('scc')
|
|
359
|
-
.description('Verify the parsed sync config and output the object for verification')
|
|
360
|
-
.action(async () => {
|
|
361
|
-
const cwd = process.cwd();
|
|
362
|
-
const config = await loadSimplifiedConfig(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/${configFile}`));
|
|
363
|
-
console.log(chalk.green(JSON.stringify(config, null, 2)));
|
|
364
|
-
});
|
|
365
|
-
program
|
|
366
|
-
.command('sync:run')
|
|
367
|
-
.alias('sr')
|
|
368
|
-
.description('Run the sync process to help with debugging')
|
|
369
|
-
.option('-s, --sync <syncName>', 'The name of the sync (e.g. account-sync).')
|
|
370
|
-
.option('-p, --provider <provider_config_key>', 'The unique key of the provider configuration (chosen by you upon creating this provider configuration).')
|
|
371
|
-
.option('-c, --connection <connection_id>', 'The ID of the Connection.')
|
|
372
|
-
.option('-l, --lastSyncDate [lastSyncDate]', 'Optional: last sync date to retrieve records greater than this date')
|
|
373
|
-
.action(async function () {
|
|
374
|
-
checkEnvVars();
|
|
375
|
-
run(this.args, this.opts());
|
|
376
|
-
});
|
|
377
|
-
program.parse();
|
|
233
|
+
}
|
|
378
234
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nango",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.6",
|
|
4
4
|
"description": "Nango's CLI tool.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,44 +13,18 @@
|
|
|
13
13
|
"directory": "packages/cli"
|
|
14
14
|
},
|
|
15
15
|
"license": "SEE LICENSE IN LICENSE FILE IN GIT REPOSITORY",
|
|
16
|
-
"scripts": {
|
|
17
|
-
"build": "tsc",
|
|
18
|
-
"copyfiles": "copyfiles -u 1 lib/*.ejs dist",
|
|
19
|
-
"postbuild": "npm run copyfiles",
|
|
20
|
-
"dev": "npm run copyfiles && tsc -w"
|
|
21
|
-
},
|
|
22
16
|
"dependencies": {
|
|
23
|
-
"@nangohq/shared": "0.17.40-beta",
|
|
24
17
|
"axios": "^1.2.0",
|
|
25
|
-
"
|
|
26
|
-
"chokidar": "^3.5.3",
|
|
27
|
-
"commander": "^10.0.1",
|
|
28
|
-
"copyfiles": "^2.4.1",
|
|
29
|
-
"dotenv": "^16.0.3",
|
|
30
|
-
"ejs": "^3.1.9",
|
|
31
|
-
"esbuild": "^0.17.19",
|
|
32
|
-
"figlet": "^1.6.0",
|
|
33
|
-
"js-yaml": "^4.1.0",
|
|
34
|
-
"memfs": "^3.5.1",
|
|
35
|
-
"ora": "^6.3.1",
|
|
36
|
-
"ts-node": "^10.9.1",
|
|
37
|
-
"typescript": "^5.0.4",
|
|
38
|
-
"webpack": "^5.82.1"
|
|
18
|
+
"commander": "^9.4.0"
|
|
39
19
|
},
|
|
40
20
|
"devDependencies": {
|
|
41
|
-
"@types/commander": "^2.12.2"
|
|
42
|
-
"@types/ejs": "^3.1.2",
|
|
43
|
-
"@types/figlet": "^1.5.6",
|
|
44
|
-
"@types/glob": "^8.1.0",
|
|
45
|
-
"@types/node": "^20.1.4"
|
|
21
|
+
"@types/commander": "^2.12.2"
|
|
46
22
|
},
|
|
47
23
|
"engines": {
|
|
48
24
|
"node": ">=16.7"
|
|
49
25
|
},
|
|
50
26
|
"files": [
|
|
51
27
|
"dist/**/*",
|
|
52
|
-
"docker/**/*",
|
|
53
|
-
"tsconfig.dev.json",
|
|
54
28
|
"!**/*.json",
|
|
55
29
|
"README.md"
|
|
56
30
|
]
|
package/dist/entry.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
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/integration.ejs
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { NangoSync, NangoHelper } from '@nangohq/node';
|
|
2
|
-
import { <%= interfaceNames.join(', ') %> } from './models';
|
|
3
|
-
|
|
4
|
-
class <%= syncName %> extends NangoSync {
|
|
5
|
-
override async fetchData(nango: NangoHelper): Promise<{<% for (let i = 0; i < mappings.length; i++) { %><%= mappings[i].name %>: <%= mappings[i].type %>[]<% if (i !== mappings.length - 1) { %>, <% } %><% } %>}> {
|
|
6
|
-
/**
|
|
7
|
-
* Rest of the integration code goes below.
|
|
8
|
-
*
|
|
9
|
-
* Example:
|
|
10
|
-
* const response = await nango.get({
|
|
11
|
-
* endpoint: 'repos/NangoHQ/nango/issues'
|
|
12
|
-
* });
|
|
13
|
-
*
|
|
14
|
-
* const issues = response.data.map((ghIssue) => {
|
|
15
|
-
* const issue: Issue = {
|
|
16
|
-
* id: ghIssue.id,
|
|
17
|
-
* title: ghIssue.title,
|
|
18
|
-
* body: ghIssue.body,
|
|
19
|
-
* status: ghIssue.status
|
|
20
|
-
* };
|
|
21
|
-
*
|
|
22
|
-
* return issue;
|
|
23
|
-
* });
|
|
24
|
-
*
|
|
25
|
-
* return { issues };
|
|
26
|
-
*/
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export default <%= syncName %>;
|
package/dist/migration.ejs
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
const tableName = '<%= tableName %>'';
|
|
2
|
-
|
|
3
|
-
exports.up = function (knex, _) {
|
|
4
|
-
return knex.schema.withSchema('nango').createTable(tableName, function (table) {
|
|
5
|
-
return knex.schema.withSchema('nango').createTable(tableName, function (table) {
|
|
6
|
-
table.increments('id').primary();
|
|
7
|
-
<% data.forEach(function(model) { %>
|
|
8
|
-
<% Object.keys(model).forEach(function(prop) { %>
|
|
9
|
-
<% if (prop === 'id') { return; } %>
|
|
10
|
-
<% const type = model[prop]; %>
|
|
11
|
-
<% switch (type) { %>
|
|
12
|
-
<% case 'integer': %>
|
|
13
|
-
table.integer('<%= prop %>');
|
|
14
|
-
<% break; %>
|
|
15
|
-
<% case 'char': %>
|
|
16
|
-
table.string('<%= prop %>', 255);
|
|
17
|
-
<% break; %>
|
|
18
|
-
<% case 'text': %>
|
|
19
|
-
table.text('<%= prop %>');
|
|
20
|
-
<% break; %>
|
|
21
|
-
<% case 'timestamp': %>
|
|
22
|
-
table.timestamp('<%= prop %>');
|
|
23
|
-
<% break; %>
|
|
24
|
-
<% default: %>
|
|
25
|
-
throw new Error(`Unknown type <%= type %> for column <%= prop %>`);
|
|
26
|
-
<% } %>
|
|
27
|
-
<% }); %>
|
|
28
|
-
<% }); %>
|
|
29
|
-
});
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
exports.down = function (knex, _) {
|
|
33
|
-
return knex.schema.withSchema('nango').dropTable(tableName);
|
|
34
|
-
};
|
|
35
|
-
|
package/dist/sync.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
interface RunArgs {
|
|
2
|
-
sync: string;
|
|
3
|
-
provider: string;
|
|
4
|
-
connection: string;
|
|
5
|
-
lastSyncDate?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const init: () => void;
|
|
8
|
-
export declare const verifyAndChangeDistFilesToJs: () => void;
|
|
9
|
-
export declare const run: (args: string[], options: RunArgs) => Promise<void>;
|
|
10
|
-
export declare const tsc: () => void;
|
|
11
|
-
export declare const tscWatch: () => void;
|
|
12
|
-
export declare const configWatch: () => void;
|
|
13
|
-
/**
|
|
14
|
-
* Docker Run
|
|
15
|
-
* @desc spawn a child process to run the docker compose located in the cli
|
|
16
|
-
* Look into https://www.npmjs.com/package/docker-compose to avoid dependency maybe?
|
|
17
|
-
*/
|
|
18
|
-
export declare const dockerRun: () => void;
|
|
19
|
-
export {};
|
package/dist/sync.js
DELETED
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import yaml from 'js-yaml';
|
|
4
|
-
import chalk from 'chalk';
|
|
5
|
-
import chokidar from 'chokidar';
|
|
6
|
-
import * as tsNode from 'ts-node';
|
|
7
|
-
import glob from 'glob';
|
|
8
|
-
import * as dotenv from 'dotenv';
|
|
9
|
-
import { spawn } from 'child_process';
|
|
10
|
-
import { Nango, loadNangoConfig, getIntegrationClass, getServerBaseUrl, getLastSyncDate, syncDataService } from '@nangohq/shared';
|
|
11
|
-
import { getConnection, configFile, NANGO_INTEGRATIONS_LOCATION, buildInterfaces } from './utils.js';
|
|
12
|
-
dotenv.config();
|
|
13
|
-
export const init = () => {
|
|
14
|
-
const data = {
|
|
15
|
-
integrations: {
|
|
16
|
-
'github-prod': {
|
|
17
|
-
'github-users': {
|
|
18
|
-
runs: 'every hour',
|
|
19
|
-
returns: ['users']
|
|
20
|
-
},
|
|
21
|
-
'github-issues': {
|
|
22
|
-
runs: 'every half hour',
|
|
23
|
-
returns: ['issues']
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
'asana-dev': {
|
|
27
|
-
'asana-projects': {
|
|
28
|
-
runs: 'every hour',
|
|
29
|
-
returns: ['projects']
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
models: {
|
|
34
|
-
issues: {
|
|
35
|
-
id: 'integer',
|
|
36
|
-
title: 'char',
|
|
37
|
-
description: 'char',
|
|
38
|
-
status: 'char',
|
|
39
|
-
author: {
|
|
40
|
-
avatar_url: 'char'
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
projects: {
|
|
44
|
-
id: 'integer',
|
|
45
|
-
type: 'char'
|
|
46
|
-
},
|
|
47
|
-
users: {
|
|
48
|
-
id: 'integer',
|
|
49
|
-
name: 'char'
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
const yamlData = yaml.dump(data);
|
|
54
|
-
if (!fs.existsSync(NANGO_INTEGRATIONS_LOCATION)) {
|
|
55
|
-
fs.mkdirSync(NANGO_INTEGRATIONS_LOCATION);
|
|
56
|
-
}
|
|
57
|
-
fs.writeFileSync(`${NANGO_INTEGRATIONS_LOCATION}/${configFile}`, yamlData);
|
|
58
|
-
console.log(chalk.green(`${configFile} file has been created`));
|
|
59
|
-
};
|
|
60
|
-
export const verifyAndChangeDistFilesToJs = () => {
|
|
61
|
-
const cwd = process.cwd();
|
|
62
|
-
const distFiles = fs.readdirSync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/dist`));
|
|
63
|
-
distFiles.forEach((file) => {
|
|
64
|
-
if (file.endsWith('.mjs')) {
|
|
65
|
-
fs.renameSync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/dist/${file}`), path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/dist/${file.replace('.mjs', '.js')}`));
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
};
|
|
69
|
-
export const run = async (args, options) => {
|
|
70
|
-
verifyAndChangeDistFilesToJs();
|
|
71
|
-
let syncName, providerConfigKey, connectionId, suppliedLastSyncDate;
|
|
72
|
-
if (args.length > 0) {
|
|
73
|
-
[syncName, providerConfigKey, connectionId, suppliedLastSyncDate] = args;
|
|
74
|
-
}
|
|
75
|
-
if (Object.keys(options).length > 0) {
|
|
76
|
-
({ sync: syncName, provider: providerConfigKey, connection: connectionId, lastSyncDate: suppliedLastSyncDate } = options);
|
|
77
|
-
}
|
|
78
|
-
if (!syncName) {
|
|
79
|
-
console.log(chalk.red('Sync name is required'));
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
if (!providerConfigKey) {
|
|
83
|
-
console.log(chalk.red('Provider config key is required'));
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
if (!connectionId) {
|
|
87
|
-
console.log(chalk.red('Connection id is required'));
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
const cwd = process.cwd();
|
|
91
|
-
const config = await loadNangoConfig(null, syncName, path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/${configFile}`));
|
|
92
|
-
if (!config) {
|
|
93
|
-
throw new Error(`Error loading the ${configFile} file`);
|
|
94
|
-
}
|
|
95
|
-
let lastSyncDate;
|
|
96
|
-
if (suppliedLastSyncDate) {
|
|
97
|
-
lastSyncDate = new Date(suppliedLastSyncDate);
|
|
98
|
-
}
|
|
99
|
-
if (config?.integrations?.[providerConfigKey]?.[syncName] &&
|
|
100
|
-
fs.existsSync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/dist/${syncName}.js`))) {
|
|
101
|
-
const syncData = config?.integrations[providerConfigKey]?.[syncName];
|
|
102
|
-
// to load a module without having to edit the type in the package.json
|
|
103
|
-
// edit the file to be a mjs then rename it back
|
|
104
|
-
fs.renameSync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/dist/${syncName}.js`), path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/dist/${syncName}.mjs`));
|
|
105
|
-
const integrationClass = await getIntegrationClass(syncName, path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/dist/${syncName}.mjs`) + `?v=${Math.random().toString(36).substring(3)}`);
|
|
106
|
-
const nango = new Nango({
|
|
107
|
-
host: getServerBaseUrl(),
|
|
108
|
-
connectionId: String(connectionId),
|
|
109
|
-
providerConfigKey: String(providerConfigKey),
|
|
110
|
-
isSync: true
|
|
111
|
-
});
|
|
112
|
-
try {
|
|
113
|
-
const nangoConnection = (await getConnection(providerConfigKey, connectionId));
|
|
114
|
-
if (!lastSyncDate) {
|
|
115
|
-
lastSyncDate = (await getLastSyncDate(nangoConnection?.id, syncName));
|
|
116
|
-
}
|
|
117
|
-
if (lastSyncDate instanceof Date && !isNaN(lastSyncDate.getTime())) {
|
|
118
|
-
nango.setLastSyncDate(lastSyncDate);
|
|
119
|
-
}
|
|
120
|
-
const userDefinedResults = await integrationClass.fetchData(nango);
|
|
121
|
-
console.log(JSON.stringify(userDefinedResults, null, 2));
|
|
122
|
-
fs.renameSync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/dist/${syncName}.mjs`), path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/dist/${syncName}.js`));
|
|
123
|
-
const { returns: models } = syncData;
|
|
124
|
-
for (const model of models) {
|
|
125
|
-
if (userDefinedResults[model]) {
|
|
126
|
-
const { isUnique, nonUniqueKey } = syncDataService.verifyUniqueKeysAreUnique(userDefinedResults[model]);
|
|
127
|
-
if (!isUnique) {
|
|
128
|
-
console.log(chalk.red(`The ${model} model does not have unique id keys! The repeated key is ${nonUniqueKey}. Please resolve this before running the sync on the server.`));
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
process.exit(0);
|
|
133
|
-
}
|
|
134
|
-
catch (error) {
|
|
135
|
-
console.error(error);
|
|
136
|
-
fs.renameSync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/dist/${syncName}.mjs`), path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/dist/${syncName}.js`));
|
|
137
|
-
process.exit(1);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
console.log(chalk.red('Sync not found'));
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
export const tsc = () => {
|
|
145
|
-
const cwd = process.cwd();
|
|
146
|
-
const tsconfig = fs.readFileSync('./node_modules/nango/tsconfig.dev.json', 'utf8');
|
|
147
|
-
const distDir = path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/dist`);
|
|
148
|
-
if (!fs.existsSync(distDir)) {
|
|
149
|
-
fs.mkdirSync(distDir);
|
|
150
|
-
}
|
|
151
|
-
const rawNangoIntegrationLocation = NANGO_INTEGRATIONS_LOCATION.replace('./', '');
|
|
152
|
-
const compiler = tsNode.create({
|
|
153
|
-
compilerOptions: JSON.parse(tsconfig).compilerOptions
|
|
154
|
-
});
|
|
155
|
-
const integrationFiles = glob.sync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/*.ts`));
|
|
156
|
-
for (const filePath of integrationFiles) {
|
|
157
|
-
try {
|
|
158
|
-
const result = compiler.compile(fs.readFileSync(filePath, 'utf8'), filePath);
|
|
159
|
-
const jsFilePath = path.join(path.dirname(filePath), path.basename(filePath, '.ts') + '.js');
|
|
160
|
-
const distJSFilePath = jsFilePath.replace(rawNangoIntegrationLocation, `${rawNangoIntegrationLocation}/dist`);
|
|
161
|
-
fs.writeFileSync(distJSFilePath, result);
|
|
162
|
-
console.log(chalk.green(`Compiled ${filePath} successfully`));
|
|
163
|
-
}
|
|
164
|
-
catch (error) {
|
|
165
|
-
console.error(`Error compiling ${filePath}:`);
|
|
166
|
-
console.error(error);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
export const tscWatch = () => {
|
|
171
|
-
const cwd = process.cwd();
|
|
172
|
-
const tsconfig = fs.readFileSync('./node_modules/nango/tsconfig.dev.json', 'utf8');
|
|
173
|
-
const watchPath = [`${NANGO_INTEGRATIONS_LOCATION}/*.ts`, `${NANGO_INTEGRATIONS_LOCATION}/${configFile}`];
|
|
174
|
-
const rawNangoIntegrationLocation = NANGO_INTEGRATIONS_LOCATION.replace('./', '');
|
|
175
|
-
const watcher = chokidar.watch(watchPath, {
|
|
176
|
-
ignoreInitial: false,
|
|
177
|
-
ignored: (filePath) => {
|
|
178
|
-
return filePath === `${rawNangoIntegrationLocation}/models.ts`;
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
const distDir = path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/dist`);
|
|
182
|
-
if (!fs.existsSync(distDir)) {
|
|
183
|
-
fs.mkdirSync(distDir);
|
|
184
|
-
}
|
|
185
|
-
watcher.on('add', (filePath) => {
|
|
186
|
-
if (filePath === `${rawNangoIntegrationLocation}/${configFile}`) {
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
compileFile(filePath);
|
|
190
|
-
});
|
|
191
|
-
watcher.on('change', (filePath) => {
|
|
192
|
-
if (filePath === `${rawNangoIntegrationLocation}/${configFile}`) {
|
|
193
|
-
// config file changed, re-compile each ts file
|
|
194
|
-
const integrationFiles = glob.sync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/*.ts`));
|
|
195
|
-
for (const file of integrationFiles) {
|
|
196
|
-
compileFile(file);
|
|
197
|
-
}
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
compileFile(filePath);
|
|
201
|
-
});
|
|
202
|
-
function compileFile(filePath) {
|
|
203
|
-
const compiler = tsNode.create({
|
|
204
|
-
compilerOptions: JSON.parse(tsconfig).compilerOptions
|
|
205
|
-
});
|
|
206
|
-
try {
|
|
207
|
-
const result = compiler.compile(fs.readFileSync(filePath, 'utf8'), filePath);
|
|
208
|
-
const jsFilePath = path.join(path.dirname(filePath), path.basename(filePath, '.ts') + '.js');
|
|
209
|
-
const distJSFilePath = jsFilePath.replace(rawNangoIntegrationLocation, `${rawNangoIntegrationLocation}/dist`);
|
|
210
|
-
fs.writeFileSync(distJSFilePath, result);
|
|
211
|
-
console.log(chalk.green(`Compiled ${filePath} successfully`));
|
|
212
|
-
}
|
|
213
|
-
catch (error) {
|
|
214
|
-
console.error(`Error compiling ${filePath}:`);
|
|
215
|
-
console.error(error);
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
};
|
|
220
|
-
export const configWatch = () => {
|
|
221
|
-
const watchPath = `${NANGO_INTEGRATIONS_LOCATION}/${configFile}`;
|
|
222
|
-
const watcher = chokidar.watch(watchPath, { ignoreInitial: true });
|
|
223
|
-
watcher.on('add', (filePath) => {
|
|
224
|
-
buildInterface(filePath);
|
|
225
|
-
});
|
|
226
|
-
watcher.on('change', (filePath) => {
|
|
227
|
-
buildInterface(filePath);
|
|
228
|
-
});
|
|
229
|
-
function buildInterface(filePath) {
|
|
230
|
-
const cwd = process.cwd();
|
|
231
|
-
const configContents = fs.readFileSync(path.resolve(cwd, `${NANGO_INTEGRATIONS_LOCATION}/${configFile}`), 'utf8');
|
|
232
|
-
const configData = yaml.load(configContents);
|
|
233
|
-
const { models } = configData;
|
|
234
|
-
const interfaces = buildInterfaces(models);
|
|
235
|
-
fs.writeFileSync(`${NANGO_INTEGRATIONS_LOCATION}/models.ts`, interfaces.join('\n'));
|
|
236
|
-
console.log(chalk.green(`${filePath} was updated. The interface file (${NANGO_INTEGRATIONS_LOCATION}/models.ts) was updated to reflect the updated config`));
|
|
237
|
-
}
|
|
238
|
-
};
|
|
239
|
-
/**
|
|
240
|
-
* Docker Run
|
|
241
|
-
* @desc spawn a child process to run the docker compose located in the cli
|
|
242
|
-
* Look into https://www.npmjs.com/package/docker-compose to avoid dependency maybe?
|
|
243
|
-
*/
|
|
244
|
-
export const dockerRun = () => {
|
|
245
|
-
const cwd = process.cwd();
|
|
246
|
-
spawn('docker', ['compose', '-f', 'node_modules/nango/docker/docker-compose.yaml', '--project-directory', '.', 'up', '--build'], {
|
|
247
|
-
cwd,
|
|
248
|
-
detached: false,
|
|
249
|
-
stdio: 'inherit'
|
|
250
|
-
});
|
|
251
|
-
};
|
|
252
|
-
//# sourceMappingURL=sync.js.map
|
package/dist/sync.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClI,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAErG,MAAM,CAAC,MAAM,EAAE,CAAC;AAShB,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,EAAE;IACrB,MAAM,IAAI,GAAgB;QACtB,YAAY,EAAE;YACV,aAAa,EAAE;gBACX,cAAc,EAAE;oBACZ,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,CAAC,OAAO,CAAC;iBACrB;gBACD,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,MAAM;gBACb,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE;oBACJ,UAAU,EAAE,MAAM;iBACrB;aACJ;YACD,QAAQ,EAAE;gBACN,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,MAAM;aACf;YACD,KAAK,EAAE;gBACH,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,MAAM;aACf;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,UAAU,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,wBAAwB,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,OAAO,CAAC,CAAC,CAAC;IAC3F,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACvB,EAAE,CAAC,UAAU,CACT,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,SAAS,IAAI,EAAE,CAAC,EAChE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAC1F,CAAC;SACL;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAE,IAAc,EAAE,OAAgB,EAAE,EAAE;IAC1D,4BAA4B,EAAE,CAAC;IAC/B,IAAI,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,oBAAoB,CAAC;IACpE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACjB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,oBAAoB,CAAC,GAAG,IAAI,CAAC;KAC5E;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,GAAG,OAAO,CAAC,CAAC;KAC7H;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,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC;IAExH,IAAI,CAAC,MAAM,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,OAAO,CAAC,CAAC;KAC3D;IAED,IAAI,YAAY,CAAC;IAEjB,IAAI,oBAAoB,EAAE;QACtB,YAAY,GAAG,IAAI,IAAI,CAAC,oBAA8B,CAAC,CAAC;KAC3D;IAED,IACI,MAAM,EAAE,YAAY,EAAE,CAAC,iBAA2B,CAAC,EAAE,CAAC,QAAkB,CAAC;QACzE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,SAAS,QAAQ,KAAK,CAAC,CAAC,EACxF;QACE,MAAM,QAAQ,GAAG,MAAM,EAAE,YAAY,CAAC,iBAA2B,CAAC,EAAE,CAAC,QAAkB,CAAC,CAAC;QACzF,uEAAuE;QACvE,gDAAgD;QAChD,EAAE,CAAC,UAAU,CACT,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,SAAS,QAAQ,KAAK,CAAC,EACvE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,SAAS,QAAQ,MAAM,CAAC,CAC3E,CAAC;QACF,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAC9C,QAAkB,EAClB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,SAAS,QAAQ,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAC7H,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACpB,IAAI,EAAE,gBAAgB,EAAE;YACxB,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;YAClC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC;YAC5C,MAAM,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,IAAI;YACA,MAAM,eAAe,GAAG,CAAC,MAAM,aAAa,CAAC,iBAA2B,EAAE,YAAsB,CAAC,CAA+B,CAAC;YACjI,IAAI,CAAC,YAAY,EAAE;gBACf,YAAY,GAAG,CAAC,MAAM,eAAe,CAAC,eAAe,EAAE,EAAY,EAAE,QAAQ,CAAC,CAAS,CAAC;aAC3F;YACD,IAAI,YAAY,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE;gBAChE,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;aACvC;YACD,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACzD,EAAE,CAAC,UAAU,CACT,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,SAAS,QAAQ,MAAM,CAAC,EACxE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,SAAS,QAAQ,KAAK,CAAC,CAC1E,CAAC;YACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,QAAgC,CAAC;YAE7D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBACxB,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;oBAC3B,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;oBACxG,IAAI,CAAC,QAAQ,EAAE;wBACX,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,GAAG,CACL,OAAO,KAAK,4DAA4D,YAAY,8DAA8D,CACrJ,CACJ,CAAC;qBACL;iBACJ;aACJ;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACnB;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,EAAE,CAAC,UAAU,CACT,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,SAAS,QAAQ,MAAM,CAAC,EACxE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,2BAA2B,SAAS,QAAQ,KAAK,CAAC,CAC1E,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACnB;KACJ;SAAM;QACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC5C;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;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;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,UAAU,EAAE,CAAC,CAAC;IAC1G,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,QAAQ,EAAE,EAAE;YAClB,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,QAAQ,EAAE,EAAE;QAC3B,IAAI,QAAQ,KAAK,GAAG,2BAA2B,IAAI,UAAU,EAAE,EAAE;YAC7D,OAAO;SACV;QACD,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC9B,IAAI,QAAQ,KAAK,GAAG,2BAA2B,IAAI,UAAU,EAAE,EAAE;YAC7D,+CAA+C;YAE/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,UAAU,EAAE,CAAC;IACjE,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,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAClH,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"}
|
package/dist/utils.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import https from 'https';
|
|
3
|
-
import type { NangoModel } from '@nangohq/shared';
|
|
4
|
-
export declare const configFile = "nango.yaml";
|
|
5
|
-
export declare const NANGO_INTEGRATIONS_LOCATION: string;
|
|
6
|
-
export declare function setCloudHost(): void;
|
|
7
|
-
export declare function setStagingHost(): void;
|
|
8
|
-
export declare function checkEnvVars(): void;
|
|
9
|
-
export declare function getConnection(providerConfigKey: string, connectionId: string): Promise<any>;
|
|
10
|
-
export declare function enrichHeaders(headers?: Record<string, string | number | boolean>): Record<string, string | number | boolean>;
|
|
11
|
-
export declare function httpsAgent(): https.Agent;
|
|
12
|
-
export declare function getFieldType(rawField: string | NangoModel): string;
|
|
13
|
-
export declare function buildInterfaces(models: NangoModel): (string | undefined)[];
|
package/dist/utils.js
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import https from 'https';
|
|
2
|
-
import axios from 'axios';
|
|
3
|
-
import * as dotenv from 'dotenv';
|
|
4
|
-
dotenv.config();
|
|
5
|
-
export const configFile = 'nango.yaml';
|
|
6
|
-
export const NANGO_INTEGRATIONS_LOCATION = process.env['NANGO_INTEGRATIONS_LOCATION'] || './nango-integrations';
|
|
7
|
-
let hostport = process.env['NANGO_HOSTPORT'] || 'http://localhost:3003';
|
|
8
|
-
const cloudHost = 'https://api.nango.dev';
|
|
9
|
-
const stagingHost = 'https://nango-cloud-staging.onrender.com';
|
|
10
|
-
if (hostport.slice(-1) === '/') {
|
|
11
|
-
hostport = hostport.slice(0, -1);
|
|
12
|
-
}
|
|
13
|
-
export function setCloudHost() {
|
|
14
|
-
process.env['NANGO_HOSTPORT'] = cloudHost;
|
|
15
|
-
}
|
|
16
|
-
export function setStagingHost() {
|
|
17
|
-
process.env['NANGO_HOSTPORT'] = stagingHost;
|
|
18
|
-
}
|
|
19
|
-
export function checkEnvVars() {
|
|
20
|
-
if (hostport === 'http://localhost:3003') {
|
|
21
|
-
console.log(`Assuming you are running Nango on localhost:3003 because you did not set the NANGO_HOSTPORT env var.\n\n`);
|
|
22
|
-
}
|
|
23
|
-
else if (hostport === cloudHost || hostport === stagingHost) {
|
|
24
|
-
if (!process.env['NANGO_SECRET_KEY']) {
|
|
25
|
-
console.log(`Assuming you are using Nango Cloud but your are lacking the NANGO_SECRET_KEY env var.`);
|
|
26
|
-
}
|
|
27
|
-
else if (hostport === cloudHost) {
|
|
28
|
-
console.log(`Assuming you are using Nango Cloud (because you set the NANGO_HOSTPORT env var to https://api.nango.dev).`);
|
|
29
|
-
}
|
|
30
|
-
else if (hostport === stagingHost) {
|
|
31
|
-
console.log(`Assuming you are using Nango Cloud (because you set the NANGO_HOSTPORT env var to https://api.staging.nango.dev).`);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
console.log(`Assuming you are self-hosting Nango (becauses you set the NANGO_HOSTPORT env var to ${hostport}).`);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
export async function getConnection(providerConfigKey, connectionId) {
|
|
39
|
-
checkEnvVars();
|
|
40
|
-
const url = hostport + `/connection/${connectionId}`;
|
|
41
|
-
return await axios
|
|
42
|
-
.get(url, { params: { provider_config_key: providerConfigKey }, headers: enrichHeaders(), httpsAgent: httpsAgent() })
|
|
43
|
-
.then((res) => {
|
|
44
|
-
return res.data;
|
|
45
|
-
})
|
|
46
|
-
.catch((err) => {
|
|
47
|
-
console.log(`❌ ${err.response?.data.error || JSON.stringify(err)}`);
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
export function enrichHeaders(headers = {}) {
|
|
51
|
-
if ((process.env['NANGO_HOSTPORT'] === cloudHost || process.env['NANGO_HOSTPORT'] === stagingHost) && process.env['NANGO_SECRET_KEY']) {
|
|
52
|
-
// For Nango Cloud (unified)
|
|
53
|
-
headers['Authorization'] = 'Bearer ' + process.env['NANGO_SECRET_KEY'];
|
|
54
|
-
}
|
|
55
|
-
else if (process.env['NANGO_SECRET_KEY']) {
|
|
56
|
-
// For Nango OSS
|
|
57
|
-
headers['Authorization'] = 'Basic ' + Buffer.from(process.env['NANGO_SECRET_KEY'] + ':').toString('base64');
|
|
58
|
-
}
|
|
59
|
-
headers['Accept-Encoding'] = 'application/json';
|
|
60
|
-
return headers;
|
|
61
|
-
}
|
|
62
|
-
export function httpsAgent() {
|
|
63
|
-
return new https.Agent({
|
|
64
|
-
rejectUnauthorized: false
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
export function getFieldType(rawField) {
|
|
68
|
-
if (typeof rawField === 'string') {
|
|
69
|
-
let field = rawField;
|
|
70
|
-
let hasNull = false;
|
|
71
|
-
let hasUndefined = false;
|
|
72
|
-
let tsType = '';
|
|
73
|
-
if (field.indexOf('null') !== -1) {
|
|
74
|
-
field = field.replace(/\s*\|\s*null\s*/g, '');
|
|
75
|
-
hasNull = true;
|
|
76
|
-
}
|
|
77
|
-
if (field.indexOf('undefined') !== -1) {
|
|
78
|
-
field = field.replace(/\s*\|\s*undefined\s*/g, '');
|
|
79
|
-
hasUndefined = true;
|
|
80
|
-
}
|
|
81
|
-
switch (field) {
|
|
82
|
-
case 'boolean':
|
|
83
|
-
case 'bool':
|
|
84
|
-
tsType = 'boolean';
|
|
85
|
-
break;
|
|
86
|
-
case 'string':
|
|
87
|
-
tsType = 'string';
|
|
88
|
-
break;
|
|
89
|
-
case 'char':
|
|
90
|
-
tsType = 'string';
|
|
91
|
-
break;
|
|
92
|
-
case 'integer':
|
|
93
|
-
case 'int':
|
|
94
|
-
case 'number':
|
|
95
|
-
tsType = 'number';
|
|
96
|
-
break;
|
|
97
|
-
case 'date':
|
|
98
|
-
tsType = 'Date';
|
|
99
|
-
break;
|
|
100
|
-
}
|
|
101
|
-
if (hasNull) {
|
|
102
|
-
tsType = `${tsType} | null`;
|
|
103
|
-
}
|
|
104
|
-
if (hasUndefined) {
|
|
105
|
-
tsType = `${tsType} | undefined`;
|
|
106
|
-
}
|
|
107
|
-
return tsType;
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
const nestedFields = Object.keys(rawField)
|
|
111
|
-
.map((fieldName) => ` ${fieldName}: ${getFieldType(rawField[fieldName])};`)
|
|
112
|
-
.join('\n');
|
|
113
|
-
return `{\n${nestedFields}\n}`;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
export function buildInterfaces(models) {
|
|
117
|
-
const interfaceDefinitions = Object.keys(models).map((modelName) => {
|
|
118
|
-
if (modelName.charAt(0) === '_') {
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
const fields = models[modelName];
|
|
122
|
-
const singularModelName = modelName.charAt(modelName.length - 1) === 's' ? modelName.slice(0, -1) : modelName;
|
|
123
|
-
const interfaceName = `${singularModelName.charAt(0).toUpperCase()}${singularModelName.slice(1)}`;
|
|
124
|
-
const fieldDefinitions = Object.keys(fields)
|
|
125
|
-
.map((fieldName) => {
|
|
126
|
-
const fieldModel = fields[fieldName];
|
|
127
|
-
const fieldType = getFieldType(fieldModel);
|
|
128
|
-
return ` ${fieldName}: ${fieldType};`;
|
|
129
|
-
})
|
|
130
|
-
.join('\n');
|
|
131
|
-
const interfaceDefinition = `export interface ${interfaceName} {\n${fieldDefinitions}\n}\n`;
|
|
132
|
-
return interfaceDefinition;
|
|
133
|
-
});
|
|
134
|
-
return interfaceDefinitions;
|
|
135
|
-
}
|
|
136
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC;AACvC,MAAM,CAAC,MAAM,2BAA2B,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,sBAAsB,CAAC;AAEhH,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,uBAAuB,CAAC;AACxE,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAC1C,MAAM,WAAW,GAAG,0CAA0C,CAAC;AAE/D,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC5B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACpC;AAED,MAAM,UAAU,YAAY;IACxB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc;IAC1B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,WAAW,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,YAAY;IACxB,IAAI,QAAQ,KAAK,uBAAuB,EAAE;QACtC,OAAO,CAAC,GAAG,CAAC,0GAA0G,CAAC,CAAC;KAC3H;SAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,EAAE;QAC3D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC;SACxG;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC/B,OAAO,CAAC,GAAG,CAAC,2GAA2G,CAAC,CAAC;SAC5H;aAAM,IAAI,QAAQ,KAAK,WAAW,EAAE;YACjC,OAAO,CAAC,GAAG,CAAC,mHAAmH,CAAC,CAAC;SACpI;KACJ;SAAM;QACH,OAAO,CAAC,GAAG,CAAC,uFAAuF,QAAQ,IAAI,CAAC,CAAC;KACpH;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,iBAAyB,EAAE,YAAoB;IAC/E,YAAY,EAAE,CAAC;IACf,MAAM,GAAG,GAAG,QAAQ,GAAG,eAAe,YAAY,EAAE,CAAC;IACrD,OAAO,MAAM,KAAK;SACb,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;SACpH,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACV,OAAO,GAAG,CAAC,IAAI,CAAC;IACpB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAqD,EAAE;IACjF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;QACnI,4BAA4B;QAC5B,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;KAC1E;SAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;QACxC,gBAAgB;QAChB,OAAO,CAAC,eAAe,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAC/G;IAED,OAAO,CAAC,iBAAiB,CAAC,GAAG,kBAAkB,CAAC;IAEhD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU;IACtB,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC;QACnB,kBAAkB,EAAE,KAAK;KAC5B,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAA6B;IACtD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAC9B,IAAI,KAAK,GAAG,QAAQ,CAAC;QACrB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;YAC9B,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;YAC9C,OAAO,GAAG,IAAI,CAAC;SAClB;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE;YACnC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;YACnD,YAAY,GAAG,IAAI,CAAC;SACvB;QACD,QAAQ,KAAK,EAAE;YACX,KAAK,SAAS,CAAC;YACf,KAAK,MAAM;gBACP,MAAM,GAAG,SAAS,CAAC;gBACnB,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,GAAG,QAAQ,CAAC;gBAClB,MAAM;YACV,KAAK,MAAM;gBACP,MAAM,GAAG,QAAQ,CAAC;gBAClB,MAAM;YACV,KAAK,SAAS,CAAC;YACf,KAAK,KAAK,CAAC;YACX,KAAK,QAAQ;gBACT,MAAM,GAAG,QAAQ,CAAC;gBAClB,MAAM;YACV,KAAK,MAAM;gBACP,MAAM,GAAG,MAAM,CAAC;gBAChB,MAAM;SACb;QAED,IAAI,OAAO,EAAE;YACT,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC;SAC/B;QAED,IAAI,YAAY,EAAE;YACd,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC;SACpC;QACD,OAAO,MAAM,CAAC;KACjB;SAAM;QACH,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;aACrC,GAAG,CAAC,CAAC,SAAiB,EAAE,EAAE,CAAC,KAAK,SAAS,KAAK,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAwB,CAAC,GAAG,CAAC;aAC1G,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,MAAM,YAAY,KAAK,CAAC;KAClC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAkB;IAC9C,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,SAAiB,EAAE,EAAE;QACvE,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC7B,OAAO;SACV;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAe,CAAC;QAC/C,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9G,MAAM,aAAa,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClG,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aACvC,GAAG,CAAC,CAAC,SAAiB,EAAE,EAAE;YACvB,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAwB,CAAC;YAC5D,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;YAC3C,OAAO,KAAK,SAAS,KAAK,SAAS,GAAG,CAAC;QAC3C,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,mBAAmB,GAAG,oBAAoB,aAAa,OAAO,gBAAgB,OAAO,CAAC;QAC5F,OAAO,mBAAmB,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAChC,CAAC"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
version: '3.9'
|
|
2
|
-
services:
|
|
3
|
-
nango-db:
|
|
4
|
-
image: postgres
|
|
5
|
-
container_name: nango-db
|
|
6
|
-
environment:
|
|
7
|
-
POSTGRES_PASSWORD: nango
|
|
8
|
-
POSTGRES_USER: nango
|
|
9
|
-
POSTGRES_DB: nango
|
|
10
|
-
ports:
|
|
11
|
-
- '${NANGO_DB_PORT:-5432}:5432'
|
|
12
|
-
volumes:
|
|
13
|
-
- ./nango-data:/var/lib/postgresql/data
|
|
14
|
-
networks:
|
|
15
|
-
- nango
|
|
16
|
-
|
|
17
|
-
nango-server:
|
|
18
|
-
image: nangohq/nango-server:0.1.37-beta
|
|
19
|
-
container_name: nango-server
|
|
20
|
-
environment:
|
|
21
|
-
- TEMPORAL_ADDRESS=temporal:7233
|
|
22
|
-
- NANGO_DB_MIGRATION_FOLDER=/usr/nango-server/src/packages/shared/lib/db/migrations
|
|
23
|
-
- NANGO_CALLBACK_URL=${NANGO_CALLBACK_URL:-http://localhost:3003/oauth/callback}
|
|
24
|
-
restart: always
|
|
25
|
-
ports:
|
|
26
|
-
- '3003:3003'
|
|
27
|
-
depends_on:
|
|
28
|
-
- nango-db
|
|
29
|
-
volumes:
|
|
30
|
-
- "${NANGO_INTEGRATIONS_LOCATION:-./nango-integrations}:/usr/nango-server/src/packages/shared/dist/lib/nango-integrations"
|
|
31
|
-
networks:
|
|
32
|
-
- nango
|
|
33
|
-
|
|
34
|
-
nango-worker:
|
|
35
|
-
image: nangohq/nango-worker:0.1.37-beta
|
|
36
|
-
container_name: nango-worker
|
|
37
|
-
restart: always
|
|
38
|
-
ports:
|
|
39
|
-
- '3004:3004'
|
|
40
|
-
environment:
|
|
41
|
-
- TEMPORAL_ADDRESS=temporal:7233
|
|
42
|
-
depends_on:
|
|
43
|
-
- nango-db
|
|
44
|
-
- temporal
|
|
45
|
-
volumes:
|
|
46
|
-
- "${NANGO_INTEGRATIONS_LOCATION:-./nango-integrations}:/usr/nango-worker/src/packages/shared/dist/lib/nango-integrations"
|
|
47
|
-
networks:
|
|
48
|
-
- nango
|
|
49
|
-
|
|
50
|
-
temporal:
|
|
51
|
-
image: temporalio/auto-setup
|
|
52
|
-
container_name: temporal
|
|
53
|
-
depends_on:
|
|
54
|
-
- nango-db
|
|
55
|
-
environment:
|
|
56
|
-
- DB=postgresql
|
|
57
|
-
- DB_PORT=5432
|
|
58
|
-
- POSTGRES_USER=nango
|
|
59
|
-
- POSTGRES_PWD=nango
|
|
60
|
-
- POSTGRES_SEEDS=nango-db
|
|
61
|
-
- LOG_LEVEL=error
|
|
62
|
-
ports:
|
|
63
|
-
- 7233:7233
|
|
64
|
-
networks:
|
|
65
|
-
- nango
|
|
66
|
-
|
|
67
|
-
networks:
|
|
68
|
-
nango:
|
package/tsconfig.dev.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"lib": ["es2022"],
|
|
4
|
-
"module": "es2022",
|
|
5
|
-
"target": "es2022",
|
|
6
|
-
"strict": true,
|
|
7
|
-
"esModuleInterop": true,
|
|
8
|
-
"skipLibCheck": true,
|
|
9
|
-
"forceConsistentCasingInFileNames": true,
|
|
10
|
-
"moduleResolution": "node",
|
|
11
|
-
"allowUnusedLabels": false,
|
|
12
|
-
"allowUnreachableCode": false,
|
|
13
|
-
"exactOptionalPropertyTypes": true,
|
|
14
|
-
"noFallthroughCasesInSwitch": true,
|
|
15
|
-
"noImplicitOverride": true,
|
|
16
|
-
"noImplicitReturns": true,
|
|
17
|
-
"noPropertyAccessFromIndexSignature": true,
|
|
18
|
-
"noUncheckedIndexedAccess": true,
|
|
19
|
-
"noUnusedLocals": true,
|
|
20
|
-
"noUnusedParameters": true,
|
|
21
|
-
"declaration": false,
|
|
22
|
-
"sourceMap": false,
|
|
23
|
-
"composite": false,
|
|
24
|
-
"checkJs": false,
|
|
25
|
-
"rootDir": "nango-integrations",
|
|
26
|
-
"outDir": "nango-integrations/dist"
|
|
27
|
-
},
|
|
28
|
-
"include": ["nango-integrations"],
|
|
29
|
-
"exclude": ["node_modules"]
|
|
30
|
-
}
|