@segment/actions-core 2.3.2-alpha.3 → 3.0.1-alpha.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.
Files changed (34) hide show
  1. package/dist/cjs/create-test-integration.d.ts +3 -1
  2. package/dist/cjs/create-test-integration.js +3 -2
  3. package/dist/cjs/create-test-integration.js.map +1 -1
  4. package/dist/cjs/destination-kit/action.d.ts +2 -0
  5. package/dist/cjs/destination-kit/action.js +2 -1
  6. package/dist/cjs/destination-kit/action.js.map +1 -1
  7. package/dist/cjs/destination-kit/index.d.ts +18 -7
  8. package/dist/cjs/destination-kit/index.js +49 -14
  9. package/dist/cjs/destination-kit/index.js.map +1 -1
  10. package/dist/cjs/destination-kit/parse-settings.d.ts +9 -0
  11. package/dist/cjs/destination-kit/parse-settings.js +32 -0
  12. package/dist/cjs/destination-kit/parse-settings.js.map +1 -0
  13. package/dist/cjs/destination-kit/types.d.ts +2 -0
  14. package/dist/cjs/index.d.ts +1 -0
  15. package/dist/cjs/index.js +3 -1
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/esm/create-test-integration.d.ts +3 -1
  18. package/dist/esm/create-test-integration.js +3 -2
  19. package/dist/esm/create-test-integration.js.map +1 -1
  20. package/dist/esm/destination-kit/action.d.ts +2 -0
  21. package/dist/esm/destination-kit/action.js +2 -1
  22. package/dist/esm/destination-kit/action.js.map +1 -1
  23. package/dist/esm/destination-kit/index.d.ts +18 -7
  24. package/dist/esm/destination-kit/index.js +49 -14
  25. package/dist/esm/destination-kit/index.js.map +1 -1
  26. package/dist/esm/destination-kit/parse-settings.d.ts +9 -0
  27. package/dist/esm/destination-kit/parse-settings.js +26 -0
  28. package/dist/esm/destination-kit/parse-settings.js.map +1 -0
  29. package/dist/esm/destination-kit/types.d.ts +2 -0
  30. package/dist/esm/index.d.ts +1 -0
  31. package/dist/esm/index.js +1 -0
  32. package/dist/esm/index.js.map +1 -1
  33. package/dist/tsconfig.build.tsbuildinfo +5178 -0
  34. package/package.json +10 -8
@@ -2,16 +2,18 @@ import { Destination } from './destination-kit';
2
2
  import type { DestinationDefinition } from './destination-kit';
3
3
  import type { JSONObject } from './json-object';
4
4
  import type { SegmentEvent } from './segment-event';
5
+ import { AuthTokens } from './destination-kit/parse-settings';
5
6
  interface InputData<Settings> {
6
7
  event?: Partial<SegmentEvent>;
7
8
  mapping?: JSONObject;
8
9
  settings?: Settings;
9
10
  useDefaultMappings?: boolean;
11
+ auth?: AuthTokens;
10
12
  }
11
13
  declare class TestDestination<T> extends Destination<T> {
12
14
  responses: Destination['responses'];
13
15
  constructor(destination: DestinationDefinition<T>);
14
- testAction(action: string, { event, mapping, settings, useDefaultMappings }: InputData<T>): Promise<Destination['responses']>;
16
+ testAction(action: string, { event, mapping, settings, useDefaultMappings, auth }: InputData<T>): Promise<Destination['responses']>;
15
17
  }
16
18
  export declare function createTestIntegration<T>(destination: DestinationDefinition<T>): TestDestination<T>;
17
19
  export {};
@@ -9,7 +9,7 @@ class TestDestination extends destination_kit_1.Destination {
9
9
  super(destination);
10
10
  this.responses = [];
11
11
  }
