nango 0.40.1 → 0.40.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/cli.d.ts +3 -3
  2. package/dist/cli.js +49 -93
  3. package/dist/cli.js.map +1 -1
  4. package/dist/constants.d.ts +0 -1
  5. package/dist/constants.js +0 -1
  6. package/dist/constants.js.map +1 -1
  7. package/dist/index.js +15 -10
  8. package/dist/index.js.map +1 -1
  9. package/dist/services/compile.service.d.ts +5 -6
  10. package/dist/services/compile.service.js +40 -51
  11. package/dist/services/compile.service.js.map +1 -1
  12. package/dist/services/compile.service.unit.test.js +3 -3
  13. package/dist/services/compile.service.unit.test.js.map +1 -1
  14. package/dist/services/config.service.d.ts +16 -7
  15. package/dist/services/config.service.js +84 -54
  16. package/dist/services/config.service.js.map +1 -1
  17. package/dist/services/config.service.unit.test.d.ts +1 -0
  18. package/dist/services/config.service.unit.test.js +147 -0
  19. package/dist/services/config.service.unit.test.js.map +1 -0
  20. package/dist/services/deploy.service.d.ts +3 -3
  21. package/dist/services/deploy.service.js +76 -66
  22. package/dist/services/deploy.service.js.map +1 -1
  23. package/dist/services/dryrun.service.js +10 -10
  24. package/dist/services/dryrun.service.js.map +1 -1
  25. package/dist/services/migration.service.js +23 -26
  26. package/dist/services/migration.service.js.map +1 -1
  27. package/dist/services/model.service.d.ts +38 -11
  28. package/dist/services/model.service.js +129 -174
  29. package/dist/services/model.service.js.map +1 -1
  30. package/dist/services/model.service.unit.test.d.ts +1 -0
  31. package/dist/services/model.service.unit.test.js +138 -0
  32. package/dist/services/model.service.unit.test.js.map +1 -0
  33. package/dist/services/parser.service.d.ts +1 -2
  34. package/dist/services/parser.service.js +3 -4
  35. package/dist/services/parser.service.js.map +1 -1
  36. package/dist/services/verification.service.d.ts +1 -1
  37. package/dist/services/verification.service.js +11 -11
  38. package/dist/services/verification.service.js.map +1 -1
  39. package/dist/sync.unit.cli-test.js +65 -143
  40. package/dist/sync.unit.cli-test.js.map +1 -1
  41. package/dist/templates/action.ejs +2 -47
  42. package/dist/templates/sync.ejs +1 -4
  43. package/dist/utils/layoutMode.d.ts +7 -0
  44. package/dist/utils/layoutMode.js +41 -0
  45. package/dist/utils/layoutMode.js.map +1 -0
  46. package/dist/utils.d.ts +0 -3
  47. package/dist/utils.js +4 -127
  48. package/dist/utils.js.map +1 -1
  49. package/lib/nango.yaml.schema.v2.json +183 -178
  50. package/package.json +7 -6
  51. package/dist/nango-sync.d.ts +0 -299
