nango 0.71.12 → 0.71.14

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 (49) hide show
  1. package/dist/index.js +25 -18
  2. package/dist/index.js.map +1 -1
  3. package/dist/sdkExperimental.d.ts +1 -1
  4. package/dist/sdkScripts.d.ts +2 -2
  5. package/dist/sdkScripts.js +1 -1
  6. package/dist/sdkScripts.js.map +1 -1
  7. package/dist/services/botbuilderZod.d.ts +2 -0
  8. package/dist/services/botbuilderZod.js +43 -0
  9. package/dist/services/botbuilderZod.js.map +1 -0
  10. package/dist/services/dryrun.service.d.ts +13 -4
  11. package/dist/services/dryrun.service.js +201 -32
  12. package/dist/services/dryrun.service.js.map +1 -1
  13. package/dist/services/response-collector.service.d.ts +37 -2
  14. package/dist/services/response-collector.service.js +11 -1
  15. package/dist/services/response-collector.service.js.map +1 -1
  16. package/dist/services/sdk.d.ts +7 -1
  17. package/dist/services/sdk.js +89 -0
  18. package/dist/services/sdk.js.map +1 -1
  19. package/dist/services/test.service.d.ts +6 -0
  20. package/dist/services/test.service.js +33 -2
  21. package/dist/services/test.service.js.map +1 -1
  22. package/dist/services/test.service.unit.cli-test.js +33 -1
  23. package/dist/services/test.service.unit.cli-test.js.map +1 -1
  24. package/dist/templates/function-test-template.ejs +12 -0
  25. package/dist/testMocks/functions.d.ts +15 -0
  26. package/dist/testMocks/functions.js +114 -0
  27. package/dist/testMocks/functions.js.map +1 -0
  28. package/dist/testMocks/utils.d.ts +1 -0
  29. package/dist/testMocks/utils.js +2 -1
  30. package/dist/testMocks/utils.js.map +1 -1
  31. package/dist/testMocks/utils.unified.unit.cli-test.js +97 -2
  32. package/dist/testMocks/utils.unified.unit.cli-test.js.map +1 -1
  33. package/dist/version.d.ts +1 -1
  34. package/dist/version.js +1 -1
  35. package/dist/zeroYaml/compile.d.ts +1 -1
  36. package/dist/zeroYaml/compile.js +88 -20
  37. package/dist/zeroYaml/compile.js.map +1 -1
  38. package/dist/zeroYaml/compile.unit.cli-test.js +182 -5
  39. package/dist/zeroYaml/compile.unit.cli-test.js.map +1 -1
  40. package/dist/zeroYaml/definitions.d.ts +15 -6
  41. package/dist/zeroYaml/definitions.js +136 -21
  42. package/dist/zeroYaml/definitions.js.map +1 -1
  43. package/dist/zeroYaml/deploy.unit.cli-test.js +4 -2
  44. package/dist/zeroYaml/deploy.unit.cli-test.js.map +1 -1
  45. package/dist/zeroYaml/utils.d.ts +4 -1
  46. package/dist/zeroYaml/utils.js +6 -1
  47. package/dist/zeroYaml/utils.js.map +1 -1
  48. package/example/package.json +1 -1
  49. package/package.json +9 -9
@@ -2,6 +2,7 @@ import { Buffer } from 'buffer';
2
2
  import * as crypto from 'crypto';
3
3
  import { createRequire } from 'module';
4
4
  import fs from 'node:fs';
5
+ import path from 'node:path';
5
6
  import * as vm from 'node:vm';
6
7
  import * as url from 'url';
7
8
  import { AxiosError } from 'axios';
@@ -15,12 +16,27 @@ import * as nangoScript from '../sdkScripts.js';
15
16
  import { getConfig, getConnection, parseSecretKey, printDebug, resolveHostport } from '../utils.js';
16
17
  import { displayValidationError } from '../utils/errors.js';
17
18
  import { Err, Ok } from '../utils/result.js';
19
+ import { tsToJsPath } from '../zeroYaml/compile.js';
18
20
  import { parseIntegrationDefinitions } from '../zeroYaml/definitions.js';
19
21
  import { ReadableError } from '../zeroYaml/utils.js';
