@segment/actions-core 3.8.0 → 3.8.2-canary.18
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/cjs/destination-kit/action.d.ts +11 -7
- package/dist/cjs/destination-kit/action.js +38 -1
- package/dist/cjs/destination-kit/action.js.map +1 -1
- package/dist/cjs/destination-kit/index.d.ts +16 -6
- package/dist/cjs/destination-kit/index.js +56 -46
- package/dist/cjs/destination-kit/index.js.map +1 -1
- package/dist/cjs/destination-kit/types.d.ts +1 -1
- package/dist/cjs/mapping-kit/index.d.ts +5 -1
- package/dist/cjs/mapping-kit/index.js +17 -4
- package/dist/cjs/mapping-kit/index.js.map +1 -1
- package/dist/cjs/retry.d.ts +6 -0
- package/dist/cjs/retry.js +22 -0
- package/dist/cjs/retry.js.map +1 -0
- package/dist/cjs/schema-validation.d.ts +6 -1
- package/dist/cjs/schema-validation.js +5 -2
- package/dist/cjs/schema-validation.js.map +1 -1
- package/dist/esm/destination-kit/action.d.ts +11 -7
- package/dist/esm/destination-kit/action.js +39 -2
- package/dist/esm/destination-kit/action.js.map +1 -1
- package/dist/esm/destination-kit/index.d.ts +16 -6
- package/dist/esm/destination-kit/index.js +56 -46
- package/dist/esm/destination-kit/index.js.map +1 -1
- package/dist/esm/destination-kit/types.d.ts +1 -1
- package/dist/esm/mapping-kit/index.d.ts +5 -1
- package/dist/esm/mapping-kit/index.js +15 -3
- package/dist/esm/mapping-kit/index.js.map +1 -1
- package/dist/esm/retry.d.ts +6 -0
- package/dist/esm/retry.js +18 -0
- package/dist/esm/retry.js.map +1 -0
- package/dist/esm/schema-validation.d.ts +6 -1
- package/dist/esm/schema-validation.js +5 -2
- package/dist/esm/schema-validation.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import createRequestClient from '../create-request-client';
|
|
4
4
|
import { JSONLikeObject, JSONObject } from '../json-object';
|
|
5
|
+
import { InputData } from '../mapping-kit';
|
|
5
6
|
import type { DynamicFieldResponse, InputField, RequestExtension, ExecuteInput, Result } from './types';
|
|
6
7
|
import type { JSONSchema4 } from 'json-schema';
|
|
7
8
|
import { AuthTokens } from './parse-settings';
|
|
@@ -21,24 +22,27 @@ export interface ActionDefinition<Settings, Payload = any> extends BaseActionDef
|
|
|
21
22
|
[K in keyof Payload]?: RequestFn<Settings, Payload, DynamicFieldResponse>;
|
|
22
23
|
};
|
|
23
24
|
perform: RequestFn<Settings, Payload>;
|
|
25
|
+
performBatch?: RequestFn<Settings, Payload[]>;
|
|
24
26
|
}
|
|
25
27
|
interface ExecuteDynamicFieldInput<Settings, Payload> {
|
|
26
28
|
settings: Settings;
|
|
27
29
|
payload: Payload;
|
|
28
30
|
page?: string;
|
|
29
31
|
}
|
|
32
|
+
interface ExecuteBundle<T = unknown, Data = unknown> {
|
|
33
|
+
data: Data;
|
|
34
|
+
settings: T;
|
|
35
|
+
mapping: JSONObject;
|
|
36
|
+
auth: AuthTokens | undefined;
|
|
37
|
+
}
|
|
30
38
|
export declare class Action<Settings, Payload extends JSONLikeObject> extends EventEmitter {
|
|
31
39
|
readonly definition: ActionDefinition<Settings, Payload>;
|
|
32
40
|
readonly destinationName: string;
|
|
33
41
|
readonly schema?: JSONSchema4;
|
|
34
42
|
private extendRequest;
|
|
35
|
-
constructor(destinationName: string, definition: ActionDefinition<Settings, Payload>, extendRequest?: RequestExtension<Settings
|
|
36
|
-
execute(bundle:
|
|
37
|
-
|
|
38
|
-
settings: Settings;
|
|
39
|
-
mapping: JSONObject;
|
|
40
|
-
auth: AuthTokens | undefined;
|
|
41
|
-
}): Promise<Result[]>;
|
|
43
|
+
constructor(destinationName: string, definition: ActionDefinition<Settings, Payload>, extendRequest?: RequestExtension<Settings>);
|
|
44
|
+
execute(bundle: ExecuteBundle<Settings, InputData | undefined>): Promise<Result[]>;
|
|
45
|
+
executeBatch(bundle: ExecuteBundle<Settings, InputData[]>): Promise<void>;
|
|
42
46
|
executeDynamicField(field: string, data: ExecuteDynamicFieldInput<Settings, Payload>): unknown;
|
|
43
47
|
private performRequest;
|
|
44
48
|
private createRequestClient;
|
|
@@ -25,7 +25,8 @@ class Action extends events_1.EventEmitter {
|
|
|
25
25
|
const payload = mapping_kit_1.transform(bundle.mapping, bundle.data);
|
|
26
26
|
results.push({ output: 'Mappings resolved' });
|
|
27
27
|
if (this.schema) {
|
|
28
|
-
|
|
28
|
+
const schemaKey = `${this.destinationName}:${this.definition.title}`;
|
|
29
|
+
schema_validation_1.validateSchema(payload, this.schema, { schemaKey });
|
|
29
30
|
results.push({ output: 'Payload validated' });
|
|
30
31
|
}
|
|
31
32
|
const dataBundle = {
|
|
@@ -39,6 +40,42 @@ class Action extends events_1.EventEmitter {
|
|
|
39
40
|
results.push({ output: output });
|
|
40
41
|
return results;
|
|
41
42
|
}
|
|
43
|
+
async executeBatch(bundle) {
|
|
44
|
+
let payloads = mapping_kit_1.transformBatch(bundle.mapping, bundle.data);
|
|
45
|
+
if (this.schema) {
|
|
46
|
+
const schema = this.schema;
|
|
47
|
+
const schemaKey = `${this.destinationName}:${this.definition.title}`;
|
|
48
|
+
payloads = payloads.filter((payload) => schema_validation_1.validateSchema(payload, schema, {
|
|
49
|
+
schemaKey,
|
|
50
|
+
throwIfInvalid: false
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
if (payloads.length === 0) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (this.definition.performBatch) {
|
|
57
|
+
const data = {
|
|
58
|
+
rawData: bundle.data,
|
|
59
|
+
rawMapping: bundle.mapping,
|
|
60
|
+
settings: bundle.settings,
|
|
61
|
+
payload: payloads,
|
|
62
|
+
auth: bundle.auth
|
|
63
|
+
};
|
|
64
|
+
await this.performRequest(this.definition.performBatch, data);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const promises = payloads.map((payload, i) => {
|
|
68
|
+
const data = {
|
|
69
|
+
rawData: bundle.data[i],
|
|
70
|
+
rawMapping: bundle.mapping,
|
|
71
|
+
settings: bundle.settings,
|
|
72
|
+
payload,
|
|
73
|
+
auth: bundle.auth
|
|
74
|
+
};
|
|
75
|
+
return this.performRequest(this.definition.perform, data);
|
|
76
|
+
});
|
|
77
|
+
await Promise.all(promises);
|
|
78
|
+
}
|
|
42
79
|
executeDynamicField(field, data) {
|
|
43
80
|
const fn = this.definition.dynamicFields?.[field];
|
|
44
81
|
if (typeof fn !== 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/destination-kit/action.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAqC;AACrC,qFAA0D;AAE1D,
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/destination-kit/action.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAqC;AACrC,qFAA0D;AAE1D,gDAAqE;AACrE,iEAA2D;AAC3D,oCAAmC;AAKnC,4DAAqD;AAwErD,MAAa,MAAiD,SAAQ,qBAAY;IAMhF,YACE,eAAuB,EACvB,UAA+C,EAC/C,aAA0C;QAE1C,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAGlC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAC/C,IAAI,CAAC,MAAM,GAAG,yCAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;SACpD;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAsD;QAElE,MAAM,OAAO,GAAa,EAAE,CAAA;QAG5B,MAAM,OAAO,GAAG,uBAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAY,CAAA;QACjE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAA;QAG7C,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;YACpE,kCAAc,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;YACnD,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAA;SAC9C;QAGD,MAAM,UAAU,GAAG;YACjB,OAAO,EAAE,MAAM,CAAC,IAAI;YACpB,UAAU,EAAE,MAAM,CAAC,OAAO;YAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO;YACP,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAA;QAGD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAC7E,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAoB,EAAE,CAAC,CAAA;QAE9C,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAA4C;QAC7D,IAAI,QAAQ,GAAG,4BAAc,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAc,CAAA;QAGvE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YAC1B,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;YACpE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CACrC,kCAAc,CAAC,OAAO,EAAE,MAAM,EAAE;gBAC9B,SAAS;gBACT,cAAc,EAAE,KAAK;aACtB,CAAC,CACH,CAAA;SACF;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,OAAM;SACP;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;YAChC,MAAM,IAAI,GAAG;gBACX,OAAO,EAAE,MAAM,CAAC,IAAI;gBACpB,UAAU,EAAE,MAAM,CAAC,OAAO;gBAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAA;YACD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;YAC7D,OAAM;SACP;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG;gBACX,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvB,UAAU,EAAE,MAAM,CAAC,OAAO;gBAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO;gBACP,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAA;YACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;QAEF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC;IAED,mBAAmB,CAAC,KAAa,EAAE,IAAiD;QAClF,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAA;QACjD,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;YAC5B,OAAO;gBACL,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE;aACf,CAAA;SACF;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IAOO,KAAK,CAAC,cAAc,CAC1B,SAAiC,EACjC,IAA+B;QAE/B,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;QACrD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAGO,mBAAmB,CAAC,IAAiC;QAE3D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;QAChD,OAAO,+BAAmB,CAAC,OAAO,EAAE;YAClC,aAAa,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/C,CAAC,CAAA;IACJ,CAAC;IAGO,aAAa,CAAC,OAAgB,EAAE,OAA0B,EAAE,QAAkB;QAGpF,MAAM,gBAAgB,GAAQ,QAAQ,CAAA;QACtC,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAA;QAClC,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAA;QAElC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAA;QACvC,OAAO,gBAAgB,CAAA;IACzB,CAAC;IAEO,aAAa,CAAC,QAAiB;QAKrC,IAAI,QAAQ,YAAY,gBAAQ,EAAE;YAChC,OAAQ,QAA6B,CAAC,IAAI,IAAK,QAA6B,CAAC,OAAO,CAAA;SACrF;QAGD,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF;AA7JD,wBA6JC"}
|
|
@@ -16,7 +16,6 @@ export interface SubscriptionStats {
|
|
|
16
16
|
destination: string;
|
|
17
17
|
action: string;
|
|
18
18
|
subscribe: string;
|
|
19
|
-
state: string;
|
|
20
19
|
input: JSONLikeObject;
|
|
21
20
|
output: Result[] | null;
|
|
22
21
|
}
|
|
@@ -81,10 +80,20 @@ interface EventInput<Settings> {
|
|
|
81
80
|
readonly settings: Settings;
|
|
82
81
|
readonly auth?: AuthTokens;
|
|
83
82
|
}
|
|
83
|
+
interface BatchEventInput<Settings> {
|
|
84
|
+
readonly events: SegmentEvent[];
|
|
85
|
+
readonly mapping: JSONObject;
|
|
86
|
+
readonly settings: Settings;
|
|
87
|
+
readonly auth?: AuthTokens;
|
|
88
|
+
}
|
|
84
89
|
export interface DecoratedResponse extends ModifiedResponse {
|
|
85
90
|
request: Request;
|
|
86
91
|
options: AllRequestOptions;
|
|
87
92
|
}
|
|
93
|
+
interface OnEventOptions {
|
|
94
|
+
onTokenRefresh?: (tokens: RefreshAccessTokenResult) => void;
|
|
95
|
+
onComplete?: (stats: SubscriptionStats) => void;
|
|
96
|
+
}
|
|
88
97
|
export declare class Destination<Settings = JSONObject> {
|
|
89
98
|
readonly definition: DestinationDefinition<Settings>;
|
|
90
99
|
readonly name: string;
|
|
@@ -98,12 +107,13 @@ export declare class Destination<Settings = JSONObject> {
|
|
|
98
107
|
refreshAccessToken(settings: Settings, oauthData: OAuth2ClientCredentials): Promise<RefreshAccessTokenResult> | undefined;
|
|
99
108
|
private partnerAction;
|
|
100
109
|
protected executeAction(actionSlug: string, { event, mapping, settings, auth }: EventInput<Settings>): Promise<Result[]>;
|
|
110
|
+
executeBatch(actionSlug: string, { events, mapping, settings, auth }: BatchEventInput<Settings>): Promise<{
|
|
111
|
+
output: string;
|
|
112
|
+
}[]>;
|
|
101
113
|
private onSubscription;
|
|
102
|
-
onEvent(event: SegmentEvent, settings: JSONObject, options?:
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}): Promise<Result[]>;
|
|
106
|
-
private onEventInternal;
|
|
114
|
+
onEvent(event: SegmentEvent, settings: JSONObject, options?: OnEventOptions): Promise<Result[]>;
|
|
115
|
+
onBatch(events: SegmentEvent[], settings: JSONObject, options?: OnEventOptions): Promise<Result[]>;
|
|
116
|
+
private onSubscriptions;
|
|
107
117
|
private getSubscriptions;
|
|
108
118
|
private getDestinationSettings;
|
|
109
119
|
}
|
|
@@ -13,7 +13,7 @@ const create_request_client_1 = __importDefault(require("../create-request-clien
|
|
|
13
13
|
const schema_validation_1 = require("../schema-validation");
|
|
14
14
|
const errors_1 = require("../errors");
|
|
15
15
|
const parse_settings_1 = require("./parse-settings");
|
|
16
|
-
const
|
|
16
|
+
const retry_1 = require("../retry");
|
|
17
17
|
const OAUTH2_SCHEME = 'oauth2';
|
|
18
18
|
class Destination {
|
|
19
19
|
constructor(destination) {
|
|
@@ -34,9 +34,9 @@ class Destination {
|
|
|
34
34
|
const destinationSettings = this.getDestinationSettings(settings);
|
|
35
35
|
const auth = parse_settings_1.getAuthData(settings);
|
|
36
36
|
const data = { settings: destinationSettings, auth };
|
|
37
|
-
const context = { settings: destinationSettings, payload:
|
|
37
|
+
const context = { settings: destinationSettings, payload: undefined, auth };
|
|
38
38
|
if (this.settingsSchema) {
|
|
39
|
-
schema_validation_1.validateSchema(settings, this.settingsSchema, `${this.name}:settings`);
|
|
39
|
+
schema_validation_1.validateSchema(settings, this.settingsSchema, { schemaKey: `${this.name}:settings` });
|
|
40
40
|
}
|
|
41
41
|
if (!this.authentication?.testAuthentication) {
|
|
42
42
|
return;
|
|
@@ -56,7 +56,7 @@ class Destination {
|
|
|
56
56
|
}
|
|
57
57
|
const context = {
|
|
58
58
|
settings,
|
|
59
|
-
payload:
|
|
59
|
+
payload: undefined,
|
|
60
60
|
auth: parse_settings_1.getAuthData(settings)
|
|
61
61
|
};
|
|
62
62
|
const options = this.extendRequest?.(context) ?? {};
|
|
@@ -76,10 +76,10 @@ class Destination {
|
|
|
76
76
|
this.actions[slug] = action;
|
|
77
77
|
return this;
|
|
78
78
|
}
|
|
79
|
-
executeAction(actionSlug, { event, mapping, settings, auth }) {
|
|
79
|
+
async executeAction(actionSlug, { event, mapping, settings, auth }) {
|
|
80
80
|
const action = this.actions[actionSlug];
|
|
81
81
|
if (!action) {
|
|
82
|
-
return
|
|
82
|
+
return [];
|
|
83
83
|
}
|
|
84
84
|
return action.execute({
|
|
85
85
|
mapping,
|
|
@@ -88,41 +88,52 @@ class Destination {
|
|
|
88
88
|
auth
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
|
-
async
|
|
91
|
+
async executeBatch(actionSlug, { events, mapping, settings, auth }) {
|
|
92
|
+
const action = this.actions[actionSlug];
|
|
93
|
+
if (!action) {
|
|
94
|
+
return [];
|
|
95
|
+
}
|
|
96
|
+
await action.executeBatch({
|
|
97
|
+
mapping,
|
|
98
|
+
data: events,
|
|
99
|
+
settings,
|
|
100
|
+
auth
|
|
101
|
+
});
|
|
102
|
+
return [{ output: 'successfully processed batch of events' }];
|
|
103
|
+
}
|
|
104
|
+
async onSubscription(subscription, events, settings, auth, onComplete) {
|
|
92
105
|
const subscriptionStartedAt = time_1.time();
|
|
93
106
|
const actionSlug = subscription.partnerAction;
|
|
94
107
|
const input = {
|
|
95
|
-
event,
|
|
96
108
|
mapping: subscription.mapping || {},
|
|
97
109
|
settings,
|
|
98
110
|
auth
|
|
99
111
|
};
|
|
100
|
-
let state = 'pending';
|
|
101
112
|
let results = null;
|
|
102
113
|
try {
|
|
103
114
|
if (!subscription.subscribe || typeof subscription.subscribe !== 'string') {
|
|
104
|
-
state = 'skipped';
|
|
105
115
|
results = [{ output: 'invalid subscription' }];
|
|
106
116
|
return results;
|
|
107
117
|
}
|
|
108
118
|
const parsedSubscription = destination_subscriptions_1.parseFql(subscription.subscribe);
|
|
109
119
|
if (parsedSubscription.error) {
|
|
110
|
-
state = 'skipped';
|
|
111
120
|
results = [{ output: `invalid subscription : ${parsedSubscription.error.message}` }];
|
|
112
121
|
return results;
|
|
113
122
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
123
|
+
events = Array.isArray(events) ? events : [events];
|
|
124
|
+
const subscribedEvents = events.filter((event) => destination_subscriptions_1.validate(parsedSubscription, event));
|
|
125
|
+
if (subscribedEvents.length === 1) {
|
|
126
|
+
return await this.executeAction(actionSlug, { ...input, event: subscribedEvents[0] });
|
|
127
|
+
}
|
|
128
|
+
else if (subscribedEvents.length > 1) {
|
|
129
|
+
return await this.executeBatch(actionSlug, { ...input, events: subscribedEvents });
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
117
132
|
results = [{ output: 'not subscribed' }];
|
|
118
133
|
return results;
|
|
119
134
|
}
|
|
120
|
-
results = await this.executeAction(actionSlug, input);
|
|
121
|
-
state = 'done';
|
|
122
|
-
return results;
|
|
123
135
|
}
|
|
124
136
|
catch (error) {
|
|
125
|
-
state = 'errored';
|
|
126
137
|
results = [{ error }];
|
|
127
138
|
if (error.name === 'AggregateAjvError' || error.name === 'ValidationError') {
|
|
128
139
|
error.status = 400;
|
|
@@ -137,9 +148,8 @@ class Destination {
|
|
|
137
148
|
destination: this.name,
|
|
138
149
|
action: actionSlug,
|
|
139
150
|
subscribe: subscription.subscribe,
|
|
140
|
-
state,
|
|
141
151
|
input: {
|
|
142
|
-
|
|
152
|
+
data: events,
|
|
143
153
|
mapping: input.mapping,
|
|
144
154
|
settings: input.settings
|
|
145
155
|
},
|
|
@@ -147,35 +157,35 @@ class Destination {
|
|
|
147
157
|
});
|
|
148
158
|
}
|
|
149
159
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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();
|
|
160
|
+
onEvent(event, settings, options) {
|
|
161
|
+
return this.onSubscriptions(event, settings, options);
|
|
162
|
+
}
|
|
163
|
+
onBatch(events, settings, options) {
|
|
164
|
+
return this.onSubscriptions(events, settings, options);
|
|
171
165
|
}
|
|
172
|
-
async
|
|
166
|
+
async onSubscriptions(data, settings, options) {
|
|
173
167
|
const subscriptions = this.getSubscriptions(settings);
|
|
174
168
|
const destinationSettings = this.getDestinationSettings(settings);
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
169
|
+
const run = async () => {
|
|
170
|
+
const authData = parse_settings_1.getAuthData(settings);
|
|
171
|
+
const promises = subscriptions.map((subscription) => this.onSubscription(subscription, data, destinationSettings, authData, options?.onComplete));
|
|
172
|
+
const results = await Promise.all(promises);
|
|
173
|
+
return [].concat(...results);
|
|
174
|
+
};
|
|
175
|
+
const onFailedAttempt = async (error) => {
|
|
176
|
+
const statusCode = error?.status ?? error?.response?.status ?? 500;
|
|
177
|
+
if (!(statusCode === 401 && this.authentication?.scheme === OAUTH2_SCHEME)) {
|
|
178
|
+
throw error;
|
|
179
|
+
}
|
|
180
|
+
const oauthSettings = parse_settings_1.getOAuth2Data(settings);
|
|
181
|
+
const newTokens = await this.refreshAccessToken(destinationSettings, oauthSettings);
|
|
182
|
+
if (!newTokens) {
|
|
183
|
+
throw new errors_1.InvalidAuthenticationError('Failed to refresh access token');
|
|
184
|
+
}
|
|
185
|
+
settings = parse_settings_1.updateOAuthSettings(settings, newTokens);
|
|
186
|
+
options?.onTokenRefresh?.(newTokens);
|
|
187
|
+
};
|
|
188
|
+
return await retry_1.retry(run, { retries: 2, onFailedAttempt });
|
|
179
189
|
}
|
|
180
190
|
getSubscriptions(settings) {
|
|
181
191
|
const { subscription, subscriptions } = settings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destination-kit/index.ts"],"names":[],"mappings":";;;;;;AAAA,kFAAuF;AAEvF,qCAAoF;AACpF,kCAAwC;AAGxC,iEAA8E;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destination-kit/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,4 +68,4 @@ export interface PathDirective {
|
|
|
68
68
|
'@path': string;
|
|
69
69
|
}
|
|
70
70
|
export declare type Directive = IfDirective | TemplateDirective | PathDirective;
|
|
71
|
-
export declare type RequestExtension<Settings, Payload =
|
|
71
|
+
export declare type RequestExtension<Settings, Payload = undefined> = (data: ExecuteInput<Settings, Payload>) => RequestOptions;
|
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
import { JSONObject, JSONLikeObject } from '../json-object';
|
|
2
|
-
export declare
|
|
2
|
+
export declare type InputData = {
|
|
3
|
+
[key: string]: unknown;
|
|
4
|
+
};
|
|
5
|
+
export declare function transform(mapping: JSONLikeObject, data?: InputData | undefined): JSONObject;
|
|
6
|
+
export declare function transformBatch(mapping: JSONLikeObject, data?: Array<InputData> | undefined): JSONObject[];
|
|
@@ -3,7 +3,7 @@ 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.transform = void 0;
|
|
6
|
+
exports.transformBatch = exports.transform = void 0;
|
|
7
7
|
const get_1 = require("../get");
|
|
8
8
|
const is_directive_1 = require("./is-directive");
|
|
9
9
|
const placeholders_1 = require("./placeholders");
|
|
@@ -61,8 +61,8 @@ registerStringDirective('@path', (path, payload) => {
|
|
|
61
61
|
registerStringDirective('@template', (template, payload) => {
|
|
62
62
|
return placeholders_1.render(template, payload);
|
|
63
63
|
});
|
|
64
|
-
registerDirective('@literal', (value) => {
|
|
65
|
-
return value;
|
|
64
|
+
registerDirective('@literal', (value, payload) => {
|
|
65
|
+
return resolve(value, payload);
|
|
66
66
|
});
|
|
67
67
|
function resolve(mapping, payload) {
|
|
68
68
|
if (!real_type_of_1.isObject(mapping) && !real_type_of_1.isArray(mapping)) {
|
|
@@ -83,7 +83,7 @@ function resolve(mapping, payload) {
|
|
|
83
83
|
function transform(mapping, data = {}) {
|
|
84
84
|
const realType = real_type_of_1.realTypeOf(data);
|
|
85
85
|
if (realType !== 'object') {
|
|
86
|
-
throw new Error(`
|
|
86
|
+
throw new Error(`data must be an object, got ${realType}`);
|
|
87
87
|
}
|
|
88
88
|
validate_1.default(mapping);
|
|
89
89
|
const cloned = cloneJson(mapping);
|
|
@@ -92,6 +92,19 @@ function transform(mapping, data = {}) {
|
|
|
92
92
|
return cleaned;
|
|
93
93
|
}
|
|
94
94
|
exports.transform = transform;
|
|
95
|
+
function transformBatch(mapping, data = []) {
|
|
96
|
+
const realType = real_type_of_1.realTypeOf(data);
|
|
97
|
+
if (!real_type_of_1.isArray(data)) {
|
|
98
|
+
throw new Error(`data must be an array, got ${realType}`);
|
|
99
|
+
}
|
|
100
|
+
validate_1.default(mapping);
|
|
101
|
+
return remove_undefined_1.removeUndefined(data.map((d) => {
|
|
102
|
+
const cloned = cloneJson(mapping);
|
|
103
|
+
const resolved = resolve(cloned, d);
|
|
104
|
+
return resolved;
|
|
105
|
+
}));
|
|
106
|
+
}
|
|
107
|
+
exports.transformBatch = transformBatch;
|
|
95
108
|
function cloneJson(obj) {
|
|
96
109
|
return JSON.parse(JSON.stringify(obj));
|
|
97
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mapping-kit/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mapping-kit/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
interface RetryOptions {
|
|
2
|
+
retries?: number;
|
|
3
|
+
onFailedAttempt?: (error: any, attemptCount: number) => PromiseLike<void> | void;
|
|
4
|
+
}
|
|
5
|
+
export declare function retry<T>(input: (attemptCount: number) => PromiseLike<T> | T, options?: RetryOptions): Promise<T>;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.retry = void 0;
|
|
4
|
+
async function retry(input, options) {
|
|
5
|
+
const retries = options?.retries ?? 2;
|
|
6
|
+
for (let attemptCount = 1; attemptCount <= retries; attemptCount++) {
|
|
7
|
+
try {
|
|
8
|
+
return await input(attemptCount);
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
if (options?.onFailedAttempt) {
|
|
12
|
+
await options.onFailedAttempt(error, attemptCount);
|
|
13
|
+
}
|
|
14
|
+
if (!error || attemptCount >= retries) {
|
|
15
|
+
throw error;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
throw new Error('Exhausted all retries.');
|
|
20
|
+
}
|
|
21
|
+
exports.retry = retry;
|
|
22
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/retry.ts"],"names":[],"mappings":";;;AAMO,KAAK,UAAU,KAAK,CACzB,KAAmD,EACnD,OAAsB;IAEtB,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,CAAC,CAAA;IAErC,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,IAAI,OAAO,EAAE,YAAY,EAAE,EAAE;QAClE,IAAI;YACF,OAAO,MAAM,KAAK,CAAC,YAAY,CAAC,CAAA;SACjC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,OAAO,EAAE,eAAe,EAAE;gBAC5B,MAAM,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;aACnD;YAGD,IAAI,CAAC,KAAK,IAAI,YAAY,IAAI,OAAO,EAAE;gBACrC,MAAM,KAAK,CAAA;aACZ;SACF;KACF;IAGD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;AAC3C,CAAC;AAvBD,sBAuBC"}
|
|
@@ -1 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
interface ValidationOptions {
|
|
2
|
+
schemaKey?: string;
|
|
3
|
+
throwIfInvalid?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function validateSchema(obj: unknown, schema: object, options?: ValidationOptions): boolean;
|
|
6
|
+
export {};
|
|
@@ -26,7 +26,8 @@ ajv.addFormat('date-like', (data) => {
|
|
|
26
26
|
}
|
|
27
27
|
return date.isValid();
|
|
28
28
|
});
|
|
29
|
-
function validateSchema(obj, schema,
|
|
29
|
+
function validateSchema(obj, schema, options) {
|
|
30
|
+
const { schemaKey, throwIfInvalid = true } = options ?? {};
|
|
30
31
|
let validate;
|
|
31
32
|
if (schemaKey) {
|
|
32
33
|
validate = ajv.getSchema(schemaKey) || ajv.addSchema(schema, schemaKey).getSchema(schemaKey);
|
|
@@ -34,9 +35,11 @@ function validateSchema(obj, schema, schemaKey) {
|
|
|
34
35
|
else {
|
|
35
36
|
validate = ajv.compile(schema);
|
|
36
37
|
}
|
|
37
|
-
|
|
38
|
+
const isValid = validate(obj);
|
|
39
|
+
if (throwIfInvalid && !isValid) {
|
|
38
40
|
throw new ajv_human_errors_1.AggregateAjvError(validate.errors);
|
|
39
41
|
}
|
|
42
|
+
return isValid;
|
|
40
43
|
}
|
|
41
44
|
exports.validateSchema = validateSchema;
|
|
42
45
|
//# sourceMappingURL=schema-validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-validation.js","sourceRoot":"","sources":["../../src/schema-validation.ts"],"names":[],"mappings":";;;;;;AACA,gEAA6D;AAC7D,8CAAqB;AACrB,kDAAyB;AAEzB,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC;IAElB,WAAW,EAAE,IAAI;IAEjB,SAAS,EAAE,IAAI;IAEf,OAAO,EAAE,IAAI;IAEb,gBAAgB,EAAE,IAAI;IAEtB,YAAY,EAAE,IAAI;CACnB,CAAC,CAAA;AAGF,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;AACrC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;AACjC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE;IAC1C,IAAI,IAAI,GAAG,eAAK,CAAC,IAAI,CAAC,CAAA;IAEtB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE;QAEjC,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;YACtB,IAAI,GAAG,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;SAC3B;QAED,IAAI,GAAG,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;KAChC;IAED,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;AACvB,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"schema-validation.js","sourceRoot":"","sources":["../../src/schema-validation.ts"],"names":[],"mappings":";;;;;;AACA,gEAA6D;AAC7D,8CAAqB;AACrB,kDAAyB;AAEzB,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC;IAElB,WAAW,EAAE,IAAI;IAEjB,SAAS,EAAE,IAAI;IAEf,OAAO,EAAE,IAAI;IAEb,gBAAgB,EAAE,IAAI;IAEtB,YAAY,EAAE,IAAI;CACnB,CAAC,CAAA;AAGF,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;AACrC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;AACjC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE;IAC1C,IAAI,IAAI,GAAG,eAAK,CAAC,IAAI,CAAC,CAAA;IAEtB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE;QAEjC,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;YACtB,IAAI,GAAG,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;SAC3B;QAED,IAAI,GAAG,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;KAChC;IAED,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;AACvB,CAAC,CAAC,CAAA;AAWF,SAAgB,cAAc,CAAC,GAAY,EAAE,MAAc,EAAE,OAA2B;IACtF,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;IAC1D,IAAI,QAA8B,CAAA;IAElC,IAAI,SAAS,EAAE;QAEb,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,SAAS,CAAE,CAAA;KAC9F;SAAM;QACL,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;KAC/B;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAY,CAAA;IAExC,IAAI,cAAc,IAAI,CAAC,OAAO,EAAE;QAE9B,MAAM,IAAI,oCAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;KAC7C;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAnBD,wCAmBC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import createRequestClient from '../create-request-client';
|
|
4
4
|
import { JSONLikeObject, JSONObject } from '../json-object';
|
|
5
|
+
import { InputData } from '../mapping-kit';
|
|
5
6
|
import type { DynamicFieldResponse, InputField, RequestExtension, ExecuteInput, Result } from './types';
|
|
6
7
|
import type { JSONSchema4 } from 'json-schema';
|
|
7
8
|
import { AuthTokens } from './parse-settings';
|
|
@@ -21,24 +22,27 @@ export interface ActionDefinition<Settings, Payload = any> extends BaseActionDef
|
|
|
21
22
|
[K in keyof Payload]?: RequestFn<Settings, Payload, DynamicFieldResponse>;
|
|
22
23
|
};
|
|
23
24
|
perform: RequestFn<Settings, Payload>;
|
|
25
|
+
performBatch?: RequestFn<Settings, Payload[]>;
|
|
24
26
|
}
|
|
25
27
|
interface ExecuteDynamicFieldInput<Settings, Payload> {
|
|
26
28
|
settings: Settings;
|
|
27
29
|
payload: Payload;
|
|
28
30
|
page?: string;
|
|
29
31
|
}
|
|
32
|
+
interface ExecuteBundle<T = unknown, Data = unknown> {
|
|
33
|
+
data: Data;
|
|
34
|
+
settings: T;
|
|
35
|
+
mapping: JSONObject;
|
|
36
|
+
auth: AuthTokens | undefined;
|
|
37
|
+
}
|
|
30
38
|
export declare class Action<Settings, Payload extends JSONLikeObject> extends EventEmitter {
|
|
31
39
|
readonly definition: ActionDefinition<Settings, Payload>;
|
|
32
40
|
readonly destinationName: string;
|
|
33
41
|
readonly schema?: JSONSchema4;
|
|
34
42
|
private extendRequest;
|
|
35
|
-
constructor(destinationName: string, definition: ActionDefinition<Settings, Payload>, extendRequest?: RequestExtension<Settings
|
|
36
|
-
execute(bundle:
|
|
37
|
-
|
|
38
|
-
settings: Settings;
|
|
39
|
-
mapping: JSONObject;
|
|
40
|
-
auth: AuthTokens | undefined;
|
|
41
|
-
}): Promise<Result[]>;
|
|
43
|
+
constructor(destinationName: string, definition: ActionDefinition<Settings, Payload>, extendRequest?: RequestExtension<Settings>);
|
|
44
|
+
execute(bundle: ExecuteBundle<Settings, InputData | undefined>): Promise<Result[]>;
|
|
45
|
+
executeBatch(bundle: ExecuteBundle<Settings, InputData[]>): Promise<void>;
|
|
42
46
|
executeDynamicField(field: string, data: ExecuteDynamicFieldInput<Settings, Payload>): unknown;
|
|
43
47
|
private performRequest;
|
|
44
48
|
private createRequestClient;
|