@@ -1,299 +0,0 @@
1
- /// <reference types="node" />
2
- import { Nango } from '@nangohq/node';
3
- import type { AxiosInstance } from 'axios';
4
- type LogLevel = 'info' | 'debug' | 'error' | 'warn' | 'http' | 'verbose' | 'silly';
5
- type ParamEncoder = (value: any, defaultEncoder: (value: any) => any) => any;
6
- interface GenericFormData {
7
- append(name: string, value: any, options?: any): any;
8
- }
9
- type SerializerVisitor = (this: GenericFormData, value: any, key: string | number, path: null | (string | number)[], helpers: FormDataVisitorHelpers) => boolean;
10
- type CustomParamsSerializer = (params: Record<string, any>, options?: ParamsSerializerOptions) => string;
11
- interface FormDataVisitorHelpers {
12
- defaultVisitor: SerializerVisitor;
13
- convertValue: (value: any) => any;
14
- isVisitable: (value: any) => boolean;
15
- }
16
- interface SerializerOptions {
17
- visitor?: SerializerVisitor;
18
- dots?: boolean;
19
- metaTokens?: boolean;
20
- indexes?: boolean | null;
21
- }
22
- interface ParamsSerializerOptions extends SerializerOptions {
23
- encode?: ParamEncoder;
24
- serialize?: CustomParamsSerializer;
25
- }
26
- export interface AxiosResponse<T = any, D = any> {
27
- data: T;
28
- status: number;
29
- statusText: string;
30
- headers: any;
31
- config: D;
32
- request?: any;
33
- }
34
- interface Pagination {
35
- type: string;
36
- limit?: number;
37
- response_path?: string;
38
- limit_name_in_request: string;
39
- }
40
- interface CursorPagination extends Pagination {
41
- cursor_path_in_response: string;
42
- cursor_name_in_request: string;
43
- }
44
- interface LinkPagination extends Pagination {
45
- link_rel_in_response_header?: string;
46
- link_path_in_response_body?: string;
47
- }
48
- interface OffsetPagination extends Pagination {
49
- offset_name_in_request: string;
50
- }
51
- interface RetryHeaderConfig {
52
- at?: string;
53
- after?: string;
54
- }
55
- export interface ProxyConfiguration {
56
- endpoint: string;
57
- providerConfigKey?: string;
58
- connectionId?: string;
59
- method?: 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE' | 'get' | 'post' | 'patch' | 'put' | 'delete';
60
- headers?: Record<string, string>;
61
- params?: string | Record<string, string | number>;
62
- paramsSerializer?: ParamsSerializerOptions;
63
- data?: unknown;
64
- retries?: number;
65
- baseUrlOverride?: string;
66
- paginate?: Partial<CursorPagination> | Partial<LinkPagination> | Partial<OffsetPagination>;
67
- retryHeader?: RetryHeaderConfig;
68
- responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream';
69
- retryOn?: number[] | null;
70
- }
71
- declare enum AuthModes {
72
- OAuth1 = "OAUTH1",
73
- OAuth2 = "OAUTH2",
74
- OAuth2CC = "OAUTH2_CC",
75
- Basic = "BASIC",
76
- ApiKey = "API_KEY",
77
- AppStore = "APP_STORE",
78
- App = "APP",
79
- Custom = "CUSTOM",
80
- None = "NONE"
81
- }
82
- interface OAuth1Token {
83
- oAuthToken: string;
84
- oAuthTokenSecret: string;
85
- }
86
- interface AppCredentials {
87
- type: AuthModes.App;
88
- access_token: string;
89
- expires_at?: Date | undefined;
90
- raw: Record<string, any>;
91
- }
92
- interface AppStoreCredentials {
93
- type?: AuthModes.AppStore;
94
- access_token: string;
95
- expires_at?: Date | undefined;
96
- raw: Record<string, any>;
97
- private_key: string;
98
- }
99
- interface BasicApiCredentials {
100
- type: AuthModes.Basic;
101
- username: string;
102
- password: string;
103
- }
104
- interface ApiKeyCredentials {
105
- type: AuthModes.ApiKey;
106
- apiKey: string;
107
- }
108
- interface CredentialsCommon<T = Record<string, any>> {
109
- type: AuthModes;
110
- raw: T;
111
- }
112
- interface OAuth2Credentials extends CredentialsCommon {
113
- type: AuthModes.OAuth2;
114
- access_token: string;
115
- refresh_token?: string;
116
- expires_at?: Date | undefined;
117
- }
118
- interface OAuth1Credentials extends CredentialsCommon {
119
- type: AuthModes.OAuth1;
120
- oauth_token: string;
121
- oauth_token_secret: string;
122
- }
123
- type UnauthCredentials = Record<string, never>;
124
- type AuthCredentials = OAuth2Credentials | OAuth1Credentials | BasicApiCredentials | ApiKeyCredentials | AppCredentials | AppStoreCredentials | UnauthCredentials;
125
- type Metadata = Record<string, unknown>;
126
- interface MetadataChangeResponse {
127
- metadata: Metadata;
128
- provider_config_key: string;
129
- connection_id: string | string[];
130
- }
131
- interface Connection {
132
- id?: number;
133
- created_at?: Date;
134
- updated_at?: Date;
135
- provider_config_key: string;
136
- connection_id: string;
137
- connection_config: Record<string, string>;
138
- environment_id: number;
139
- metadata?: Metadata | null;
140
- credentials_iv?: string | null;
141
- credentials_tag?: string | null;
142
- credentials: AuthCredentials;
143
- }
144
- export declare class ActionError<T = Record<string, unknown>> extends Error {
145
- type: string;
146
- payload?: Record<string, unknown>;
147
- constructor(payload?: T);
148
- }
149
- interface RunArgs {
150
- sync: string;
151
- connectionId: string;
152
- lastSyncDate?: string;
153
- useServerLastSyncDate?: boolean;
154
- input?: object;
155
- metadata?: Metadata;
156
- autoConfirm: boolean;
157
- debug: boolean;
158
- optionalEnvironment?: string;
159
- optionalProviderConfigKey?: string;
160
- }
161
- export interface DryRunServiceInterface {
162
- run: (options: RunArgs, debug?: boolean) => Promise<string | void>;
163
- }
164
- export interface NangoProps {
165
- host?: string;
166
- secretKey: string;
167
- accountId?: number;
168
- connectionId: string;
169
- environmentId?: number;
170
- environmentName?: string;
171
- activityLogId?: number | undefined;
172
- providerConfigKey: string;
173
- provider?: string;
174
- lastSyncDate?: Date;
175
- syncId?: string | undefined;
176
- nangoConnectionId?: number;
177
- syncJobId?: number | undefined;
178
- dryRun?: boolean;
179
- track_deletes?: boolean;
180
- attributes?: object | undefined;
181
- logMessages?: {
182
- counts: {
183
- updated: number;
184
- added: number;
185
- deleted: number;
186
- };
187
- messages: unknown[];
188
- } | undefined;
189
- stubbedMetadata?: Metadata | undefined;
190
- abortSignal?: AbortSignal;
191
- dryRunService?: DryRunServiceInterface;
192
- }
193
- interface EnvironmentVariable {
194
- name: string;
195
- value: string;
196
- }
197
- export declare const defaultPersistApi: AxiosInstance;
198
- export declare class NangoAction {
199
- protected nango: Nango;
200
- private attributes;
201
- protected persistApi: AxiosInstance;
202
- activityLogId?: number | undefined;
203
- syncId?: string;
204
- nangoConnectionId?: number;
205
- environmentId?: number;
206
- environmentName?: string;
207
- syncJobId?: number;
208
- dryRun?: boolean;
209
- abortSignal?: AbortSignal;
210
- dryRunService?: DryRunServiceInterface;
211
- connectionId: string;
212
- providerConfigKey: string;
213
- provider?: string;
214
- ActionError: typeof ActionError;
215
- private memoizedConnections;
216
- private memoizedIntegration;
217
- constructor(config: NangoProps, { persistApi }?: {
218
- persistApi: AxiosInstance;
219
- });
220
- protected stringify(): string;
221
- private proxyConfig;
222
- protected exitSyncIfAborted(): void;
223
- proxy<T = any>(config: ProxyConfiguration): Promise<AxiosResponse<T>>;
224
- get<T = any>(config: ProxyConfiguration): Promise<AxiosResponse<T>>;
225
- post<T = any>(config: ProxyConfiguration): Promise<AxiosResponse<T>>;
226
- put<T = any>(config: ProxyConfiguration): Promise<AxiosResponse<T>>;
227
- patch<T = any>(config: ProxyConfiguration): Promise<AxiosResponse<T>>;
228
- delete<T = any>(config: ProxyConfiguration): Promise<AxiosResponse<T>>;
229
- getToken(): Promise<string | OAuth1Token | BasicApiCredentials | ApiKeyCredentials | AppCredentials | AppStoreCredentials>;
230
- getConnection(providerConfigKeyOverride?: string, connectionIdOverride?: string): Promise<Connection>;
231
- setMetadata(metadata: Metadata): Promise<AxiosResponse<MetadataChangeResponse>>;
232
- updateMetadata(metadata: Metadata): Promise<AxiosResponse<MetadataChangeResponse>>;
233
- /**
234
- * @deprecated please use setMetadata instead.
235
- */
236
- setFieldMapping(fieldMapping: Record<string, string>): Promise<AxiosResponse<object>>;
237
- getMetadata<T = Metadata>(): Promise<T>;
238
- getWebhookURL(): Promise<string | undefined>;
239
- /**
240
- * @deprecated please use getMetadata instead.
241
- */
242
- getFieldMapping(): Promise<Metadata>;
243
- /**
244
- * Log
245
- * @desc Log a message to the activity log which shows up in the Nango Dashboard
246
- * note that the last argument can be an object with a level property to specify the log level
247
- * example: await nango.log('This is a log message', { level: 'error' })
248
- * error = red
249
- * warn = orange
250
- * info = white
251
- * debug = grey
252
- * http = green
253
- * silly = light green
254
- */
255
- log(message: any, options?: {
256
- level?: LogLevel;
257
- } | {
258
- [key: string]: any;
259
- level?: never;
260
- }): Promise<void>;
261
- log(message: string, ...args: [any, {
262
- level?: LogLevel;
263
- }]): Promise<void>;
264
- getEnvironmentVariables(): Promise<EnvironmentVariable[] | null>;
265
- getFlowAttributes<A = object>(): A | null;
266
- paginate<T = any>(config: ProxyConfiguration): AsyncGenerator<T[], undefined, void>;
267
- triggerAction<T = object>(providerConfigKey: string, connectionId: string, actionName: string, input?: unknown): Promise<T>;
268
- triggerSync(providerConfigKey: string, connectionId: string, syncName: string, fullResync?: boolean): Promise<void | string>;
269
- private sendLogToPersist;
270
- }
271
- export declare class NangoSync extends NangoAction {
272
- lastSyncDate?: Date;
273
- track_deletes: boolean;
274
- logMessages?: {
275
- counts: {
276
- updated: number;
277
- added: number;
278
- deleted: number;
279
- };
280
- messages: unknown[];
281
- } | undefined;
282
- stubbedMetadata?: Metadata | undefined;
283
- private batchSize;
284
- constructor(config: NangoProps);
285
- /**
286
- * @deprecated please use batchSave
287
- */
288
- batchSend<T = any>(results: T[], model: string): Promise<boolean | null>;
289
- batchSave<T = any>(results: T[], model: string): Promise<boolean | null>;
290
- batchDelete<T = any>(results: T[], model: string): Promise<boolean | null>;
291
- batchUpdate<T = any>(results: T[], model: string): Promise<boolean | null>;
292
- getMetadata<T = Metadata>(): Promise<T>;
293
- }
294
- /**
295
- * This function will enable tracing on the SDK
296
- * 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
297
- */
298
- export declare function instrumentSDK(rawNango: NangoAction | NangoSync): NangoAction | NangoSync;
299
- export {};