22
+ import { installBotbuilderZodCompat } from './botbuilderZod.js';
20
23
  import { DiagnosticsMonitor, formatDiagnostics } from './diagnostics-monitor.service.js';
21
24
  import { ResponseCollector } from './response-collector.service.js';
22
- import { NangoActionCLI, NangoSyncCLI } from './sdk.js';
25
+ import { createFunctionCLI, NangoActionCLI, NangoSyncCLI } from './sdk.js';
23
26
  const require = createRequire(import.meta.url);
27
+ const httpTriggerSchema = zod
28
+ .object({
29
+ method: zod.enum(['GET', 'POST', 'PATCH', 'PUT', 'DELETE', 'PROPFIND', 'REPORT']).default('POST'),
30
+ path: zod.string().startsWith('/').default('/'),
31
+ headers: zod
32
+ .record(zod.string(), zod.string())
33
+ .default({})
34
+ .transform((headers) => Object.fromEntries(Object.entries(headers).map(([key, value]) => [key.toLowerCase(), value]))),
35
+ query: zod.record(zod.string(), zod.string()).default({}),
36
+ body: zod.json().default(null),
37
+ subscriptions: zod.array(zod.string()).optional()
38
+ })
39
+ .strict();
24
40
  /**
25
41
  * To avoid pre-installing too much things we dynamically load package inside local package.json
26
42
  */
