nango 0.41.1 → 0.42.1

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.
@@ -1,133 +0,0 @@
1
- import { ActionError, NangoError, formatScriptError, NangoSync, localFileService, validateData } from '@nangohq/shared';
2
- import * as vm from 'vm';
3
- import * as url from 'url';
4
- import * as crypto from 'crypto';
5
- import * as zod from 'zod';
6
- import { Buffer } from 'buffer';
7
- class IntegrationService {
8
- async cancelScript() {
9
- return Promise.resolve();
10
- }
11
- async runScript({ syncName, nangoProps, isInvokedImmediately, isWebhook, optionalLoadLocation, input }) {
12
- const nango = new NangoSync(nangoProps);
13
- try {
14
- await nango.log(`Executing -> integration:"${nangoProps.provider}" script:"${syncName}"`);
15
- const script = localFileService.getIntegrationFile(syncName, nangoProps.providerConfigKey, optionalLoadLocation);
16
- const isAction = isInvokedImmediately && !isWebhook;
17
- if (!script) {
18
- const content = `Unable to find script file for "${syncName}"`;
19
- return { success: false, error: new NangoError(content, 500), response: null };
20
- }
21
- try {
22
- const wrappedScript = `
23
- (function() {
24
- var module = { exports: {} };
25
- var exports = module.exports;
26
- ${script}
27
- return module.exports;
28
- })();
29
- `;
30
- const scriptObj = new vm.Script(wrappedScript);
31
- const sandbox = {
32
- console,
33
- require: (moduleName) => {
34
- switch (moduleName) {
35
- case 'url':
36
- return url;
37
- case 'crypto':
38
- return crypto;
39
- case 'zod':
40
- return zod;
41
- default:
42
- throw new Error(`Module '${moduleName}' is not allowed`);
43
- }
44
- },
45
- Buffer,
46
- setTimeout
47
- };
48
- const context = vm.createContext(sandbox);
49
- const scriptExports = scriptObj.runInContext(context);
50
- if (!scriptExports.default || !(typeof scriptExports.default === 'function')) {
51
- const content = `There is no default export that is a function for ${syncName}`;
52
- return { success: false, error: new NangoError(content, 500), response: null };
53
- }
54
- if (isAction) {
55
- // Validate action input against json schema
56
- const valInput = validateData({
57
- version: nangoProps.syncConfig.version || '1',
58
- input: input,
59
- modelName: nangoProps.syncConfig.input,
60
- jsonSchema: nangoProps.syncConfig.models_json_schema
61
- });
62
- if (Array.isArray(valInput)) {
63
- await nango.log('Invalid action input. Use `--validation` option to see the details', { level: 'warn' });
64
- if (nangoProps.runnerFlags.validateActionInput) {
65
- return {
66
- success: false,
67
- response: null,
68
- error: new NangoError('invalid_action_input', { data: input, validation: valInput, model: nangoProps.syncConfig.input })
69
- };
70
- }
71
- }
72
- const output = await scriptExports.default(nango, input);
73
- // Validate action output against json schema
74
- const modelNameOutput = nangoProps.syncConfig.models.length > 0 ? nangoProps.syncConfig.models[0] : undefined;
75
- const valOutput = validateData({
76
- version: nangoProps.syncConfig.version || '1',
77
- input: output,
78
- modelName: modelNameOutput,
79
- jsonSchema: nangoProps.syncConfig.models_json_schema
80
- });
81
- if (Array.isArray(valOutput)) {
82
- await nango.log('Invalid action output. Use `--validation` option to see the details', { level: 'warn' });
83
- if (nangoProps.runnerFlags.validateActionOutput) {
84
- return {
85
- success: false,
86
- response: null,
87
- error: new NangoError('invalid_action_output', { data: output, validation: valOutput, model: modelNameOutput })
88
- };
89
- }
90
- }
91
- return { success: true, error: null, response: output };
92
- }
93
- const results = await scriptExports.default(nango);
94
- return { success: true, error: null, response: results };
95
- }
96
- catch (err) {
97
- // TODO merge this back with the main integration service
98
- if (err instanceof ActionError) {
99
- return {
100
- success: false,
101
- error: {
102
- type: err.type,
103
- payload: err.payload || {},
104
- status: 500
105
- },
106
- response: null
107
- };
108
- }
109
- else if (err instanceof NangoError) {
110
- return { success: false, error: err, response: null };
111
- }
112
- let errorType = 'sync_script_failure';
113
- if (isWebhook) {
114
- errorType = 'webhook_script_failure';
115
- }
116
- else if (isInvokedImmediately) {
117
- errorType = 'action_script_failure';
118
- }
119
- return formatScriptError(err, errorType, syncName);
120
- }
121
- }
122
- catch (err) {
123
- const errorMessage = JSON.stringify(err, ['message', 'name', 'stack'], 2);
124
- const content = `The script failed to load for ${syncName} with the following error: ${errorMessage}`;
125
- return { success: false, error: new NangoError(content, 500), response: null };
126
- }
127
- finally {
128
- await nango.log(`Done`);
129
- }
130
- }
131
- }
132
- export default new IntegrationService();
133
- //# sourceMappingURL=local-integration.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-integration.service.js","sourceRoot":"","sources":["../../lib/services/local-integration.service.ts"],"names":[],"mappings":"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"}