12
- async testAction(action, { event, mapping, settings, useDefaultMappings }) {
12
+ async testAction(action, { event, mapping, settings, useDefaultMappings, auth }) {
13
13
  mapping = mapping ?? {};
14
14
  if (useDefaultMappings) {
15
15
  const fields = this.definition.actions[action].fields;
@@ -19,7 +19,8 @@ class TestDestination extends destination_kit_1.Destination {
19
19
  await super.executeAction(action, {
20
20
  event: create_test_event_1.createTestEvent(event),
21
21
  mapping,
22
- settings: settings ?? {}
22
+ settings: settings ?? {},
23
+ auth
23
24
  });
24
25
  const responses = this.responses;
25
26
  this.responses = [];
@@ -1 +1 @@
1
- {"version":3,"file":"create-test-integration.js","sourceRoot":"","sources":["../../src/create-test-integration.ts"],"names":[],"mappings":";;;AAAA,2DAAqD;AACrD,uDAA+C;AAC/C,6CAAwC;AA8BxC,MAAM,eAAmB,SAAQ,6BAAc;IAG7C,YAAY,WAAqC;QAC/C,KAAK,CAAC,WAAW,CAAC,CAAA;QAHpB,cAAS,GAA6B,EAAE,CAAA;IAIxC,CAAC;IAGD,KAAK,CAAC,UAAU,CACd,MAAc,EACd,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAgB;QAE9D,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;QAEvB,IAAI,kBAAkB,EAAE;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;YACrD,MAAM,eAAe,GAAG,sBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YACpD,OAAO,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAgB,CAAA;SAC3D;QAED,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;YAChC,KAAK,EAAE,mCAAe,CAAC,KAAK,CAAC;YAC7B,OAAO;YACP,QAAQ,EAAE,QAAQ,IAAK,EAAQ;SAChC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QAEnB,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AAED,SAAgB,qBAAqB,CAAI,WAAqC;IAC5E,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,CAAA;AACzC,CAAC;AAFD,sDAEC"}
1
+ {"version":3,"file":"create-test-integration.js","sourceRoot":"","sources":["../../src/create-test-integration.ts"],"names":[],"mappings":";;;AAAA,2DAAqD;AACrD,uDAA+C;AAC/C,6CAAwC;AAgCxC,MAAM,eAAmB,SAAQ,6BAAc;IAG7C,YAAY,WAAqC;QAC/C,KAAK,CAAC,WAAW,CAAC,CAAA;QAHpB,cAAS,GAA6B,EAAE,CAAA;IAIxC,CAAC;IAGD,KAAK,CAAC,UAAU,CACd,MAAc,EACd,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAgB;QAEpE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;QAEvB,IAAI,kBAAkB,EAAE;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;YACrD,MAAM,eAAe,GAAG,sBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YACpD,OAAO,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAgB,CAAA;SAC3D;QAED,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;YAChC,KAAK,EAAE,mCAAe,CAAC,KAAK,CAAC;YAC7B,OAAO;YACP,QAAQ,EAAE,QAAQ,IAAK,EAAQ;YAC/B,IAAI;SACL,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QAEnB,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AAED,SAAgB,qBAAqB,CAAI,WAAqC;IAC5E,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,CAAA;AACzC,CAAC;AAFD,sDAEC"}
@@ -4,6 +4,7 @@ import createRequestClient from '../create-request-client';
4
4
  import { JSONLikeObject, JSONObject } from '../json-object';
5
5
  import type { DynamicFieldResponse, InputField, RequestExtension, ExecuteInput, Result } from './types';
6
6
  import type { JSONSchema4 } from 'json-schema';
7
+ import { AuthTokens } from './parse-settings';
7
8
  declare type MaybePromise<T> = T | Promise<T>;
8
9
  declare type RequestClient = ReturnType<typeof createRequestClient>;
9
10
  export declare type RequestFn<Settings, Payload, Return = any> = (request: RequestClient, data: ExecuteInput<Settings, Payload>) => MaybePromise<Return>;
@@ -34,6 +35,7 @@ export declare class Action<Settings, Payload extends JSONLikeObject> extends Ev
34
35
  data: unknown;
35
36
  settings: Settings;
36
37
  mapping: JSONObject;
38
+ auth: AuthTokens | undefined;
37
39
  }): Promise<Result[]>;
38
40
  executeDynamicField(field: string, data: ExecuteDynamicFieldInput<Settings, Payload>): unknown;
39
41
  private performRequest;
@@ -32,7 +32,8 @@ class Action extends events_1.EventEmitter {
32
32
  rawData: bundle.data,
33
33
  rawMapping: bundle.mapping,
34
34
  settings: bundle.settings,
35
- payload
35
+ payload,
36
+ auth: bundle.auth
36
37
  };
37
38
  const output = await this.performRequest(this.definition.perform, dataBundle);
38
39
  results.push({ output: output });
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/destination-kit/action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/destination-kit/action.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import type { JSONSchema4 } from 'json-schema';
2
2
  import { Action, ActionDefinition, RequestFn } from './action';
3
+ import { JSONLikeObject, JSONObject } from '../json-object';
4
+ import { SegmentEvent } from '../segment-event';
3
5
  import { fieldsToJsonSchema } from './fields-to-jsonschema';
4
6
  import { RequestClient } from '../create-request-client';
5
- import type { JSONLikeObject, JSONObject } from '../json-object';
6
- import type { SegmentEvent } from '../segment-event';
7
7
  import type { ModifiedResponse } from '../types';
8
8
  import type { InputField, RequestExtension, ExecuteInput, Result } from './types';
9
9
  import type { AllRequestOptions } from '../request-client';
10
+ import { AuthTokens } from './parse-settings';
10
11
  export type { ActionDefinition, ExecuteInput, RequestFn };
11
12
  export { fieldsToJsonSchema };
12
13
  export interface SubscriptionStats {
@@ -38,7 +39,7 @@ export interface Subscription {
38
39
  subscribe: string;
39
40
  mapping?: JSONObject;
40
41
  }
41
- export interface OAuth2ClientCredentials {
42
+ export interface OAuth2ClientCredentials extends AuthTokens {
42
43
  clientId: string;
43
44
  clientSecret: string;
44
45
  }
@@ -48,6 +49,11 @@ export interface RefreshAccessTokenResult {
48
49
  }
49
50
  interface AuthSettings<Settings> {
50
51
  settings: Settings;
52
+ auth: AuthTokens;
53
+ }
54
+ interface RefreshAuthSettings<Settings> {
55
+ settings: Settings;
56
+ auth: OAuth2ClientCredentials;
51
57
  }
52
58
  interface Authentication<Settings> {
53
59
  scheme: 'basic' | 'custom' | 'oauth2';
@@ -62,13 +68,14 @@ export interface BasicAuthentication<Settings> extends Authentication<Settings>
62
68
  }
63
69
  export interface OAuth2Authentication<Settings> extends Authentication<Settings> {
64
70
  scheme: 'oauth2';
65
- refreshAccessToken?: (request: RequestClient, input: AuthSettings<Settings>, oauthConfig: OAuth2ClientCredentials) => Promise<RefreshAccessTokenResult> | undefined;
71
+ refreshAccessToken?: (request: RequestClient, input: RefreshAuthSettings<Settings>) => Promise<RefreshAccessTokenResult>;
66
72
  }
67
73
  export declare type AuthenticationScheme<Settings = any> = BasicAuthentication<Settings> | CustomAuthentication<Settings> | OAuth2Authentication<Settings>;
68
74
  interface EventInput<Settings> {
69
75
  readonly event: SegmentEvent;
70
76
  readonly mapping: JSONObject;
71
77
  readonly settings: Settings;
78
+ readonly auth?: AuthTokens;
72
79
  }
73
80
  export interface DecoratedResponse extends ModifiedResponse {
74
81
  request: Request;
@@ -84,11 +91,15 @@ export declare class Destination<Settings = JSONObject> {
84
91
  readonly settingsSchema?: JSONSchema4;
85
92
  constructor(destination: DestinationDefinition<Settings>);
86
93
  testAuthentication(settings: Settings): Promise<void>;
87
- refreshAccessToken(settings: Settings, oauthClientCredentials: OAuth2ClientCredentials): Promise<RefreshAccessTokenResult> | undefined;
94
+ refreshAccessToken(settings: Settings, oauthData: OAuth2ClientCredentials): Promise<RefreshAccessTokenResult> | undefined;
88
95
  private partnerAction;
89
- protected executeAction(actionSlug: string, { event, mapping, settings }: EventInput<Settings>): Promise<Result[]>;
96
+ protected executeAction(actionSlug: string, { event, mapping, settings, auth }: EventInput<Settings>): Promise<Result[]>;
90
97
  private onSubscription;
91
- onEvent(event: SegmentEvent, settings: JSONObject, onComplete?: (stats: SubscriptionStats) => void): Promise<Result[]>;
98
+ onEvent(event: SegmentEvent, settings: JSONObject, options?: {
99
+ onTokenRefresh?: (tokens: RefreshAccessTokenResult) => void;
100
+ onComplete?: (stats: SubscriptionStats) => void;
101
+ }): Promise<Result[]>;
102
+ private onEventInternal;
92
103
  private getSubscriptions;
93
104
  private getDestinationSettings;
94
105
  }
@@ -10,8 +10,11 @@ const time_1 = require("../time");
10
10
  const fields_to_jsonschema_1 = require("./fields-to-jsonschema");
11
11
  Object.defineProperty(exports, "fieldsToJsonSchema", { enumerable: true, get: function () { return fields_to_jsonschema_1.fieldsToJsonSchema; } });
12
12
  const create_request_client_1 = __importDefault(require("../create-request-client"));
13
- const errors_1 = require("../errors");
14
13
  const schema_validation_1 = require("../schema-validation");
14
+ const errors_1 = require("../errors");
15
+ const parse_settings_1 = require("./parse-settings");
16
+ const RETRY_ATTEMPTS = 2;
17
+ const OAUTH2_SCHEME = 'oauth2';
15
18
  class Destination {
16
19
  constructor(destination) {
17
20
  this.definition = destination;
@@ -28,7 +31,10 @@ class Destination {
28
31
  }
29
32
  }
30
33
  async testAuthentication(settings) {
31
- const context = { settings, payload: {} };
34
+ const destinationSettings = this.getDestinationSettings(settings);
35
+ const auth = parse_settings_1.getAuthData(settings);
36
+ const data = { settings: destinationSettings, auth };
37
+ const context = { settings: destinationSettings, payload: {}, auth };
32
38
  if (this.settingsSchema) {
33
39
  schema_validation_1.validateSchema(settings, this.settingsSchema, `${this.name}:settings`);
34
40
  }
@@ -38,23 +44,27 @@ class Destination {
38
44
  const options = this.extendRequest?.(context) ?? {};
39
45
  const requestClient = create_request_client_1.default(options);
40
46
  try {
41
- await this.authentication.testAuthentication(requestClient, { settings });
47
+ await this.authentication.testAuthentication(requestClient, data);
42
48
  }
43
49
  catch (error) {
44
50
  throw new Error('Credentials are invalid');
45
51
  }
46
52
  }
47
- refreshAccessToken(settings, oauthClientCredentials) {
48
- if (this.authentication?.scheme !== 'oauth2') {
53
+ refreshAccessToken(settings, oauthData) {
54
+ if (this.authentication?.scheme !== OAUTH2_SCHEME) {
49
55
  throw new errors_1.IntegrationError('refreshAccessToken is only valid with oauth2 authentication scheme', 'NotImplemented', 501);
50
56
  }
51
- const context = { settings, payload: {} };
57
+ const context = {
58
+ settings,
59
+ payload: {},
60
+ auth: parse_settings_1.getAuthData(settings)
61
+ };
52
62
  const options = this.extendRequest?.(context) ?? {};
53
63
  const requestClient = create_request_client_1.default(options);
54
64
  if (!this.authentication?.refreshAccessToken) {
55
65
  return undefined;
56
66
  }
57
- return this.authentication.refreshAccessToken(requestClient, { settings }, oauthClientCredentials);
67
+ return this.authentication.refreshAccessToken(requestClient, { settings, auth: oauthData });
58
68
  }
59
69
  partnerAction(slug, definition) {
60
70
  const action = new action_1.Action(this.name, definition, this.extendRequest);
@@ -66,7 +76,7 @@ class Destination {
66
76
  this.actions[slug] = action;
67
77
  return this;
68
78
  }
69
- executeAction(actionSlug, { event, mapping, settings }) {
79
+ executeAction(actionSlug, { event, mapping, settings, auth }) {
70
80
  const action = this.actions[actionSlug];
71
81
  if (!action) {
72
82
  return Promise.resolve([]);
@@ -74,16 +84,18 @@ class Destination {
74
84
  return action.execute({
75
85
  mapping,
76
86
  data: event,
77
- settings
87
+ settings,
88
+ auth
78
89
  });
79
90
  }
80
- async onSubscription(subscription, event, settings, onComplete) {
91
+ async onSubscription(subscription, event, settings, auth, onComplete) {
81
92
  const subscriptionStartedAt = time_1.time();
82
93
  const actionSlug = subscription.partnerAction;
83
94
  const input = {
84
95
  event,
85
96
  mapping: subscription.mapping || {},
86
- settings
97
+ settings,
98
+ auth
87
99
  };
88
100
  let state = 'pending';
89
101
  let results = null;
@@ -135,10 +147,33 @@ class Destination {
135
147
  });
136
148
  }
137
149
  }
138
- async onEvent(event, settings, onComplete) {
150
+ async onEvent(event, settings, options) {
151
+ for (let i = 0; i < RETRY_ATTEMPTS; i++) {
152
+ try {
153
+ return await this.onEventInternal(event, settings, options?.onComplete);
154
+ }
155
+ catch (error) {
156
+ const statusCode = error?.status ?? error?.response?.status ?? 500;
157
+ if (!(statusCode === 401 && this.authentication?.scheme === OAUTH2_SCHEME)) {
158
+ throw error;
159
+ }
160
+ const destinationSettings = this.getDestinationSettings(settings);
161
+ const oauthSettings = parse_settings_1.getOAuth2Data(settings);
162
+ const newTokens = await this.refreshAccessToken(destinationSettings, oauthSettings);
163
+ if (!newTokens) {
164
+ throw new errors_1.InvalidAuthenticationError('Failed to refresh access token');
165
+ }
166
+ settings = parse_settings_1.updateOAuthSettings(settings, newTokens);
167
+ options?.onTokenRefresh?.(newTokens);
168
+ }
169
+ }
170
+ throw new errors_1.InvalidAuthenticationError();
171
+ }
172
+ async onEventInternal(event, settings, onComplete) {
139
173
  const subscriptions = this.getSubscriptions(settings);
140
174
  const destinationSettings = this.getDestinationSettings(settings);
141
- const promises = subscriptions.map((subscription) => this.onSubscription(subscription, event, destinationSettings, onComplete));
175
+ const authData = parse_settings_1.getAuthData(settings);
176
+ const promises = subscriptions.map((subscription) => this.onSubscription(subscription, event, destinationSettings, authData, onComplete));
142
177
  const results = await Promise.all(promises);
143
178
  return [].concat(...results);
144
179
  }
@@ -157,7 +192,7 @@ class Destination {
157
192
  return parsedSubscriptions;
158
193
  }
159
194
  getDestinationSettings(settings) {
160
- const { subcription, subscriptions, ...otherSettings } = settings;
195
+ const { subcription, subscriptions, oauth, ...otherSettings } = settings;
161
196
  return otherSettings;
162
197
  }
163
198
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destination-kit/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destination-kit/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { OAuth2ClientCredentials, RefreshAccessTokenResult } from '.';
2
+ import { JSONObject } from '../json-object';
3
+ export interface AuthTokens {
4
+ accessToken: string;
5
+ refreshToken: string;
6
+ }
7
+ export declare function getAuthData(settings: JSONObject): AuthTokens;
8
+ export declare function getOAuth2Data(settings: JSONObject): OAuth2ClientCredentials;
9
+ export declare function updateOAuthSettings(settings: JSONObject, oauthData: RefreshAccessTokenResult): JSONObject;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateOAuthSettings = exports.getOAuth2Data = exports.getAuthData = void 0;
4
+ function getAuthData(settings) {
5
+ const oauthData = getOAuth2Data(settings);
6
+ return { accessToken: oauthData.accessToken, refreshToken: oauthData.refreshToken };
7
+ }
8
+ exports.getAuthData = getAuthData;
9
+ function getOAuth2Data(settings) {
10
+ const { oauth } = settings;
11
+ return {
12
+ accessToken: oauth?.access_token,
13
+ refreshToken: oauth?.refresh_token,
14
+ clientId: oauth?.clientId,
15
+ clientSecret: oauth?.clientSecret
16
+ };
17
+ }
18
+ exports.getOAuth2Data = getOAuth2Data;
19
+ function updateOAuthSettings(settings, oauthData) {
20
+ const { oauth, ...otherSettings } = settings;
21
+ if (oauth) {
22
+ const newOauth = oauth;
23
+ newOauth.access_token = oauthData.accessToken;
24
+ if (oauthData.refreshToken) {
25
+ newOauth.refresh_token = oauthData.refreshToken;
26
+ }
27
+ otherSettings['oauth'] = newOauth;
28
+ }
29
+ return otherSettings;
30
+ }
31
+ exports.updateOAuthSettings = updateOAuthSettings;
32
+ //# sourceMappingURL=parse-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-settings.js","sourceRoot":"","sources":["../../../src/destination-kit/parse-settings.ts"],"names":[],"mappings":";;;AAuBA,SAAgB,WAAW,CAAC,QAAoB;IAC9C,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACzC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,CAAA;AACrF,CAAC;AAHD,kCAGC;AAOD,SAAgB,aAAa,CAAC,QAAoB;IAChD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAA;IAC1B,OAAO;QACL,WAAW,EAAG,KAAkC,EAAE,YAAY;QAC9D,YAAY,EAAG,KAAkC,EAAE,aAAa;QAChE,QAAQ,EAAG,KAAkC,EAAE,QAAQ;QACvD,YAAY,EAAG,KAAkC,EAAE,YAAY;KACrC,CAAA;AAC9B,CAAC;AARD,sCAQC;AAQD,SAAgB,mBAAmB,CAAC,QAAoB,EAAE,SAAmC;IAC3F,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,GAAG,QAAQ,CAAA;IAC5C,IAAI,KAAK,EAAE;QACT,MAAM,QAAQ,GAAG,KAAiC,CAAA;QAClD,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC,WAAW,CAAA;QAC7C,IAAI,SAAS,CAAC,YAAY,EAAE;YAC1B,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,YAAY,CAAA;SAChD;QACD,aAAa,CAAC,OAAO,CAAC,GAAG,QAAgC,CAAA;KAC1D;IACD,OAAO,aAAa,CAAA;AACtB,CAAC;AAXD,kDAWC"}
@@ -1,5 +1,6 @@
1
1
  import type { RequestOptions } from '../request-client';
2
2
  import type { JSONObject } from '../json-object';
3
+ import { AuthTokens } from './parse-settings';
3
4
  export declare type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
4
5
  export interface Result {
5
6
  output?: JSONObject | string | null | undefined;
@@ -10,6 +11,7 @@ export interface ExecuteInput<Settings, Payload> {
10
11
  readonly settings: Settings;
11
12
  payload: Payload;
12
13
  page?: string;
14
+ readonly auth?: AuthTokens;
13
15
  }
14
16
  export interface DynamicFieldResponse {
15
17
  body: {
@@ -1,4 +1,5 @@
1
1
  export { Destination, fieldsToJsonSchema } from './destination-kit';
2
+ export { getAuthData } from './destination-kit/parse-settings';
2
3
  export { transform } from './mapping-kit';
3
4
  export { createTestEvent } from './create-test-event';
4
5
  export { createTestIntegration } from './create-test-integration';
package/dist/cjs/index.js CHANGED
@@ -3,10 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Headers = exports.Response = exports.Request = exports.fetch = exports.isString = exports.isArray = exports.isObject = exports.realTypeOf = exports.duration = exports.time = exports.removeUndefined = exports.omit = exports.get = exports.RetryableError = exports.InvalidAuthenticationError = exports.IntegrationError = exports.defaultValues = exports.createTestIntegration = exports.createTestEvent = exports.transform = exports.fieldsToJsonSchema = exports.Destination = void 0;
6
+ exports.Headers = exports.Response = exports.Request = exports.fetch = exports.isString = exports.isArray = exports.isObject = exports.realTypeOf = exports.duration = exports.time = exports.removeUndefined = exports.omit = exports.get = exports.RetryableError = exports.InvalidAuthenticationError = exports.IntegrationError = exports.defaultValues = exports.createTestIntegration = exports.createTestEvent = exports.transform = exports.getAuthData = exports.fieldsToJsonSchema = exports.Destination = void 0;
7
7
  var destination_kit_1 = require("./destination-kit");
8
8
  Object.defineProperty(exports, "Destination", { enumerable: true, get: function () { return destination_kit_1.Destination; } });
9
9
  Object.defineProperty(exports, "fieldsToJsonSchema", { enumerable: true, get: function () { return destination_kit_1.fieldsToJsonSchema; } });
10
+ var parse_settings_1 = require("./destination-kit/parse-settings");
11
+ Object.defineProperty(exports, "getAuthData", { enumerable: true, get: function () { return parse_settings_1.getAuthData; } });
10
12
  var mapping_kit_1 = require("./mapping-kit");
11
13
  Object.defineProperty(exports, "transform", { enumerable: true, get: function () { return mapping_kit_1.transform; } });
12
14
  var create_test_event_1 = require("./create-test-event");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,qDAAmE;AAA1D,8GAAA,WAAW,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AACxC,6CAAyC;AAAhC,wGAAA,SAAS,OAAA;AAClB,yDAAqD;AAA5C,oHAAA,eAAe,OAAA;AACxB,qEAAiE;AAAxD,gIAAA,qBAAqB,OAAA;AAC9B,uCAA0C;AAAjC,yGAAA,aAAa,OAAA;AACtB,mCAAuF;AAA9E,0GAAA,gBAAgB,OAAA;AAAE,oHAAA,0BAA0B,OAAA;AAAE,wGAAA,cAAc,OAAA;AACrE,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AACb,uDAAoD;AAA3C,mHAAA,eAAe,OAAA;AACxB,+BAAuC;AAA9B,4FAAA,IAAI,OAAA;AAAE,gGAAA,QAAQ,OAAA;AAEvB,+CAAwE;AAA/D,0GAAA,UAAU,OAAA;AAAE,wGAAA,QAAQ,OAAA;AAAE,uGAAA,OAAO,OAAA;AAAE,wGAAA,QAAQ,OAAA;AAGhD,iCAAsE;AAA7D,+GAAA,OAAO,OAAS;AAAE,gGAAA,OAAO,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAAE,gGAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,qDAAmE;AAA1D,8GAAA,WAAW,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AACxC,mEAA8D;AAArD,6GAAA,WAAW,OAAA;AACpB,6CAAyC;AAAhC,wGAAA,SAAS,OAAA;AAClB,yDAAqD;AAA5C,oHAAA,eAAe,OAAA;AACxB,qEAAiE;AAAxD,gIAAA,qBAAqB,OAAA;AAC9B,uCAA0C;AAAjC,yGAAA,aAAa,OAAA;AACtB,mCAAuF;AAA9E,0GAAA,gBAAgB,OAAA;AAAE,oHAAA,0BAA0B,OAAA;AAAE,wGAAA,cAAc,OAAA;AACrE,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AACb,uDAAoD;AAA3C,mHAAA,eAAe,OAAA;AACxB,+BAAuC;AAA9B,4FAAA,IAAI,OAAA;AAAE,gGAAA,QAAQ,OAAA;AAEvB,+CAAwE;AAA/D,0GAAA,UAAU,OAAA;AAAE,wGAAA,QAAQ,OAAA;AAAE,uGAAA,OAAO,OAAA;AAAE,wGAAA,QAAQ,OAAA;AAGhD,iCAAsE;AAA7D,+GAAA,OAAO,OAAS;AAAE,gGAAA,OAAO,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAAE,gGAAA,OAAO,OAAA"}
@@ -2,16 +2,18 @@ import { Destination } from './destination-kit';
2
2
  import type { DestinationDefinition } from './destination-kit';
3
3
  import type { JSONObject } from './json-object';
4
4
  import type { SegmentEvent } from './segment-event';
5
+ import { AuthTokens } from './destination-kit/parse-settings';
5
6
  interface InputData<Settings> {
6
7
  event?: Partial<SegmentEvent>;
7
8
  mapping?: JSONObject;
8
9
  settings?: Settings;
9
10
  useDefaultMappings?: boolean;
11
+ auth?: AuthTokens;
10
12
  }
11
13
  declare class TestDestination<T> extends Destination<T> {
12
14
  responses: Destination['responses'];
13
15
  constructor(destination: DestinationDefinition<T>);
14
- testAction(action: string, { event, mapping, settings, useDefaultMappings }: InputData<T>): Promise<Destination['responses']>;
16
+ testAction(action: string, { event, mapping, settings, useDefaultMappings, auth }: InputData<T>): Promise<Destination['responses']>;
15
17
  }
16
18
  export declare function createTestIntegration<T>(destination: DestinationDefinition<T>): TestDestination<T>;
17
19
  export {};
@@ -6,7 +6,7 @@ class TestDestination extends Destination {
6
6
  super(destination);
7
7
  this.responses = [];
8
8
  }
9
- async testAction(action, { event, mapping, settings, useDefaultMappings }) {
9
+ async testAction(action, { event, mapping, settings, useDefaultMappings, auth }) {
10
10
  mapping = mapping ?? {};
11
11
  if (useDefaultMappings) {
12
12
  const fields = this.definition.actions[action].fields;
@@ -16,7 +16,8 @@ class TestDestination extends Destination {
16
16
  await super.executeAction(action, {
17
17
  event: createTestEvent(event),
18
18
  mapping,
19
- settings: settings ?? {}
19
+ settings: settings ?? {},
20
+ auth
20
21
  });
21
22
  const responses = this.responses;
22
23
  this.responses = [];
@@ -1 +1 @@
1
- {"version":3,"file":"create-test-integration.js","sourceRoot":"","sources":["../../src/create-test-integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AA8BxC,MAAM,eAAmB,SAAQ,WAAc;IAG7C,YAAY,WAAqC;QAC/C,KAAK,CAAC,WAAW,CAAC,CAAA;QAHpB,cAAS,GAA6B,EAAE,CAAA;IAIxC,CAAC;IAGD,KAAK,CAAC,UAAU,CACd,MAAc,EACd,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAgB;QAE9D,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;QAEvB,IAAI,kBAAkB,EAAE;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;YACrD,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YACpD,OAAO,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAgB,CAAA;SAC3D;QAED,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;YAChC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC;YAC7B,OAAO;YACP,QAAQ,EAAE,QAAQ,IAAK,EAAQ;SAChC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QAEnB,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB,CAAI,WAAqC;IAC5E,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,CAAA;AACzC,CAAC"}
1
+ {"version":3,"file":"create-test-integration.js","sourceRoot":"","sources":["../../src/create-test-integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAgCxC,MAAM,eAAmB,SAAQ,WAAc;IAG7C,YAAY,WAAqC;QAC/C,KAAK,CAAC,WAAW,CAAC,CAAA;QAHpB,cAAS,GAA6B,EAAE,CAAA;IAIxC,CAAC;IAGD,KAAK,CAAC,UAAU,CACd,MAAc,EACd,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAgB;QAEpE,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;QAEvB,IAAI,kBAAkB,EAAE;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAA;YACrD,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YACpD,OAAO,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAgB,CAAA;SAC3D;QAED,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;YAChC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC;YAC7B,OAAO;YACP,QAAQ,EAAE,QAAQ,IAAK,EAAQ;YAC/B,IAAI;SACL,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QAEnB,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB,CAAI,WAAqC;IAC5E,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,CAAA;AACzC,CAAC"}
@@ -4,6 +4,7 @@ import createRequestClient from '../create-request-client';
4
4
  import { JSONLikeObject, JSONObject } from '../json-object';
5
5
  import type { DynamicFieldResponse, InputField, RequestExtension, ExecuteInput, Result } from './types';
6
6
  import type { JSONSchema4 } from 'json-schema';
7
+ import { AuthTokens } from './parse-settings';
7
8
  declare type MaybePromise<T> = T | Promise<T>;
8
9
  declare type RequestClient = ReturnType<typeof createRequestClient>;
9
10
  export declare type RequestFn<Settings, Payload, Return = any> = (request: RequestClient, data: ExecuteInput<Settings, Payload>) => MaybePromise<Return>;
@@ -34,6 +35,7 @@ export declare class Action<Settings, Payload extends JSONLikeObject> extends Ev
34
35
  data: unknown;
35
36
  settings: Settings;
36
37
  mapping: JSONObject;
38
+ auth: AuthTokens | undefined;
37
39
  }): Promise<Result[]>;
38
40
  executeDynamicField(field: string, data: ExecuteDynamicFieldInput<Settings, Payload>): unknown;
39
41
  private performRequest;
@@ -26,7 +26,8 @@ export class Action extends EventEmitter {
26
26
  rawData: bundle.data,
27
27
  rawMapping: bundle.mapping,
28
28
  settings: bundle.settings,
29
- payload
29
+ payload,
30
+ auth: bundle.auth
30
31
  };
31
32
  const output = await this.performRequest(this.definition.perform, dataBundle);
32
33
  results.push({ output: output });
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/destination-kit/action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/destination-kit/action.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import type { JSONSchema4 } from 'json-schema';
2
2
  import { Action, ActionDefinition, RequestFn } from './action';
3
+ import { JSONLikeObject, JSONObject } from '../json-object';
4
+ import { SegmentEvent } from '../segment-event';
3
5
  import { fieldsToJsonSchema } from './fields-to-jsonschema';
4
6
  import { RequestClient } from '../create-request-client';
5
- import type { JSONLikeObject, JSONObject } from '../json-object';
6
- import type { SegmentEvent } from '../segment-event';
7
7
  import type { ModifiedResponse } from '../types';
8
8
  import type { InputField, RequestExtension, ExecuteInput, Result } from './types';
9
9
  import type { AllRequestOptions } from '../request-client';
10
+ import { AuthTokens } from './parse-settings';
10
11
  export type { ActionDefinition, ExecuteInput, RequestFn };
11
12
  export { fieldsToJsonSchema };
12
13
  export interface SubscriptionStats {
@@ -38,7 +39,7 @@ export interface Subscription {
38
39
  subscribe: string;
39
40
  mapping?: JSONObject;
40
41
  }
41
- export interface OAuth2ClientCredentials {
42
+ export interface OAuth2ClientCredentials extends AuthTokens {
42
43
  clientId: string;
43
44
  clientSecret: string;
44
45
  }
@@ -48,6 +49,11 @@ export interface RefreshAccessTokenResult {
48
49
  }
49
50
  interface AuthSettings<Settings> {
50
51
  settings: Settings;
52
+ auth: AuthTokens;
53
+ }
54
+ interface RefreshAuthSettings<Settings> {
55
+ settings: Settings;
56
+ auth: OAuth2ClientCredentials;
51
57
  }
52
58
  interface Authentication<Settings> {
53
59
  scheme: 'basic' | 'custom' | 'oauth2';
@@ -62,13 +68,14 @@ export interface BasicAuthentication<Settings> extends Authentication<Settings>
62
68
  }
63
69
  export interface OAuth2Authentication<Settings> extends Authentication<Settings> {
64
70
  scheme: 'oauth2';
65
- refreshAccessToken?: (request: RequestClient, input: AuthSettings<Settings>, oauthConfig: OAuth2ClientCredentials) => Promise<RefreshAccessTokenResult> | undefined;
71
+ refreshAccessToken?: (request: RequestClient, input: RefreshAuthSettings<Settings>) => Promise<RefreshAccessTokenResult>;
66
72
  }
67
73
  export declare type AuthenticationScheme<Settings = any> = BasicAuthentication<Settings> | CustomAuthentication<Settings> | OAuth2Authentication<Settings>;
68
74
  interface EventInput<Settings> {
69
75
  readonly event: SegmentEvent;
70
76
  readonly mapping: JSONObject;
71
77
  readonly settings: Settings;
78
+ readonly auth?: AuthTokens;
72
79
  }
73
80
  export interface DecoratedResponse extends ModifiedResponse {
74
81
  request: Request;
@@ -84,11 +91,15 @@ export declare class Destination<Settings = JSONObject> {
84
91
  readonly settingsSchema?: JSONSchema4;
85
92
  constructor(destination: DestinationDefinition<Settings>);
86
93
  testAuthentication(settings: Settings): Promise<void>;
87
- refreshAccessToken(settings: Settings, oauthClientCredentials: OAuth2ClientCredentials): Promise<RefreshAccessTokenResult> | undefined;
94
+ refreshAccessToken(settings: Settings, oauthData: OAuth2ClientCredentials): Promise<RefreshAccessTokenResult> | undefined;
88
95
  private partnerAction;
89
- protected executeAction(actionSlug: string, { event, mapping, settings }: EventInput<Settings>): Promise<Result[]>;
96
+ protected executeAction(actionSlug: string, { event, mapping, settings, auth }: EventInput<Settings>): Promise<Result[]>;
90
97
  private onSubscription;
91
- onEvent(event: SegmentEvent, settings: JSONObject, onComplete?: (stats: SubscriptionStats) => void): Promise<Result[]>;
98
+ onEvent(event: SegmentEvent, settings: JSONObject, options?: {
99
+ onTokenRefresh?: (tokens: RefreshAccessTokenResult) => void;
100
+ onComplete?: (stats: SubscriptionStats) => void;
101
+ }): Promise<Result[]>;
102
+ private onEventInternal;
92
103
  private getSubscriptions;
93
104
  private getDestinationSettings;
94
105
  }