@segment/actions-core 3.9.1-alpha.3 → 3.9.1-canary.5
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 +12 -7
- package/dist/cjs/destination-kit/action.js +31 -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 +57 -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 +15 -2
- package/dist/cjs/mapping-kit/index.js.map +1 -1
- package/dist/cjs/retry.d.ts +6 -0
- package/dist/cjs/retry.js +23 -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 +12 -7
- package/dist/esm/destination-kit/action.js +32 -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 +57 -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 +13 -1
- package/dist/esm/mapping-kit/index.js.map +1 -1
- package/dist/esm/retry.d.ts +6 -0
- package/dist/esm/retry.js +19 -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,28 @@ 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;
|
|
42
|
+
readonly hasBatchSupport: boolean;
|
|
34
43
|
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[]>;
|
|
44
|
+
constructor(destinationName: string, definition: ActionDefinition<Settings, Payload>, extendRequest?: RequestExtension<Settings>);
|
|
45
|
+
execute(bundle: ExecuteBundle<Settings, InputData | undefined>): Promise<Result[]>;
|
|
46
|
+
executeBatch(bundle: ExecuteBundle<Settings, InputData[]>): Promise<void>;
|
|
42
47
|
executeDynamicField(field: string, data: ExecuteDynamicFieldInput<Settings, Payload>): unknown;
|
|
43
48
|
private performRequest;
|
|
44
49
|
private createRequestClient;
|
|
@@ -10,12 +10,14 @@ const mapping_kit_1 = require("../mapping-kit");
|
|
|
10
10
|
const fields_to_jsonschema_1 = require("./fields-to-jsonschema");
|
|
11
11
|
const fetch_1 = require("../fetch");
|
|
12
12
|
const schema_validation_1 = require("../schema-validation");
|
|
13
|
+
const errors_1 = require("../errors");
|
|
13
14
|
class Action extends events_1.EventEmitter {
|
|
14
15
|
constructor(destinationName, definition, extendRequest) {
|
|
15
16
|
super();
|
|
16
17
|
this.definition = definition;
|
|
17
18
|
this.destinationName = destinationName;
|
|
18
19
|
this.extendRequest = extendRequest;
|
|
20
|
+
this.hasBatchSupport = typeof definition.performBatch === 'function';
|
|
19
21
|
if (Object.keys(definition.fields ?? {}).length) {
|
|
20
22
|
this.schema = fields_to_jsonschema_1.fieldsToJsonSchema(definition.fields);
|
|
21
23
|
}
|
|
@@ -25,7 +27,8 @@ class Action extends events_1.EventEmitter {
|
|
|
25
27
|
const payload = mapping_kit_1.transform(bundle.mapping, bundle.data);
|
|
26
28
|
results.push({ output: 'Mappings resolved' });
|
|
27
29
|
if (this.schema) {
|
|
28
|
-
|
|
30
|
+
const schemaKey = `${this.destinationName}:${this.definition.title}`;
|
|
31
|
+
schema_validation_1.validateSchema(payload, this.schema, { schemaKey });
|
|
29
32
|
results.push({ output: 'Payload validated' });
|
|
30
33
|
}
|
|
31
34
|
const dataBundle = {
|
|
@@ -39,6 +42,33 @@ class Action extends events_1.EventEmitter {
|
|
|
39
42
|
results.push({ output: output });
|
|
40
43
|
return results;
|
|
41
44
|
}
|
|
45
|
+
async executeBatch(bundle) {
|
|
46
|
+
if (!this.hasBatchSupport) {
|
|
47
|
+
throw new errors_1.IntegrationError('This action does not support batched requests.', 'NotImplemented', 501);
|
|
48
|
+
}
|
|
49
|
+
let payloads = mapping_kit_1.transformBatch(bundle.mapping, bundle.data);
|
|
50
|
+
if (this.schema) {
|
|
51
|
+
const schema = this.schema;
|
|
52
|
+
const schemaKey = `${this.destinationName}:${this.definition.title}`;
|
|
53
|
+
payloads = payloads.filter((payload) => schema_validation_1.validateSchema(payload, schema, {
|
|
54
|
+
schemaKey,
|
|
55
|
+
throwIfInvalid: false
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
if (payloads.length === 0) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (this.definition.performBatch) {
|
|
62
|
+
const data = {
|
|
63
|
+
rawData: bundle.data,
|
|
64
|
+
rawMapping: bundle.mapping,
|
|
65
|
+
settings: bundle.settings,
|
|
66
|
+
payload: payloads,
|
|
67
|
+
auth: bundle.auth
|
|
68
|
+
};
|
|
69
|
+
await this.performRequest(this.definition.performBatch, data);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
42
72
|
executeDynamicField(field, data) {
|
|
43
73
|
const fn = this.definition.dynamicFields?.[field];
|
|
44
74
|
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":"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"}
|
|
@@ -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,53 @@ 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
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
123
|
+
const isBatch = Array.isArray(events);
|
|
124
|
+
const allEvents = (isBatch ? events : [events]);
|
|
125
|
+
const subscribedEvents = allEvents.filter((event) => destination_subscriptions_1.validate(parsedSubscription, event));
|
|
126
|
+
if (subscribedEvents.length === 0) {
|
|
117
127
|
results = [{ output: 'not subscribed' }];
|
|
118
128
|
return results;
|
|
119
129
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
130
|
+
else if (isBatch) {
|
|
131
|
+
return await this.executeBatch(actionSlug, { ...input, events: subscribedEvents });
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
return await this.executeAction(actionSlug, { ...input, event: subscribedEvents[0] });
|
|
135
|
+
}
|
|
123
136
|
}
|
|
124
137
|
catch (error) {
|
|
125
|
-
state = 'errored';
|
|
126
138
|
results = [{ error }];
|
|
127
139
|
if (error.name === 'AggregateAjvError' || error.name === 'ValidationError') {
|
|
128
140
|
error.status = 400;
|
|
@@ -137,9 +149,8 @@ class Destination {
|
|
|
137
149
|
destination: this.name,
|
|
138
150
|
action: actionSlug,
|
|
139
151
|
subscribe: subscription.subscribe,
|
|
140
|
-
state,
|
|
141
152
|
input: {
|
|
142
|
-
|
|
153
|
+
data: events,
|
|
143
154
|
mapping: input.mapping,
|
|
144
155
|
settings: input.settings
|
|
145
156
|
},
|
|
@@ -147,35 +158,35 @@ class Destination {
|
|
|
147
158
|
});
|
|
148
159
|
}
|
|
149
160
|
}
|
|
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();
|
|
161
|
+
onEvent(event, settings, options) {
|
|
162
|
+
return this.onSubscriptions(event, settings, options);
|
|
163
|
+
}
|
|
164
|
+
onBatch(events, settings, options) {
|
|
165
|
+
return this.onSubscriptions(events, settings, options);
|
|
171
166
|
}
|
|
172
|
-
async
|
|
167
|
+
async onSubscriptions(data, settings, options) {
|
|
173
168
|
const subscriptions = this.getSubscriptions(settings);
|
|
174
169
|
const destinationSettings = this.getDestinationSettings(settings);
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
170
|
+
const run = async () => {
|
|
171
|
+
const authData = parse_settings_1.getAuthData(settings);
|
|
172
|
+
const promises = subscriptions.map((subscription) => this.onSubscription(subscription, data, destinationSettings, authData, options?.onComplete));
|
|
173
|
+
const results = await Promise.all(promises);
|
|
174
|
+
return [].concat(...results);
|
|
175
|
+
};
|
|
176
|
+
const onFailedAttempt = async (error) => {
|
|
177
|
+
const statusCode = error?.status ?? error?.response?.status ?? 500;
|
|
178
|
+
if (!(statusCode === 401 && this.authentication?.scheme === OAUTH2_SCHEME)) {
|
|
179
|
+
throw error;
|
|
180
|
+
}
|
|
181
|
+
const oauthSettings = parse_settings_1.getOAuth2Data(settings);
|
|
182
|
+
const newTokens = await this.refreshAccessToken(destinationSettings, oauthSettings);
|
|
183
|
+
if (!newTokens) {
|
|
184
|
+
throw new errors_1.InvalidAuthenticationError('Failed to refresh access token');
|
|
185
|
+
}
|
|
186
|
+
settings = parse_settings_1.updateOAuthSettings(settings, newTokens);
|
|
187
|
+
options?.onTokenRefresh?.(newTokens);
|
|
188
|
+
};
|
|
189
|
+
return await retry_1.retry(run, { retries: 2, onFailedAttempt });
|
|
179
190
|
}
|
|
180
191
|
getSubscriptions(settings) {
|
|
181
192
|
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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"}
|
|
@@ -72,4 +72,4 @@ export interface PathDirective {
|
|
|
72
72
|
'@path': string;
|
|
73
73
|
}
|
|
74
74
|
export declare type Directive = IfDirective | TemplateDirective | PathDirective;
|
|
75
|
-
export declare type RequestExtension<Settings, Payload =
|
|
75
|
+
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");
|
|
@@ -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,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.retry = void 0;
|
|
4
|
+
const DEFAULT_RETRY_ATTEMPTS = 2;
|
|
5
|
+
async function retry(input, options) {
|
|
6
|
+
const retries = options?.retries ?? DEFAULT_RETRY_ATTEMPTS;
|
|
7
|
+
for (let attemptCount = 1; attemptCount <= retries; attemptCount++) {
|
|
8
|
+
try {
|
|
9
|
+
return await input(attemptCount);
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
if (options?.onFailedAttempt) {
|
|
13
|
+
await options.onFailedAttempt(error, attemptCount);
|
|
14
|
+
}
|
|
15
|
+
if (!error || attemptCount >= retries) {
|
|
16
|
+
throw error;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
throw new Error('Exhausted all retries.');
|
|
21
|
+
}
|
|
22
|
+
exports.retry = retry;
|
|
23
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/retry.ts"],"names":[],"mappings":";;;AAMA,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAEzB,KAAK,UAAU,KAAK,CACzB,KAAmD,EACnD,OAAsB;IAEtB,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,sBAAsB,CAAA;IAE1D,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,28 @@ 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;
|
|
42
|
+
readonly hasBatchSupport: boolean;
|
|
34
43
|
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[]>;
|
|
44
|
+
constructor(destinationName: string, definition: ActionDefinition<Settings, Payload>, extendRequest?: RequestExtension<Settings>);
|
|
45
|
+
execute(bundle: ExecuteBundle<Settings, InputData | undefined>): Promise<Result[]>;
|
|
46
|
+
executeBatch(bundle: ExecuteBundle<Settings, InputData[]>): Promise<void>;
|
|
42
47
|
executeDynamicField(field: string, data: ExecuteDynamicFieldInput<Settings, Payload>): unknown;
|
|
43
48
|
private performRequest;
|
|
44
49
|
private createRequestClient;
|