@nangohq/runner-sdk 0.53.1 → 0.54.0
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/action.d.ts +17 -2
- package/dist/action.js +30 -16
- package/dist/action.js.map +1 -1
- package/dist/paginate.service.js +12 -1
- package/dist/paginate.service.js.map +1 -1
- package/dist/paginate.service.unit.test.d.ts +1 -0
- package/dist/paginate.service.unit.test.js +173 -0
- package/dist/paginate.service.unit.test.js.map +1 -0
- package/dist/sync.d.ts +6 -4
- package/dist/sync.js +8 -0
- package/dist/sync.js.map +1 -1
- package/models.d.ts +37 -41
- package/package.json +8 -6
package/dist/action.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Nango } from '@nangohq/node';
|
|
2
2
|
import type { AxiosResponse } from 'axios';
|
|
3
|
-
import type {
|
|
3
|
+
import type { ZodSchema } from 'zod';
|
|
4
|
+
import type { ApiKeyCredentials, ApiPublicConnectionFull, AppCredentials, AppStoreCredentials, BasicApiCredentials, BillCredentials, CustomCredentials, EnvironmentVariable, GetPublicConnection, GetPublicIntegration, HTTP_METHOD, JwtCredentials, MaybePromise, Metadata, NangoProps, OAuth1Token, OAuth2ClientCredentials, SetMetadata, SignatureCredentials, TableauCredentials, TbaCredentials, TwoStepCredentials, UnauthCredentials, UpdateMetadata, UserLogParameters, UserProvidedProxyConfiguration } from '@nangohq/types';
|
|
4
5
|
import { ActionError } from './errors.js';
|
|
5
6
|
export type ProxyConfiguration = Omit<UserProvidedProxyConfiguration, 'files' | 'providerConfigKey' | 'connectionId'> & {
|
|
6
7
|
providerConfigKey?: string;
|
|
@@ -31,7 +32,7 @@ export declare abstract class NangoActionBase {
|
|
|
31
32
|
timestamp: number;
|
|
32
33
|
}>;
|
|
33
34
|
constructor(config: NangoProps);
|
|
34
|
-
protected
|
|
35
|
+
protected getProxyConfig(config: ProxyConfiguration): UserProvidedProxyConfiguration;
|
|
35
36
|
protected throwIfAborted(): void;
|
|
36
37
|
abstract proxy<T = any>(config: ProxyConfiguration): Promise<AxiosResponse<T>>;
|
|
37
38
|
get<T = any>(config: Omit<ProxyConfiguration, 'method'>): Promise<AxiosResponse<T>>;
|
|
@@ -76,5 +77,19 @@ export declare abstract class NangoActionBase {
|
|
|
76
77
|
getFlowAttributes<A = object>(): A | null;
|
|
77
78
|
paginate<T = any>(config: ProxyConfiguration): AsyncGenerator<T[], undefined, void>;
|
|
78
79
|
triggerAction<In = unknown, Out = object>(providerConfigKey: string, connectionId: string, actionName: string, input?: In): Promise<Out>;
|
|
80
|
+
zodValidateInput<T = any, Z = any>({ zodSchema, input }: {
|
|
81
|
+
zodSchema: ZodSchema<Z>;
|
|
82
|
+
input: T;
|
|
83
|
+
}): Promise<void>;
|
|
79
84
|
abstract triggerSync(providerConfigKey: string, connectionId: string, syncName: string, fullResync?: boolean): Promise<void | string>;
|
|
85
|
+
/**
|
|
86
|
+
* Uncontrolled fetch is a regular fetch without retry or credentials injection.
|
|
87
|
+
* Only use that method when you want to access resources that are unrelated to the current connection/provider.
|
|
88
|
+
*/
|
|
89
|
+
uncontrolledFetch(options: {
|
|
90
|
+
url: URL;
|
|
91
|
+
method?: HTTP_METHOD;
|
|
92
|
+
headers?: Record<string, string> | undefined;
|
|
93
|
+
body?: string | null;
|
|
94
|
+
}): Promise<Response>;
|
|
80
95
|
}
|
package/dist/action.js
CHANGED
|
@@ -53,24 +53,12 @@ export class NangoActionBase {
|
|
|
53
53
|
this.syncConfig = config.syncConfig;
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
|
|
57
|
-
if (!config.connectionId && this.connectionId) {
|
|
58
|
-
config.connectionId = this.connectionId;
|
|
59
|
-
}
|
|
60
|
-
if (!config.providerConfigKey && this.providerConfigKey) {
|
|
61
|
-
config.providerConfigKey = this.providerConfigKey;
|
|
62
|
-
}
|
|
63
|
-
if (!config.connectionId) {
|
|
64
|
-
throw new Error('Missing connection id');
|
|
65
|
-
}
|
|
66
|
-
if (!config.providerConfigKey) {
|
|
67
|
-
throw new Error('Missing provider config key');
|
|
68
|
-
}
|
|
56
|
+
getProxyConfig(config) {
|
|
69
57
|
return {
|
|
70
58
|
method: 'GET',
|
|
71
59
|
...config,
|
|
72
|
-
providerConfigKey: config.providerConfigKey,
|
|
73
|
-
connectionId: config.connectionId,
|
|
60
|
+
providerConfigKey: config.providerConfigKey || this.providerConfigKey,
|
|
61
|
+
connectionId: config.connectionId || this.connectionId,
|
|
74
62
|
headers: {
|
|
75
63
|
...(config.headers || {}),
|
|
76
64
|
'user-agent': this.nango.userAgent
|
|
@@ -216,7 +204,7 @@ export class NangoActionBase {
|
|
|
216
204
|
if (paginationConfig['limit']) {
|
|
217
205
|
updatedBodyOrParams[limitParameterName] = paginationConfig['limit'];
|
|
218
206
|
}
|
|
219
|
-
const proxyConfig = this.
|
|
207
|
+
const proxyConfig = this.getProxyConfig(config);
|
|
220
208
|
switch (paginationConfig.type) {
|
|
221
209
|
case 'cursor':
|
|
222
210
|
return yield* paginateService.cursor(proxyConfig, paginationConfig, updatedBodyOrParams, passPaginationParamsInBody, this.proxy.bind(this));
|
|
@@ -231,5 +219,31 @@ export class NangoActionBase {
|
|
|
231
219
|
async triggerAction(providerConfigKey, connectionId, actionName, input) {
|
|
232
220
|
return await this.nango.triggerAction(providerConfigKey, connectionId, actionName, input);
|
|
233
221
|
}
|
|
222
|
+
async zodValidateInput({ zodSchema, input }) {
|
|
223
|
+
const parsedInput = zodSchema.safeParse(input);
|
|
224
|
+
if (!parsedInput.success) {
|
|
225
|
+
for (const error of parsedInput.error.errors) {
|
|
226
|
+
await this.log(`Invalid input provided: ${error.message} at path ${error.path.join('.')}`, { level: 'error' });
|
|
227
|
+
}
|
|
228
|
+
throw new this.ActionError({
|
|
229
|
+
message: 'Invalid input provided'
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Uncontrolled fetch is a regular fetch without retry or credentials injection.
|
|
235
|
+
* Only use that method when you want to access resources that are unrelated to the current connection/provider.
|
|
236
|
+
*/
|
|
237
|
+
async uncontrolledFetch(options) {
|
|
238
|
+
const props = {
|
|
239
|
+
headers: new Headers(options.headers),
|
|
240
|
+
method: options.method || 'GET'
|
|
241
|
+
// TODO: use agent
|
|
242
|
+
};
|
|
243
|
+
if (options.body) {
|
|
244
|
+
props.body = options.body;
|
|
245
|
+
}
|
|
246
|
+
return await fetch(options.url);
|
|
247
|
+
}
|
|
234
248
|
}
|
|
235
249
|
//# sourceMappingURL=action.js.map
|
package/dist/action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../lib/action.ts"],"names":[],"mappings":"AAEA,OAAO,eAAe,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../lib/action.ts"],"names":[],"mappings":"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"}
|
package/dist/paginate.service.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import parseLinksHeader from 'parse-link-header';
|
|
2
2
|
import get from 'lodash-es/get.js';
|
|
3
|
+
import set from 'lodash-es/set.js';
|
|
3
4
|
function isValidURL(str) {
|
|
4
5
|
try {
|
|
5
6
|
new URL(str); // TODO: replace with canParse after we drop node v18
|
|
@@ -123,9 +124,19 @@ class PaginationService {
|
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
}
|
|
127
|
+
/*
|
|
128
|
+
* Update the config object with the updated body or params based on the pagination type
|
|
129
|
+
* @desc if a pagination type requires the pagination params to be passed in the body,
|
|
130
|
+
* then the updatedBodyOrParams will be passed in the body of the config object,
|
|
131
|
+
* with handling for . notation in the keys
|
|
132
|
+
*/
|
|
126
133
|
updateConfigBodyOrParams(passPaginationParamsInBody, config, updatedBodyOrParams) {
|
|
127
134
|
if (passPaginationParamsInBody) {
|
|
128
|
-
|
|
135
|
+
const expandedParams = Object.keys(updatedBodyOrParams).reduce((acc, key) => {
|
|
136
|
+
set(acc, key, updatedBodyOrParams[key]);
|
|
137
|
+
return acc;
|
|
138
|
+
}, {});
|
|
139
|
+
config.data = expandedParams;
|
|
129
140
|
}
|
|
130
141
|
else {
|
|
131
142
|
config.params = updatedBodyOrParams;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginate.service.js","sourceRoot":"","sources":["../lib/paginate.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"paginate.service.js","sourceRoot":"","sources":["../lib/paginate.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for the PaginationService class, specifically focusing on . notation in cursor pagination.
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
5
|
+
import PaginationService from './paginate.service';
|
|
6
|
+
describe('PaginationService', () => {
|
|
7
|
+
describe('cursor pagination', () => {
|
|
8
|
+
let config;
|
|
9
|
+
let paginationConfig;
|
|
10
|
+
let proxy; // Use ReturnType for type inference
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
config = {
|
|
13
|
+
endpoint: '/test',
|
|
14
|
+
method: 'POST',
|
|
15
|
+
providerConfigKey: 'test-provider-key',
|
|
16
|
+
connectionId: 'test-connection-id'
|
|
17
|
+
};
|
|
18
|
+
paginationConfig = {
|
|
19
|
+
type: 'cursor',
|
|
20
|
+
cursor_name_in_request: 'pagination.starting_after',
|
|
21
|
+
cursor_path_in_response: 'pages.next.starting_after',
|
|
22
|
+
limit: 150,
|
|
23
|
+
limit_name_in_request: 'pagination.per_page',
|
|
24
|
+
response_path: 'data'
|
|
25
|
+
};
|
|
26
|
+
proxy = vi.fn().mockResolvedValue({
|
|
27
|
+
data: {
|
|
28
|
+
data: [{ id: 1 }],
|
|
29
|
+
pages: {
|
|
30
|
+
next: { starting_after: 'next-cursor' }
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
describe('dot notation handling', () => {
|
|
36
|
+
it('should expand dot notation in body parameters', async () => {
|
|
37
|
+
const generator = PaginationService.cursor(config, paginationConfig, { 'pagination.per_page': 150 }, true, // passPaginationParamsInBody = true
|
|
38
|
+
proxy);
|
|
39
|
+
await generator.next();
|
|
40
|
+
expect(proxy).toHaveBeenCalledWith(expect.objectContaining({
|
|
41
|
+
data: {
|
|
42
|
+
pagination: {
|
|
43
|
+
per_page: 150
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}));
|
|
47
|
+
});
|
|
48
|
+
it('should handle multiple levels of dot notation', async () => {
|
|
49
|
+
const generator = PaginationService.cursor(config, paginationConfig, {
|
|
50
|
+
'pagination.per_page': 150,
|
|
51
|
+
'pagination.cursor.value': 'test-cursor'
|
|
52
|
+
}, true, proxy);
|
|
53
|
+
await generator.next();
|
|
54
|
+
expect(proxy).toHaveBeenCalledWith(expect.objectContaining({
|
|
55
|
+
data: {
|
|
56
|
+
pagination: {
|
|
57
|
+
per_page: 150,
|
|
58
|
+
cursor: {
|
|
59
|
+
value: 'test-cursor'
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}));
|
|
64
|
+
});
|
|
65
|
+
it('should not expand parameters when passing in query params', async () => {
|
|
66
|
+
const generator = PaginationService.cursor(config, paginationConfig, { 'pagination.per_page': 150 }, false, // passPaginationParamsInBody = false
|
|
67
|
+
proxy);
|
|
68
|
+
await generator.next();
|
|
69
|
+
expect(proxy).toHaveBeenCalledWith(expect.objectContaining({
|
|
70
|
+
params: {
|
|
71
|
+
'pagination.per_page': 150
|
|
72
|
+
}
|
|
73
|
+
}));
|
|
74
|
+
});
|
|
75
|
+
it('should handle mixed dot notation and regular keys', async () => {
|
|
76
|
+
const generator = PaginationService.cursor(config, paginationConfig, {
|
|
77
|
+
'pagination.per_page': 150,
|
|
78
|
+
obj_key: 'value',
|
|
79
|
+
'nested.key.with.dots': 'nested-value'
|
|
80
|
+
}, true, proxy);
|
|
81
|
+
await generator.next();
|
|
82
|
+
expect(proxy).toHaveBeenCalledWith(expect.objectContaining({
|
|
83
|
+
data: {
|
|
84
|
+
pagination: {
|
|
85
|
+
per_page: 150
|
|
86
|
+
},
|
|
87
|
+
obj_key: 'value',
|
|
88
|
+
nested: {
|
|
89
|
+
key: {
|
|
90
|
+
with: {
|
|
91
|
+
dots: 'nested-value'
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}));
|
|
97
|
+
});
|
|
98
|
+
it('should handle updates to cursor with dot notation', async () => {
|
|
99
|
+
proxy
|
|
100
|
+
.mockResolvedValueOnce({
|
|
101
|
+
data: {
|
|
102
|
+
data: [{ id: 1 }],
|
|
103
|
+
pages: {
|
|
104
|
+
next: { starting_after: 'next-cursor' }
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
})
|
|
108
|
+
.mockResolvedValueOnce({
|
|
109
|
+
data: {
|
|
110
|
+
data: [{ id: 2 }],
|
|
111
|
+
pages: {
|
|
112
|
+
next: null
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
const generator = PaginationService.cursor(config, paginationConfig, { 'pagination.per_page': 150 }, true, proxy);
|
|
117
|
+
await generator.next(); // First page
|
|
118
|
+
await generator.next(); // Second page
|
|
119
|
+
expect(proxy).toHaveBeenNthCalledWith(2, expect.objectContaining({
|
|
120
|
+
data: {
|
|
121
|
+
pagination: {
|
|
122
|
+
per_page: 150,
|
|
123
|
+
starting_after: 'next-cursor'
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}));
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
describe('response handling', () => {
|
|
130
|
+
it('should stop pagination when no next cursor', async () => {
|
|
131
|
+
proxy.mockResolvedValueOnce({
|
|
132
|
+
data: {
|
|
133
|
+
data: [{ id: 1 }],
|
|
134
|
+
pages: { next: null }
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
const generator = PaginationService.cursor(config, paginationConfig, { 'pagination.per_page': 150 }, true, proxy);
|
|
138
|
+
const first = await generator.next();
|
|
139
|
+
expect(first.value).toEqual([{ id: 1 }]);
|
|
140
|
+
const second = await generator.next();
|
|
141
|
+
expect(second.done).toBe(true);
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
describe('error handling', () => {
|
|
145
|
+
it('should handle undefined response data', async () => {
|
|
146
|
+
proxy.mockResolvedValueOnce({
|
|
147
|
+
data: {
|
|
148
|
+
pages: { next: null }
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
const generator = PaginationService.cursor(config, paginationConfig, { 'pagination.per_page': 150 }, true, proxy);
|
|
152
|
+
const result = await generator.next();
|
|
153
|
+
expect(result.done).toBe(true);
|
|
154
|
+
});
|
|
155
|
+
it('should handle invalid cursor values', async () => {
|
|
156
|
+
proxy.mockResolvedValueOnce({
|
|
157
|
+
data: {
|
|
158
|
+
data: [{ id: 1 }],
|
|
159
|
+
pages: {
|
|
160
|
+
next: { starting_after: ' ' } // Empty string with spaces
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
const generator = PaginationService.cursor(config, paginationConfig, { 'pagination.per_page': 150 }, true, proxy);
|
|
165
|
+
const first = await generator.next();
|
|
166
|
+
expect(first.value).toEqual([{ id: 1 }]);
|
|
167
|
+
const second = await generator.next();
|
|
168
|
+
expect(second.done).toBe(true);
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
//# sourceMappingURL=paginate.service.unit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paginate.service.unit.test.js","sourceRoot":"","sources":["../lib/paginate.service.unit.test.ts"],"names":[],"mappings":"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"}
|
package/dist/sync.d.ts
CHANGED
|
@@ -8,12 +8,14 @@ export declare abstract class NangoSyncBase extends NangoActionBase {
|
|
|
8
8
|
/**
|
|
9
9
|
* @deprecated please use batchSave
|
|
10
10
|
*/
|
|
11
|
-
batchSend<T
|
|
12
|
-
abstract batchSave<T
|
|
13
|
-
abstract batchDelete<T
|
|
14
|
-
abstract batchUpdate<T
|
|
11
|
+
batchSend<T extends object>(results: T[], model: string): Promise<boolean | null>;
|
|
12
|
+
abstract batchSave<T extends object>(results: T[], model: string): MaybePromise<boolean>;
|
|
13
|
+
abstract batchDelete<T extends object>(results: T[], model: string): MaybePromise<boolean>;
|
|
14
|
+
abstract batchUpdate<T extends object>(results: T[], model: string): MaybePromise<boolean>;
|
|
15
|
+
abstract getRecordsByIds<K = string | number, T = any>(ids: K[], model: string): MaybePromise<Map<K, T>>;
|
|
15
16
|
protected validateRecords(model: string, records: unknown[]): {
|
|
16
17
|
data: any;
|
|
17
18
|
validation: ValidateDataError[];
|
|
18
19
|
}[];
|
|
20
|
+
protected removeMetadata<T extends object>(results: T[]): T[];
|
|
19
21
|
}
|
package/dist/sync.js
CHANGED
|
@@ -38,5 +38,13 @@ export class NangoSyncBase extends NangoActionBase {
|
|
|
38
38
|
}
|
|
39
39
|
return hasErrors;
|
|
40
40
|
}
|
|
41
|
+
removeMetadata(results) {
|
|
42
|
+
return results.map((result) => {
|
|
43
|
+
if ('_nango_metadata' in result) {
|
|
44
|
+
delete result._nango_metadata;
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
41
49
|
}
|
|
42
50
|
//# 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":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,OAAgB,aAAc,SAAQ,eAAe;IACvD,YAAY,CAAQ;IACpB,aAAa,GAAG,KAAK,CAAC;IAEtB,YAAY,MAAkB;QAC1B,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAC5C,CAAC;QAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC9C,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../lib/sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,OAAgB,aAAc,SAAQ,eAAe;IACvD,YAAY,CAAQ;IACpB,aAAa,GAAG,KAAK,CAAC;IAEtB,YAAY,MAAkB;QAC1B,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAC5C,CAAC;QAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC9C,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,SAAS,CAAmB,OAAY,EAAE,KAAa;QAChE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAUS,eAAe,CAAC,KAAa,EAAE,OAAkB;QACvD,mBAAmB;QACnB,MAAM,SAAS,GAAqD,EAAE,CAAC;QACvE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,YAAY,CAAC;gBAC5B,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,IAAI,GAAG;gBACxC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACzC,UAAU,EAAE,IAAI,CAAC,UAAW,CAAC,kBAAkB;gBAC/C,SAAS,EAAE,KAAK;aACnB,CAAC,CAAC;YACH,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACtB,SAAS;YACb,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAE7C,IAAI,IAAI,CAAC,WAAW,EAAE,mBAAmB,EAAE,CAAC;gBACxC,MAAM;YACV,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,cAAc,CAAmB,OAAY;QACnD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,iBAAiB,IAAI,MAAM,EAAE,CAAC;gBAC9B,OAAO,MAAM,CAAC,eAAe,CAAC;YAClC,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
|
package/models.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Nango } from '@nangohq/node';
|
|
2
2
|
import type { AxiosInstance, AxiosInterceptorManager, AxiosRequestConfig, AxiosResponse, AxiosError } from 'axios';
|
|
3
|
-
import type { ApiEndUser, DBSyncConfig, DBTeam, GetPublicIntegration, RunnerFlags } from '@nangohq/types';
|
|
3
|
+
import type { ApiEndUser, DBSyncConfig, DBTeam, GetPublicIntegration, HTTP_METHOD, RunnerFlags } from '@nangohq/types';
|
|
4
|
+
import { ZodSchema } from 'zod';
|
|
4
5
|
|
|
5
6
|
export declare const oldLevelToNewLevel: {
|
|
6
7
|
readonly debug: 'debug';
|
|
@@ -48,7 +49,7 @@ export interface ProxyConfiguration {
|
|
|
48
49
|
baseUrlOverride?: string;
|
|
49
50
|
paginate?: Partial<CursorPagination> | Partial<LinkPagination> | Partial<OffsetPagination>;
|
|
50
51
|
retryHeader?: RetryHeaderConfig;
|
|
51
|
-
responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream';
|
|
52
|
+
responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream' | undefined;
|
|
52
53
|
retryOn?: number[] | null;
|
|
53
54
|
}
|
|
54
55
|
export interface AuthModes {
|
|
@@ -138,7 +139,7 @@ interface JwtCredentials {
|
|
|
138
139
|
type: AuthModes['Jwt'];
|
|
139
140
|
privateKeyId?: string;
|
|
140
141
|
issuerId?: string;
|
|
141
|
-
privateKey:{
|
|
142
|
+
privateKey: {
|
|
142
143
|
id: string;
|
|
143
144
|
secret: string;
|
|
144
145
|
} | string;
|
|
@@ -201,18 +202,6 @@ export declare class ActionError<T = Record<string, unknown>> extends Error {
|
|
|
201
202
|
payload?: Record<string, unknown>;
|
|
202
203
|
constructor(payload?: T);
|
|
203
204
|
}
|
|
204
|
-
interface RunArgs {
|
|
205
|
-
sync: string;
|
|
206
|
-
connectionId: string;
|
|
207
|
-
lastSyncDate?: string;
|
|
208
|
-
useServerLastSyncDate?: boolean;
|
|
209
|
-
input?: object;
|
|
210
|
-
metadata?: Metadata;
|
|
211
|
-
autoConfirm: boolean;
|
|
212
|
-
debug: boolean;
|
|
213
|
-
optionalEnvironment?: string;
|
|
214
|
-
optionalProviderConfigKey?: string;
|
|
215
|
-
}
|
|
216
205
|
export interface NangoProps {
|
|
217
206
|
scriptType: 'sync' | 'action' | 'webhook' | 'on-event';
|
|
218
207
|
host?: string;
|
|
@@ -232,15 +221,15 @@ export interface NangoProps {
|
|
|
232
221
|
track_deletes?: boolean;
|
|
233
222
|
attributes?: object | undefined;
|
|
234
223
|
logMessages?:
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
224
|
+
| {
|
|
225
|
+
counts: {
|
|
226
|
+
updated: number;
|
|
227
|
+
added: number;
|
|
228
|
+
deleted: number;
|
|
229
|
+
};
|
|
230
|
+
messages: unknown[];
|
|
231
|
+
}
|
|
232
|
+
| undefined;
|
|
244
233
|
rawSaveOutput?: Map<string, unknown[]> | undefined;
|
|
245
234
|
rawDeleteOutput?: Map<string, unknown[]> | undefined;
|
|
246
235
|
stubbedMetadata?: Metadata | undefined;
|
|
@@ -335,12 +324,12 @@ export declare class NangoAction {
|
|
|
335
324
|
message: any,
|
|
336
325
|
options?:
|
|
337
326
|
| {
|
|
338
|
-
|
|
339
|
-
|
|
327
|
+
level?: LogLevel;
|
|
328
|
+
}
|
|
340
329
|
| {
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
330
|
+
[key: string]: any;
|
|
331
|
+
level?: never;
|
|
332
|
+
}
|
|
344
333
|
): Promise<void>;
|
|
345
334
|
log(
|
|
346
335
|
message: string,
|
|
@@ -355,7 +344,13 @@ export declare class NangoAction {
|
|
|
355
344
|
getFlowAttributes<A = object>(): A | null;
|
|
356
345
|
paginate<T = any>(config: ProxyConfiguration): AsyncGenerator<T[], undefined, void>;
|
|
357
346
|
triggerAction<In = unknown, Out = object>(providerConfigKey: string, connectionId: string, actionName: string, input?: In): Promise<Out>;
|
|
347
|
+
zodValidateInput<T = any, Z = any>({ zodSchema, input }: { zodSchema: ZodSchema<Z>; input: T }): Promise<void>;
|
|
358
348
|
triggerSync(providerConfigKey: string, connectionId: string, syncName: string, fullResync?: boolean): Promise<void | string>;
|
|
349
|
+
/**
|
|
350
|
+
* Uncontrolled fetch is a regular fetch without retry or credentials injection.
|
|
351
|
+
* Only use that method when you want to access resources that are unrelated to the current connection/provider.
|
|
352
|
+
*/
|
|
353
|
+
uncontrolledFetch(options: { url: URL; method?: HTTP_METHOD; headers?: Record<string, string> | undefined; body?: string | null }): Promise<Response>;
|
|
359
354
|
private sendLogToPersist;
|
|
360
355
|
private logAPICall;
|
|
361
356
|
}
|
|
@@ -364,13 +359,13 @@ export declare class NangoSync extends NangoAction {
|
|
|
364
359
|
track_deletes: boolean;
|
|
365
360
|
logMessages?:
|
|
366
361
|
| {
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
362
|
+
counts: {
|
|
363
|
+
updated: number;
|
|
364
|
+
added: number;
|
|
365
|
+
deleted: number;
|
|
366
|
+
};
|
|
367
|
+
messages: unknown[];
|
|
368
|
+
}
|
|
374
369
|
| undefined;
|
|
375
370
|
rawSaveOutput?: Map<string, unknown[]>;
|
|
376
371
|
rawDeleteOutput?: Map<string, unknown[]>;
|
|
@@ -380,12 +375,13 @@ export declare class NangoSync extends NangoAction {
|
|
|
380
375
|
/**
|
|
381
376
|
* @deprecated please use batchSave
|
|
382
377
|
*/
|
|
383
|
-
batchSend<T
|
|
384
|
-
batchSave<T
|
|
385
|
-
batchDelete<T
|
|
386
|
-
batchUpdate<T
|
|
378
|
+
batchSend<T extends object>(results: T[], model: string): Promise<boolean | null>;
|
|
379
|
+
batchSave<T extends object>(results: T[], model: string): Promise<boolean | null>;
|
|
380
|
+
batchDelete<T extends object>(results: T[], model: string): Promise<boolean | null>;
|
|
381
|
+
batchUpdate<T extends object>(results: T[], model: string): Promise<boolean | null>;
|
|
387
382
|
getMetadata<T = Metadata>(): Promise<T>;
|
|
388
383
|
setMergingStrategy(merging: { strategy: 'ignore_if_modified_after' | 'override' }, model: string): Promise<void>;
|
|
384
|
+
getRecordsByIds<K = string | number, T = any>(ids: K[], model: string): Promise<Map<K, T>>;
|
|
389
385
|
}
|
|
390
386
|
/**
|
|
391
387
|
* @internal
|
|
@@ -394,4 +390,4 @@ export declare class NangoSync extends NangoAction {
|
|
|
394
390
|
* It has been split from the actual code to avoid making the code too dirty and to easily enable/disable tracing if there is an issue with it
|
|
395
391
|
*/
|
|
396
392
|
export declare function instrumentSDK(rawNango: NangoAction | NangoSync): NangoAction | NangoSync;
|
|
397
|
-
export {};
|
|
393
|
+
export { };
|
package/package.json
CHANGED
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nangohq/runner-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.54.0",
|
|
4
4
|
"description": "Nango's Runner SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@nangohq/node": "0.
|
|
9
|
-
"@nangohq/providers": "0.
|
|
8
|
+
"@nangohq/node": "0.54.0",
|
|
9
|
+
"@nangohq/providers": "0.54.0",
|
|
10
10
|
"ajv": "8.17.1",
|
|
11
11
|
"ajv-formats": "3.0.1",
|
|
12
12
|
"axios": "1.7.9",
|
|
13
13
|
"lodash-es": "4.17.21",
|
|
14
|
-
"parse-link-header": "2.0.0"
|
|
14
|
+
"parse-link-header": "2.0.0",
|
|
15
|
+
"undici": "6.21.1"
|
|
15
16
|
},
|
|
16
17
|
"devDependencies": {
|
|
17
|
-
"@nangohq/types": "0.
|
|
18
|
+
"@nangohq/types": "0.54.0",
|
|
18
19
|
"@types/json-schema": "7.0.15",
|
|
19
20
|
"json-schema": "0.4.0",
|
|
20
|
-
"vitest": "2.1.9"
|
|
21
|
+
"vitest": "2.1.9",
|
|
22
|
+
"zod": "3.24.1"
|
|
21
23
|
},
|
|
22
24
|
"files": [
|
|
23
25
|
"dist/",
|