@@ -28,6 +44,9 @@ async function loadDynamicModule(moduleName) {
28
44
  try {
29
45
  // Resolve module path from user's working directory
30
46
  const modulePath = require.resolve(moduleName, { paths: [process.cwd()] });
47
+ if (moduleName === 'botbuilder') {
48
+ installBotbuilderZodCompat(modulePath);
49
+ }
31
50
  // Convert to file URL for dynamic import()
32
51
  const moduleUrl = url.pathToFileURL(modulePath).href;
33
52
  // Dynamically import the module
@@ -82,11 +101,6 @@ export class DryRunService {
82
101
  if (!variant) {
83
102
  variant = BASE_VARIANT;
84
103
  }
85
- if (!connectionId) {
86
- const message = 'Connection id is required';
87
- console.log(chalk.red(message));
88
- return Err(message);
89
- }
90
104
  const def = await parseIntegrationDefinitions({ fullPath: this.fullPath, debug });
91
105
  if (def.isErr()) {
92
106
  const message = def.error instanceof ReadableError ? def.error.toText() : def.error.message;
@@ -104,6 +118,7 @@ export class DryRunService {
104
118
  let isOnEventScript = false;
105
119
  // Find the appropriate script to run
106
120
  let scriptInfo;
121
+ let functionInfo;
107
122
  for (const integration of parsed.integrations) {
108
123
  if (options.optionalProviderConfigKey && integration.providerConfigKey !== options.optionalProviderConfigKey) {
109
124
  continue;
@@ -113,7 +128,7 @@ export class DryRunService {
113
128
  if (script.name !== syncName) {
114
129
  continue;
115
130
  }
116
- if (scriptInfo) {
131
+ if (scriptInfo || functionInfo) {
117
132
  const message = `Multiple integrations contain a script named "${syncName}". Please use "--integration-id"`;
118
133
  console.log(chalk.red(message));
119
134
  return Err(message);
@@ -121,8 +136,20 @@ export class DryRunService {
121
136
  scriptInfo = script;
122
137
  providerConfigKey = integration.providerConfigKey;
123
138
  }
124
- // If nothing that could still be a on-event script
125
- if (!scriptInfo) {
139
+ for (const fn of parsed.functions ?? []) {
140
+ if (fn.integrationId !== integration.providerConfigKey || fn.name !== syncName) {
141
+ continue;
142
+ }
143
+ if (scriptInfo || functionInfo) {
144
+ const message = `Multiple integrations contain a script named "${syncName}". Please use "--integration-id"`;
145
+ console.log(chalk.red(message));
146
+ return Err(message);
147
+ }
148
+ functionInfo = fn;
149
+ providerConfigKey = fn.integrationId;
150
+ }
151
+ // If nothing matched, this could still be an on-event script.
152
+ if (!scriptInfo && !functionInfo) {
126
153
  for (const script of Object.values(integration.onEventScripts).flat()) {
127
154
  if (script !== syncName) {
128
155
  continue;
@@ -137,7 +164,7 @@ export class DryRunService {
137
164
  }
138
165
  }
139
166
  }
140
- if ((!scriptInfo && !isOnEventScript) || !providerConfigKey) {
167
+ if ((!scriptInfo && !functionInfo && !isOnEventScript) || !providerConfigKey) {
141
168
  const message = `No script matched "${syncName}"${options.optionalProviderConfigKey ? ` for integration "${options.optionalProviderConfigKey}"` : ''}`;
142
169
  console.log(chalk.red(message));
143
170
  return Err(message);
@@ -145,10 +172,21 @@ export class DryRunService {
145
172
  if (debug && scriptInfo) {
146
173
  printDebug(`Found integration ${providerConfigKey}, ${scriptInfo.type} ${scriptInfo.name} `);
147
174
  }
148
- const nangoConnectionRes = await getConnection(providerConfigKey, connectionId, {
149
- 'Nango-Is-Sync': true,
150
- 'Nango-Is-Dry-Run': true
151
- }, debug);
175
+ if (debug && functionInfo) {
176
+ printDebug(`Found integration ${providerConfigKey}, function ${functionInfo.name} `);
177
+ }
178
+ const requiresConnection = functionInfo?.requires?.connection !== false;
179
+ if (requiresConnection && !connectionId) {
180
+ const message = 'Connection id is required';
181
+ console.log(chalk.red(message));
182
+ return Err(message);
183
+ }
184
+ const nangoConnectionRes = requiresConnection
185
+ ? await getConnection(providerConfigKey, connectionId, {
186
+ 'Nango-Is-Sync': true,
187
+ 'Nango-Is-Dry-Run': true
188
+ }, debug)
189
+ : Ok({ id: -1, connection_id: '', provider_config_key: providerConfigKey });
152
190
  if (nangoConnectionRes.isErr()) {
153
191
  console.log(chalk.red(nangoConnectionRes.error.message));
154
192
  return Err(nangoConnectionRes.error);
@@ -188,11 +226,48 @@ export class DryRunService {
188
226
  if (scriptInfo?.type === 'action') {
189
227
  type = 'actions';
190
228
  }
229
+ else if (functionInfo) {
230
+ type = 'functions';
231
+ }
191
232
  else if (isOnEventScript) {
192
233
  type = 'on-events';
193
234
  }
194
235
  let stubbedMetadata = undefined;
195
236
  let normalizedInput;
237
+ let httpRequest;
238
+ let httpSubscriptions;
239
+ if (options.triggerHttp !== undefined) {
240
+ if (actionInput !== undefined) {
241
+ const message = 'Use either --trigger-http or --input';
242
+ console.log(chalk.red(message));
243
+ return Err(message);
244
+ }
245
+ if (functionInfo?.trigger.kind !== 'http') {
246
+ const message = '--trigger-http is only supported for functions with an HTTP trigger';
247
+ console.log(chalk.red(message));
248
+ return Err(message);
249
+ }
250
+ const result = parseJsonArg(options.triggerHttp, 'trigger-http');
251
+ if (!result.ok) {
252
+ console.log(chalk.red(result.message));
253
+ return Err(result.message);
254
+ }
255
+ const parsedRequest = httpTriggerSchema.safeParse(result.value);
256
+ if (!parsedRequest.success) {
257
+ const message = `Invalid --trigger-http: ${parsedRequest.error.message}`;
258
+ console.log(chalk.red(message));
259
+ return Err(message);
260
+ }
261
+ const { subscriptions, ...request } = parsedRequest.data;
262
+ httpRequest = request;
263
+ httpSubscriptions = subscriptions;
264
+ normalizedInput = httpRequest.body;
265
+ }
266
+ if (actionInput !== undefined && functionInfo?.trigger.kind === 'schedule') {
267
+ const message = '--input is not supported for functions with a schedule trigger';
268
+ console.log(chalk.red(message));
269
+ return Err(message);
270
+ }
196
271
  if (actionInput) {
197
272
  const result = parseJsonArg(actionInput, 'input');
198
273
  if (!result.ok) {
@@ -231,9 +306,9 @@ export class DryRunService {
231
306
  id: -1,
232
307
  sync_name: syncName,
233
308
  file_location: '',
234
- models: scriptInfo?.output || [],
309
+ models: functionInfo?.model_schema_refs?.map((ref) => ref.replace('#/definitions/', '')) || scriptInfo?.output || [],
235
310
  model_schema: null,
236
- input: scriptInfo?.input || null,
311
+ input: functionInfo?.input_schema_ref?.replace('#/definitions/', '') || scriptInfo?.input || null,
237
312
  track_deletes: false,
238
313
  type: scriptInfo?.type || 'sync',
239
314
  active: true,
@@ -243,7 +318,7 @@ export class DryRunService {
243
318
  nango_config_id: 1,
244
319
  runs: '',
245
320
  webhook_subscriptions: [],
246
- models_json_schema: scriptInfo?.json_schema || null,
321
+ models_json_schema: functionInfo?.json_schema || scriptInfo?.json_schema || null,
247
322
  created_at: new Date(),
248
323
  updated_at: new Date(),
249
324
  attributes: {},
@@ -260,7 +335,7 @@ export class DryRunService {
260
335
  }
261
336
  const nangoProps = {
262
337
  isCLI: true,
263
- scriptType: scriptInfo?.type || 'sync',
338
+ scriptType: functionInfo ? 'function' : scriptInfo?.type || 'sync',
264
339
  host: resolveHostport(),
265
340
  connectionId: nangoConnection.connection_id,
266
341
  environmentId: -1,
@@ -300,8 +375,13 @@ export class DryRunService {
300
375
  const results = await this.runScript({
301
376
  syncName,
302
377
  nangoProps,
303
- loadLocation: './',
378
+ loadLocation: this.fullPath,
379
+ ...(functionInfo && { filePath: functionInfo.filePath }),
380
+ ...(functionInfo && { functionCapabilities: functionInfo.capabilities, functionTrigger: functionInfo.trigger }),
381
+ ...(functionInfo && { functionOutputSchemaRef: functionInfo.output_schema_ref }),
304
382
  input: normalizedInput,
383
+ ...(httpRequest && { httpRequest }),
384
+ ...(httpSubscriptions !== undefined && { httpSubscriptions }),
305
385
  stubbedMetadata,
306
386
  stubbedCheckpoint,
307
387
  ...(options.diagnostics && { diagnostics: options.diagnostics })
@@ -322,8 +402,8 @@ export class DryRunService {
322
402
  return Err(err instanceof Error ? err.message : JSON.stringify(err));
323
403
  }
324
404
  const resultOutput = [];
325
- if (type === 'actions') {
326
- if (!results.response) {
405
+ if (type === 'actions' || type === 'functions') {
406
+ if (!results.response || (type === 'functions' && results.response.output === undefined)) {
327
407
  console.log(chalk.gray('no output'));
328
408
  resultOutput.push(chalk.gray('no output'));
329
409
  }
@@ -371,12 +451,10 @@ export class DryRunService {
371
451
  }
372
452
  }
373
453
  if (options.saveResponses) {
374
- if (scriptInfo?.output) {
375
- for (const model of scriptInfo.output) {
376
- const modelFullName = nangoInstance.modelFullName(model);
377
- responseCollector.addBatchSave(modelFullName, nangoInstance.rawSaveOutput.get(modelFullName) || []);
378
- responseCollector.addBatchDelete(modelFullName, nangoInstance.rawDeleteOutput.get(modelFullName) || []);
379
- }
454
+ for (const model of syncConfig.models) {
455
+ const modelFullName = nangoInstance.modelFullName(model);
456
+ responseCollector.addBatchSave(modelFullName, nangoInstance.rawSaveOutput.get(modelFullName) || []);
457
+ responseCollector.addBatchDelete(modelFullName, nangoInstance.rawDeleteOutput.get(modelFullName) || []);
380
458
  }
381
459
  }
382
460
  }
@@ -386,6 +464,8 @@ export class DryRunService {
386
464
  filePath: testFilePath,
387
465
  input: normalizedInput,
388
466
  output: results.response?.output,
467
+ ...(httpRequest && { triggerHttp: httpRequest }),
468
+ ...(functionInfo && { trigger: results.response?.trigger, stubbedCheckpoint, variant }),
389
469
  stubbedMetadata: stubbedMetadata
390
470
  });
391
471
  console.log(chalk.green(`\n✅ Mocks saved to ${testFilePath}`));
@@ -399,14 +479,16 @@ export class DryRunService {
399
479
  return Err(err instanceof Error ? err : new Error('Dry run failed'));
400
480
  }
401
481
  }
402
- async runScript({ syncName, nangoProps, loadLocation, input, stubbedMetadata, stubbedCheckpoint, diagnostics }) {
482
+ async runScript({ syncName, nangoProps, loadLocation, filePath, functionCapabilities, functionTrigger, functionOutputSchemaRef, input, httpRequest, httpSubscriptions, stubbedMetadata, stubbedCheckpoint, diagnostics }) {
403
483
  const drs = new DryRunService({
404
484
  environment: nangoProps.environmentName,
405
485
  returnOutput: true,
406
486
  fullPath: this.fullPath,
407
487
  validation: this.validation
408
488
  });
409
- const nango = nangoProps.scriptType === 'sync' || nangoProps.scriptType === 'webhook'
489
+ const nango = nangoProps.scriptType === 'sync' ||
490
+ nangoProps.scriptType === 'webhook' ||
491
+ (nangoProps.scriptType === 'function' && functionCapabilities?.usesRecords)
410
492
  ? new NangoSyncCLI(nangoProps, { dryRunService: drs, stubbedMetadata, stubbedCheckpoint })
411
493
  : new NangoActionCLI(nangoProps, { dryRunService: drs, stubbedCheckpoint });
412
494
  const monitor = diagnostics ? new DiagnosticsMonitor() : null;
@@ -416,7 +498,8 @@ export class DryRunService {
416
498
  const script = getIntegrationFile({
417
499
  syncName,
418
500
  nangoProps,
419
- location: loadLocation
501
+ location: loadLocation,
502
+ ...(filePath && { filePath })
420
503
  });
421
504
  const isAction = nangoProps.scriptType === 'action';
422
505
  if (!script) {
@@ -442,8 +525,10 @@ export class DryRunService {
442
525
  require: (moduleName) => {
443
526
  switch (moduleName) {
444
527
  case 'url':
528
+ case 'node:url':
445
529
  return url;
446
530
  case 'crypto':
531
+ case 'node:crypto':
447
532
  return crypto;
448
533
  case 'nango':
449
534
  return nangoScript;
@@ -485,6 +570,87 @@ export class DryRunService {
485
570
  }
486
571
  // Start diagnostics monitoring before script execution
487
572
  monitor?.start();
573
+ if (nangoProps.scriptType === 'function') {
574
+ const payload = scriptExports.default;
575
+ if (payload.type !== 'function') {
576
+ throw new Error('Incorrect script loaded for function');
577
+ }
578
+ if (nangoProps.syncConfig.input) {
579
+ const valInput = validateData({
580
+ version: nangoProps.syncConfig.version || '1',
581
+ input,
582
+ modelName: nangoProps.syncConfig.input,
583
+ jsonSchema: nangoProps.syncConfig.models_json_schema
584
+ });
585
+ if (Array.isArray(valInput)) {
586
+ nango.log('Invalid function input. Use `--validation` option to see the details', { level: 'warn' });
587
+ if (nangoProps.runnerFlags.validateActionInput) {
588
+ return {
589
+ success: false,
590
+ response: null,
591
+ error: new InvalidActionInputSDKError({ data: input, validation: valInput, model: nangoProps.syncConfig.input })
592
+ };
593
+ }
594
+ }
595
+ }
596
+ const connection = payload.requires?.connection === false
597
+ ? undefined
598
+ : { connectionId: nangoProps.connectionId, integrationId: nangoProps.providerConfigKey };
599
+ let trigger;
600
+ switch (functionTrigger?.kind) {
601
+ case 'schedule':
602
+ trigger = { kind: 'schedule', input: null, ...(connection && { connection }) };
603
+ break;
604
+ case 'event': {
605
+ const requestedEvent = input && typeof input === 'object' && 'event' in input ? input['event'] : undefined;
606
+ const event = functionTrigger.events.find((candidate) => candidate === requestedEvent) ??
607
+ (requestedEvent === undefined && functionTrigger.events.length === 1 ? functionTrigger.events[0] : undefined);
608
+ if (!event) {
609
+ throw new Error(`Provide --input '{"event":"<event>"}' with one of: ${functionTrigger.events.join(', ')}`);
610
+ }
611
+ trigger = { kind: 'event', input: { event }, ...(connection && { connection }) };
612
+ break;
613
+ }
614
+ case 'http':
615
+ trigger = {
616
+ kind: 'http',
617
+ input: functionTrigger.debounce?.take === 'all' && !Array.isArray(input) ? [input] : input,
618
+ ...(connection && { connection }),
619
+ ...(httpSubscriptions !== undefined && { subscriptions: httpSubscriptions }),
620
+ request: httpRequest ?? { method: 'POST', path: '/', headers: {}, query: {}, body: input ?? null }
621
+ };
622
+ break;
623
+ default:
624
+ trigger = { kind: 'invoke', input, ...(connection && { connection }) };
625
+ }
626
+ const functionNango = createFunctionCLI({
627
+ nango,
628
+ capabilities: functionCapabilities ?? payload.capabilities,
629
+ requiresConnection: payload.requires?.connection !== false,
630
+ stubbedMetadata
631
+ });
632
+ const output = await payload.exec(functionNango, trigger);
633
+ if (functionOutputSchemaRef) {
634
+ const modelNameOutput = functionOutputSchemaRef.replace('#/definitions/', '');
635
+ const valOutput = validateData({
636
+ version: nangoProps.syncConfig.version || '1',
637
+ input: output,
638
+ modelName: modelNameOutput,
639
+ jsonSchema: nangoProps.syncConfig.models_json_schema
640
+ });
641
+ if (Array.isArray(valOutput)) {
642
+ nango.log('Invalid function output. Use `--validation` option to see the details', { level: 'warn' });
643
+ if (nangoProps.runnerFlags.validateActionOutput) {
644
+ return {
645
+ success: false,
646
+ response: null,
647
+ error: new InvalidActionOutputSDKError({ data: output, validation: valOutput, model: modelNameOutput })
648
+ };
649
+ }
650
+ }
651
+ }
652
+ return { success: true, error: null, response: { output, nango, trigger } };
653
+ }
488
654
  if (isAction) {
489
655
  // Validate action input against json schema
490
656
  const valInput = validateData({
@@ -655,9 +821,12 @@ function readFile(rawFilePath) {
655
821
  return null;
656
822
  }
657
823
  }
658
- function getIntegrationFile({ syncName, location, nangoProps }) {
824
+ function getIntegrationFile({ syncName, location, nangoProps, filePath }) {
659
825
  try {
660
- return fs.readFileSync(`${location}build/${nangoProps.providerConfigKey}_${nangoProps.scriptType}s_${syncName}.cjs`, 'utf8');
826
+ const bundleName = filePath
827
+ ? tsToJsPath(filePath.replace(/\.ts$/, '.js'))
828
+ : `${nangoProps.providerConfigKey}_${nangoProps.scriptType}s_${syncName}.cjs`;
829
+ return fs.readFileSync(path.join(location, 'build', bundleName), 'utf8');
661
830
  }
662
831
  catch (err) {
663
832
  console.log(err);
@@ -1 +1 @@
1
- {"version":3,"file":"dryrun.service.js","sourceRoot":"","sources":["../../lib/services/dryrun.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dryrun.service.js","sourceRoot":"","sources":["../../lib/services/dryrun.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,35 @@
1
- import type { Metadata } from '@nangohq/types';
1
+ import type { Checkpoint, FunctionTriggerDefinition, HttpRequest, Metadata, Trigger } from '@nangohq/types';
2
2
  import type { AxiosResponse } from 'axios';
3
+ interface ApiMockResponse {
4
+ response: unknown;
5
+ headers?: Record<string, string>;
6
+ status?: number;
7
+ hash?: string;
8
+ request?: {
9
+ params?: Record<string, unknown>;
10
+ headers?: Record<string, unknown>;
11
+ data?: unknown;
12
+ };
13
+ }
14
+ export type RecordedTrigger = Trigger<FunctionTriggerDefinition, unknown>;
15
+ export interface UnifiedMock {
16
+ input?: unknown;
17
+ output?: unknown;
18
+ triggerHttp?: HttpRequest;
19
+ trigger?: RecordedTrigger;
20
+ checkpoint?: Checkpoint;
21
+ variant?: string;
22
+ nango: {
23
+ getConnection?: {
24
+ connectionId: string;
25
+ provider: string;
26
+ };
27
+ getMetadata?: Metadata;
28
+ batchSave?: Record<string, unknown[]>;
29
+ batchDelete?: Record<string, unknown[]>;
30
+ };
31
+ api: Record<string, Record<string, ApiMockResponse | ApiMockResponse[]>>;
32
+ }
3
33
  export declare const FILTER_HEADERS: string[];
4
34
  export declare function isAxiosDefaultContentTypeForMockIdentity(headerKey: string, headerValue: unknown): boolean;
5
35
  export declare class ResponseCollector {
@@ -12,10 +42,14 @@ export declare class ResponseCollector {
12
42
  onAxiosRequestRejected(error: unknown): Promise<never>;
13
43
  addBatchSave(model: string, data: unknown[]): void;
14
44
  addBatchDelete(model: string, data: unknown[]): void;
15
- saveUnifiedMock({ filePath, input, output, stubbedMetadata }: {
45
+ saveUnifiedMock({ filePath, input, output, triggerHttp, trigger, stubbedCheckpoint, variant, stubbedMetadata }: {
16
46
  filePath: string;
17
47
  input?: unknown;
18
48
  output?: unknown;
49
+ triggerHttp?: HttpRequest;
50
+ trigger?: RecordedTrigger | undefined;
51
+ stubbedCheckpoint?: Checkpoint | undefined;
52
+ variant?: string | undefined;
19
53
  stubbedMetadata?: Metadata | undefined;
20
54
  }): void;
21
55
  private ensureDirectoryExists;
@@ -23,3 +57,4 @@ export declare class ResponseCollector {
23
57
  private sortEntries;
24
58
  private computeDataIdentity;
25
59
  }
60
+ export {};
@@ -28,6 +28,12 @@ export function isAxiosDefaultContentTypeForMockIdentity(headerKey, headerValue)
28
28
  const normalizedValue = String(headerValue).toLowerCase();
29
29
  return normalizedValue === 'application/json' || normalizedValue === 'undefined' || normalizedValue.startsWith('application/x-www-form-urlencoded');
30
30
  }
31
+ function filterHttpRequestHeaders(request) {
32
+ return {
33
+ ...request,
34
+ headers: Object.fromEntries(Object.entries(request.headers).filter(([key]) => !FILTER_HEADERS.includes(key.toLowerCase())))
35
+ };
36
+ }
31
37
  export class ResponseCollector {
32
38
  apiCalls = [];
33
39
  connectionInfo;
@@ -83,7 +89,7 @@ export class ResponseCollector {
83
89
  }
84
90
  this.batchDeleteData[model].push(...data);
85
91
  }
86
- saveUnifiedMock({ filePath, input, output, stubbedMetadata }) {
92
+ saveUnifiedMock({ filePath, input, output, triggerHttp, trigger, stubbedCheckpoint, variant, stubbedMetadata }) {
87
93
  const nangoData = {};
88
94
  if (this.connectionInfo) {
89
95
  nangoData.getConnection = this.connectionInfo;
@@ -101,6 +107,10 @@ export class ResponseCollector {
101
107
  const mockData = {
102
108
  input,
103
109
  output,
110
+ ...(triggerHttp && { triggerHttp: filterHttpRequestHeaders(triggerHttp) }),
111
+ ...(trigger && { trigger: trigger.kind === 'http' ? { ...trigger, request: filterHttpRequestHeaders(trigger.request) } : trigger }),
112
+ ...(stubbedCheckpoint !== undefined && { checkpoint: stubbedCheckpoint }),
113
+ ...(variant !== undefined && { variant }),
104
114
  nango: nangoData,
105
115
  api: {}
106
116
  };