@nangohq/runner-sdk 0.59.13 → 0.60.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.
package/dist/scripts.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { NangoActionBase } from './action.js';
2
2
  import type { NangoSyncBase } from './sync.js';
3
- import type { ZodMetadata } from './types.js';
3
+ import type { ZodMetadata, ZodModel } from './types.js';
4
4
  import type { NangoSyncEndpointV2 } from '@nangohq/types';
5
5
  import type { MaybePromise } from 'rollup';
6
6
  import type { z } from 'zod';
@@ -8,7 +8,7 @@ export type CreateAnyResponse = CreateSyncResponse<any, any> | CreateActionRespo
8
8
  export type { ActionError } from './errors.js';
9
9
  export type { NangoActionBase as NangoAction, ProxyConfiguration } from './action.js';
10
10
  export type { NangoSyncBase as NangoSync } from './sync.js';
11
- export interface CreateSyncProps<TModels extends Record<string, Zod.ZodObject<any>>, TMetadata extends ZodMetadata = never> {
11
+ export interface CreateSyncProps<TModels extends Record<string, ZodModel>, TMetadata extends ZodMetadata = never> {
12
12
  version?: string;
13
13
  description: string;
14
14
  endpoints: NangoSyncEndpointV2[];
@@ -23,13 +23,13 @@ export interface CreateSyncProps<TModels extends Record<string, Zod.ZodObject<an
23
23
  exec: (nango: NangoSyncBase<TModels, TMetadata>) => MaybePromise<void>;
24
24
  onWebhook?: (nango: NangoSyncBase<TModels, TMetadata>, payload: any) => MaybePromise<void>;
25
25
  }
26
- export interface CreateSyncResponse<TModels extends Record<string, Zod.ZodObject<any>>, TMetadata extends ZodMetadata = undefined> extends CreateSyncProps<TModels, TMetadata> {
26
+ export interface CreateSyncResponse<TModels extends Record<string, ZodModel>, TMetadata extends ZodMetadata = undefined> extends CreateSyncProps<TModels, TMetadata> {
27
27
  type: 'sync';
28
28
  }
29
29
  /**
30
30
  * Create a sync script
31
31
  */
32
- export declare function createSync<TModels extends Record<string, Zod.ZodObject<any>>, TMetadata extends ZodMetadata = undefined>(params: CreateSyncProps<TModels, TMetadata>): CreateSyncResponse<TModels, TMetadata>;
32
+ export declare function createSync<TModels extends Record<string, ZodModel>, TMetadata extends ZodMetadata = undefined>(params: CreateSyncProps<TModels, TMetadata>): CreateSyncResponse<TModels, TMetadata>;
33
33
  export interface CreateActionProps<TInput extends Zod.ZodTypeAny, TOutput extends Zod.ZodTypeAny, TMetadata extends ZodMetadata = undefined> {
34
34
  version?: string;
35
35
  description: string;
package/dist/sync.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { NangoActionBase } from './action.js';
2
2
  import type { ValidateDataError } from './dataValidation.js';
3
- import type { ZodMetadata } from './types.js';
3
+ import type { ZodMetadata, ZodModel } from './types.js';
4
4
  import type { MaybePromise, NangoProps } from '@nangohq/types';
5
5
  import type { z } from 'zod';
6
6
  export declare const BASE_VARIANT = "base";
7
- export declare abstract class NangoSyncBase<TModels extends Record<string, Zod.ZodObject<any>> = never, TMetadata extends ZodMetadata = never, TModelName extends keyof TModels = keyof TModels> extends NangoActionBase<TMetadata> {
7
+ export declare abstract class NangoSyncBase<TModels extends Record<string, ZodModel> = never, TMetadata extends ZodMetadata = never, TModelName extends keyof TModels = keyof TModels> extends NangoActionBase<TMetadata> {
8
8
  variant: string;
9
9
  lastSyncDate?: Date;
10
10
  track_deletes: boolean;
@@ -15,8 +15,8 @@ export declare abstract class NangoSyncBase<TModels extends Record<string, Zod.Z
15
15
  */
16
16
  batchSend(results: z.infer<TModels[TModelName]>[], model: TModelName): Promise<boolean | null>;
17
17
  abstract batchSave(results: z.infer<TModels[TModelName]>[], model: TModelName): MaybePromise<boolean>;
18
- abstract batchDelete(results: z.infer<TModels[TModelName]>[], model: TModelName): MaybePromise<boolean>;
19
- abstract batchUpdate(results: z.infer<TModels[TModelName]>[], model: TModelName): MaybePromise<boolean>;
18
+ abstract batchDelete<TModel extends z.infer<TModels[TModelName]>>(results: (Pick<TModel, 'id'> & Partial<TModel>)[], model: TModelName): MaybePromise<boolean>;
19
+ abstract batchUpdate<TModel extends z.infer<TModels[TModelName]>>(results: (Pick<TModel, 'id'> & Partial<TModel>)[], model: TModelName): MaybePromise<boolean>;
20
20
  abstract getRecordsByIds<K = string | number, T = any>(ids: K[], model: TModelName): MaybePromise<Map<K, T>>;
21
21
  abstract setMergingStrategy(merging: {
22
22
  strategy: 'ignore_if_modified_after' | 'override';
package/dist/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../lib/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAOnD,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AAEnC,MAAM,OAAgB,aAIpB,SAAQ,eAA0B;IACzB,OAAO,GAAG,YAAY,CAAC;IAE9B,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;QAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,KAAa;QAC9B,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,SAAS,CAAC,OAAuC,EAAE,KAAiB;QAC7E,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAYS,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,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,iBAAiB,IAAI,MAAM,EAAE,CAAC;gBACtE,OAAO,MAAM,CAAC,eAAe,CAAC;YAClC,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../lib/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAOnD,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AAEnC,MAAM,OAAgB,aAIpB,SAAQ,eAA0B;IACzB,OAAO,GAAG,YAAY,CAAC;IAE9B,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;QAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,KAAa;QAC9B,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,SAAS,CAAC,OAAuC,EAAE,KAAiB;QAC7E,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAkBS,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,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,iBAAiB,IAAI,MAAM,EAAE,CAAC;gBACtE,OAAO,MAAM,CAAC,eAAe,CAAC;YAClC,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ import { describe, expectTypeOf, it } from 'vitest';
3
+ import { z } from 'zod';
4
+ // Example Zod model
5
+ const UserModel = z.object({
6
+ id: z.string(),
7
+ name: z.string(),
8
+ email: z.string()
9
+ });
10
+ describe('NangoSyncBase type signatures', () => {
11
+ describe('batchSave', () => {
12
+ it('accepts a full model', () => {
13
+ expectTypeOf().parameter(0).toEqualTypeOf();
14
+ });
15
+ it('should not allow missing id', () => {
16
+ // @ts-expect-error: id is required
17
+ expectTypeOf().parameter(0).toEqualTypeOf();
18
+ });
19
+ });
20
+ describe('batchDelete', () => {
21
+ it('should accepts models with id', () => {
22
+ expectTypeOf().parameter(0).toEqualTypeOf();
23
+ });
24
+ it('should not allow missing id', () => {
25
+ // @ts-expect-error: id is required
26
+ expectTypeOf().parameter(0).toEqualTypeOf();
27
+ });
28
+ });
29
+ describe('batchUpdate', () => {
30
+ it('should accepts models with id', () => {
31
+ expectTypeOf().parameter(0).toEqualTypeOf();
32
+ });
33
+ it('should not allow missing id', () => {
34
+ // @ts-expect-error: id is required
35
+ expectTypeOf().parameter(0).toEqualTypeOf();
36
+ });
37
+ });
38
+ });
39
+ //# sourceMappingURL=sync.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.unit.test.js","sourceRoot":"","sources":["../lib/sync.unit.test.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,oBAAoB;AACpB,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAOH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC3C,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC5B,YAAY,EAAsC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAU,CAAC;QAC5F,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAInC,mCAAmC;YACnC,YAAY,EAAsC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAU,CAAC;QAC5F,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,YAAY,EAAwC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAwC,CAAC;QAC5H,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAInC,mCAAmC;YACnC,YAAY,EAAwC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAU,CAAC;QAC9F,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACrC,YAAY,EAAwC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAwC,CAAC;QAC5H,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAInC,mCAAmC;YACnC,YAAY,EAAwC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAU,CAAC;QAC9F,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1 +1,4 @@
1
1
  export type ZodMetadata = Zod.ZodObject<any> | Zod.ZodVoid | undefined;
2
+ export type ZodModel = Zod.ZodObject<{
3
+ id: Zod.ZodString;
4
+ }>;
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@nangohq/runner-sdk",
3
- "version": "0.59.13",
3
+ "version": "0.60.1",
4
4
  "description": "Nango's Runner SDK",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@nangohq/node": "0.59.13",
9
- "@nangohq/providers": "0.59.13",
8
+ "@nangohq/node": "0.60.1",
9
+ "@nangohq/providers": "0.60.1",
10
10
  "ajv": "8.17.1",
11
11
  "ajv-formats": "3.0.1",
12
12
  "lodash-es": "4.17.21",
13
13
  "parse-link-header": "2.0.0"
14
14
  },
15
15
  "devDependencies": {
16
- "@nangohq/types": "0.59.13",
16
+ "@nangohq/types": "0.60.1",
17
17
  "@types/json-schema": "7.0.15",
18
18
  "axios": "1.9.0",
19
19
  "json-schema": "0.4.0",