@segment/actions-core 2.3.2-alpha.1 → 2.3.2-alpha.2
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 +20 -18
- package/dist/cjs/destination-kit/action.js +114 -46
- package/dist/cjs/destination-kit/action.js.map +1 -1
- package/dist/cjs/destination-kit/fields-to-jsonschema.d.ts +2 -4
- package/dist/cjs/destination-kit/fields-to-jsonschema.js.map +1 -1
- package/dist/cjs/destination-kit/index.d.ts +8 -7
- package/dist/cjs/destination-kit/index.js +4 -4
- package/dist/cjs/destination-kit/index.js.map +1 -1
- package/dist/cjs/destination-kit/step.d.ts +23 -0
- package/dist/cjs/destination-kit/step.js +47 -0
- package/dist/cjs/destination-kit/step.js.map +1 -0
- package/dist/cjs/destination-kit/types.d.ts +2 -13
- package/dist/cjs/mapping-kit/index.d.ts +1 -1
- package/dist/cjs/mapping-kit/index.js +5 -5
- package/dist/cjs/mapping-kit/index.js.map +1 -1
- package/dist/esm/destination-kit/action.d.ts +20 -18
- package/dist/esm/destination-kit/action.js +112 -45
- package/dist/esm/destination-kit/action.js.map +1 -1
- package/dist/esm/destination-kit/fields-to-jsonschema.d.ts +2 -4
- package/dist/esm/destination-kit/fields-to-jsonschema.js.map +1 -1
- package/dist/esm/destination-kit/index.d.ts +8 -7
- package/dist/esm/destination-kit/index.js +5 -5
- package/dist/esm/destination-kit/index.js.map +1 -1
- package/dist/esm/destination-kit/step.d.ts +23 -0
- package/dist/esm/destination-kit/step.js +42 -0
- package/dist/esm/destination-kit/step.js.map +1 -0
- package/dist/esm/destination-kit/types.d.ts +2 -13
- package/dist/esm/mapping-kit/index.d.ts +1 -1
- package/dist/esm/mapping-kit/index.js +5 -5
- package/dist/esm/mapping-kit/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/cjs/schema-validation.d.ts +0 -1
- package/dist/cjs/schema-validation.js +0 -42
- package/dist/cjs/schema-validation.js.map +0 -1
- package/dist/esm/schema-validation.d.ts +0 -1
- package/dist/esm/schema-validation.js +0 -35
- package/dist/esm/schema-validation.js.map +0 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import Ajv from 'ajv';
|
|
2
3
|
import { EventEmitter } from 'events';
|
|
3
4
|
import createRequestClient from '../create-request-client';
|
|
4
|
-
import { JSONLikeObject
|
|
5
|
-
import
|
|
6
|
-
import type {
|
|
5
|
+
import { JSONLikeObject } from '../json-object';
|
|
6
|
+
import { ExecuteInput, Step, StepResult, Steps } from './step';
|
|
7
|
+
import type { DynamicFieldResponse, InputField, RequestExtension } from './types';
|
|
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>;
|
|
10
11
|
export interface ActionDefinition<Settings, Payload = any> {
|
|
11
12
|
title: string;
|
|
12
13
|
description: string;
|
|
13
|
-
platform?: 'cloud' | 'web';
|
|
14
14
|
defaultSubscription?: string;
|
|
15
15
|
hidden?: boolean;
|
|
16
16
|
fields: Record<string, InputField>;
|
|
@@ -19,26 +19,28 @@ export interface ActionDefinition<Settings, Payload = any> {
|
|
|
19
19
|
};
|
|
20
20
|
perform: RequestFn<Settings, Payload>;
|
|
21
21
|
}
|
|
22
|
+
export declare class Validate<Settings, Payload> extends Step<Settings, Payload> {
|
|
23
|
+
field: ExecuteInputField;
|
|
24
|
+
validate: Ajv.ValidateFunction;
|
|
25
|
+
constructor(field: ExecuteInputField, schema: object);
|
|
26
|
+
executeStep(data: ExecuteInput<Settings, Payload>): Promise<string>;
|
|
27
|
+
}
|
|
22
28
|
interface ExecuteDynamicFieldInput<Settings, Payload> {
|
|
23
29
|
settings: Settings;
|
|
24
30
|
payload: Payload;
|
|
25
31
|
page?: string;
|
|
26
32
|
}
|
|
33
|
+
declare type ExecuteInputField = 'payload' | 'settings';
|
|
27
34
|
export declare class Action<Settings, Payload extends JSONLikeObject> extends EventEmitter {
|
|
28
|
-
readonly
|
|
29
|
-
readonly destinationName: string;
|
|
30
|
-
readonly schema?: JSONSchema4;
|
|
35
|
+
readonly steps: Steps<Settings, Payload>;
|
|
31
36
|
private extendRequest;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
private
|
|
40
|
-
private createRequestClient;
|
|
41
|
-
private afterResponse;
|
|
42
|
-
private parseResponse;
|
|
37
|
+
private dynamicFieldCache;
|
|
38
|
+
constructor(definition: ActionDefinition<Settings, Payload>, extendRequest?: RequestExtension<Settings, Payload>);
|
|
39
|
+
execute(data: ExecuteInput<Settings, Payload>): Promise<StepResult[]>;
|
|
40
|
+
executeDynamicField(field: string, data: ExecuteDynamicFieldInput<Settings, Payload>): any;
|
|
41
|
+
private loadDefinition;
|
|
42
|
+
private validatePayload;
|
|
43
|
+
private dynamicField;
|
|
44
|
+
private request;
|
|
43
45
|
}
|
|
44
46
|
export {};
|
|
@@ -3,74 +3,142 @@ 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.Action = void 0;
|
|
6
|
+
exports.Action = exports.Validate = void 0;
|
|
7
|
+
const ajv_human_errors_1 = require("@segment/ajv-human-errors");
|
|
8
|
+
const ajv_1 = __importDefault(require("ajv"));
|
|
9
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
7
10
|
const events_1 = require("events");
|
|
8
11
|
const create_request_client_1 = __importDefault(require("../create-request-client"));
|
|
9
12
|
const mapping_kit_1 = require("../mapping-kit");
|
|
10
13
|
const fields_to_jsonschema_1 = require("./fields-to-jsonschema");
|
|
11
14
|
const fetch_1 = require("../fetch");
|
|
12
|
-
const
|
|
13
|
-
class
|
|
14
|
-
|
|
15
|
+
const step_1 = require("./step");
|
|
16
|
+
class MapInput extends step_1.Step {
|
|
17
|
+
executeStep(data) {
|
|
18
|
+
if (data.mapping) {
|
|
19
|
+
data.payload = mapping_kit_1.transform(data.mapping, data.payload);
|
|
20
|
+
}
|
|
21
|
+
return Promise.resolve('MapInput completed');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const ajv = new ajv_1.default({
|
|
25
|
+
coerceTypes: true,
|
|
26
|
+
allErrors: true,
|
|
27
|
+
verbose: true,
|
|
28
|
+
removeAdditional: true,
|
|
29
|
+
jsonPointers: true
|
|
30
|
+
});
|
|
31
|
+
ajv.addFormat('password', () => true);
|
|
32
|
+
ajv.addFormat('text', () => true);
|
|
33
|
+
ajv.addFormat('date-like', (data) => {
|
|
34
|
+
let date = dayjs_1.default(data);
|
|
35
|
+
if (String(Number(data)) === data) {
|
|
36
|
+
if (data.length === 13) {
|
|
37
|
+
date = dayjs_1.default(Number(data));
|
|
38
|
+
}
|
|
39
|
+
date = dayjs_1.default.unix(Number(data));
|
|
40
|
+
}
|
|
41
|
+
return date.isValid();
|
|
42
|
+
});
|
|
43
|
+
class Validate extends step_1.Step {
|
|
44
|
+
constructor(field, schema) {
|
|
45
|
+
super();
|
|
46
|
+
this.field = field;
|
|
47
|
+
this.validate = ajv.compile(schema);
|
|
48
|
+
}
|
|
49
|
+
executeStep(data) {
|
|
50
|
+
if (!this.validate(data[this.field])) {
|
|
51
|
+
throw new ajv_human_errors_1.AggregateAjvError(this.validate.errors);
|
|
52
|
+
}
|
|
53
|
+
return Promise.resolve('Validate completed');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.Validate = Validate;
|
|
57
|
+
class Request extends step_1.Step {
|
|
58
|
+
constructor(extendRequest, requestFn) {
|
|
15
59
|
super();
|
|
16
|
-
this.definition = definition;
|
|
17
|
-
this.destinationName = destinationName;
|
|
18
60
|
this.extendRequest = extendRequest;
|
|
19
|
-
|
|
20
|
-
|
|
61
|
+
this.requestFn = requestFn;
|
|
62
|
+
}
|
|
63
|
+
async executeStep(data) {
|
|
64
|
+
if (!this.requestFn) {
|
|
65
|
+
return '';
|
|
21
66
|
}
|
|
67
|
+
const requestClient = this.createRequestClient(data);
|
|
68
|
+
const response = await this.requestFn(requestClient, data);
|
|
69
|
+
if (response instanceof fetch_1.Response) {
|
|
70
|
+
return response.data ?? response.content;
|
|
71
|
+
}
|
|
72
|
+
return response;
|
|
22
73
|
}
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
74
|
+
createRequestClient(data) {
|
|
75
|
+
const options = this.extendRequest?.(data) ?? {};
|
|
76
|
+
const client = create_request_client_1.default(options, {
|
|
77
|
+
afterResponse: [
|
|
78
|
+
(request, options, response) => {
|
|
79
|
+
const modifiedResponse = response;
|
|
80
|
+
modifiedResponse.request = request;
|
|
81
|
+
modifiedResponse.options = options;
|
|
82
|
+
this.emit('response', modifiedResponse);
|
|
83
|
+
return modifiedResponse;
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
});
|
|
87
|
+
return client;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
class Action extends events_1.EventEmitter {
|
|
91
|
+
constructor(definition, extendRequest) {
|
|
92
|
+
super();
|
|
93
|
+
this.steps = new step_1.Steps();
|
|
94
|
+
const step = new MapInput();
|
|
95
|
+
this.steps.push(step);
|
|
96
|
+
this.dynamicFieldCache = {};
|
|
97
|
+
if (extendRequest) {
|
|
98
|
+
this.extendRequest = extendRequest;
|
|
99
|
+
}
|
|
100
|
+
this.loadDefinition(definition);
|
|
101
|
+
}
|
|
102
|
+
async execute(data) {
|
|
103
|
+
const results = await this.steps.execute(data);
|
|
104
|
+
const finalResult = results[results.length - 1];
|
|
105
|
+
if (finalResult.error) {
|
|
106
|
+
throw finalResult.error;
|
|
30
107
|
}
|
|
31
|
-
const dataBundle = {
|
|
32
|
-
rawData: bundle.data,
|
|
33
|
-
rawMapping: bundle.mapping,
|
|
34
|
-
settings: bundle.settings,
|
|
35
|
-
payload
|
|
36
|
-
};
|
|
37
|
-
const output = await this.performRequest(this.definition.perform, dataBundle);
|
|
38
|
-
results.push({ output: output });
|
|
39
108
|
return results;
|
|
40
109
|
}
|
|
41
110
|
executeDynamicField(field, data) {
|
|
42
|
-
|
|
43
|
-
if (typeof fn !== 'function') {
|
|
111
|
+
if (!this.dynamicFieldCache[field]) {
|
|
44
112
|
return {
|
|
45
113
|
data: [],
|
|
46
114
|
pagination: {}
|
|
47
115
|
};
|
|
48
116
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
async performRequest(requestFn, data) {
|
|
52
|
-
const requestClient = this.createRequestClient(data);
|
|
53
|
-
const response = await requestFn(requestClient, data);
|
|
54
|
-
return this.parseResponse(response);
|
|
117
|
+
const step = new Request(this.extendRequest, this.dynamicFieldCache[field]);
|
|
118
|
+
return step.executeStep(data);
|
|
55
119
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
120
|
+
loadDefinition(definition) {
|
|
121
|
+
if (definition.fields) {
|
|
122
|
+
this.validatePayload(definition.fields);
|
|
123
|
+
}
|
|
124
|
+
Object.entries(definition.dynamicFields ?? {}).forEach(([field, callback]) => {
|
|
125
|
+
this.dynamicField(field, callback);
|
|
60
126
|
});
|
|
127
|
+
if (definition.perform) {
|
|
128
|
+
this.request(definition.perform);
|
|
129
|
+
}
|
|
61
130
|
}
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
modifiedResponse.options = options;
|
|
66
|
-
this.emit('response', modifiedResponse);
|
|
67
|
-
return modifiedResponse;
|
|
131
|
+
validatePayload(fields) {
|
|
132
|
+
const step = new Validate('payload', fields_to_jsonschema_1.fieldsToJsonSchema(fields));
|
|
133
|
+
this.steps.push(step);
|
|
68
134
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
135
|
+
dynamicField(field, callback) {
|
|
136
|
+
this.dynamicFieldCache[field] = callback;
|
|
137
|
+
}
|
|
138
|
+
request(requestFn) {
|
|
139
|
+
const step = new Request(this.extendRequest, requestFn);
|
|
140
|
+
step.on('response', (response) => this.emit('response', response));
|
|
141
|
+
this.steps.push(step);
|
|
74
142
|
}
|
|
75
143
|
}
|
|
76
144
|
exports.Action = Action;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/destination-kit/action.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/destination-kit/action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
1
|
import { JSONSchema4 } from 'json-schema';
|
|
2
|
-
import type { InputField
|
|
3
|
-
declare
|
|
4
|
-
export declare function fieldsToJsonSchema(fields?: Record<string, MinimalInputField>): JSONSchema4;
|
|
5
|
-
export {};
|
|
2
|
+
import type { InputField } from './types';
|
|
3
|
+
export declare function fieldsToJsonSchema(fields?: Record<string, InputField>): JSONSchema4;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields-to-jsonschema.js","sourceRoot":"","sources":["../../../src/destination-kit/fields-to-jsonschema.ts"],"names":[],"mappings":";;;AAGA,SAAS,gBAAgB,CAAC,IAAmB;IAC3C,QAAQ,IAAI,EAAE;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU;YACb,OAAO,QAAQ,CAAA;QACjB,KAAK,UAAU;YACb,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC7B;YACE,OAAO,IAAI,CAAA;KACd;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"fields-to-jsonschema.js","sourceRoot":"","sources":["../../../src/destination-kit/fields-to-jsonschema.ts"],"names":[],"mappings":";;;AAGA,SAAS,gBAAgB,CAAC,IAAmB;IAC3C,QAAQ,IAAI,EAAE;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU;YACb,OAAO,QAAQ,CAAA;QACjB,KAAK,UAAU;YACb,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC7B;YACE,OAAO,IAAI,CAAA;KACd;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,SAAqC,EAAE;IACxE,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,UAAU,GAAgC,EAAE,CAAA;IAElD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACjD,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE/C,IAAI,MAAM,GAAgB;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAA0B;SAC1C,CAAA;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;YAC7B,MAAM,CAAC,MAAM,GAAG,WAAW,CAAA;YAE3B,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAA;SAClC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;YACpC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAA;SAC3B;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;YAChC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;SACvB;QAED,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,MAAM,CAAC,YAAY,GAAG,IAAI,CAAA;YAC1B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;SACtB;QAED,IAAI,KAAK,CAAC,SAAS,EAAE;YACnB,MAAM,CAAC,IAAI,GAAI,EAA4B,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YAEtE,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACxE,MAAM,CAAC,MAAM,IAAI,SAAS,CAAA;aAC3B;SACF;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;YACnC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAA;SACtB;QAID,IAAI,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE;YAC/C,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,MAAM,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;aACpD;iBAAM;gBACL,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAA;aAChE;SACF;QAED,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;QAGxB,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SACnB;KACF;IAED,OAAO;QACL,OAAO,EAAE,gCAAgC;QACzC,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,UAAU;QACV,QAAQ;KACT,CAAA;AACH,CAAC;AApED,gDAoEC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { JSONSchema4 } from 'json-schema';
|
|
2
2
|
import { Action, ActionDefinition, RequestFn } from './action';
|
|
3
|
+
import { ExecuteInput, StepResult } from './step';
|
|
4
|
+
import { JSONLikeObject, JSONObject } from '../json-object';
|
|
5
|
+
import { SegmentEvent } from '../segment-event';
|
|
3
6
|
import { fieldsToJsonSchema } from './fields-to-jsonschema';
|
|
4
7
|
import { RequestClient } from '../create-request-client';
|
|
5
|
-
import type { JSONLikeObject, JSONObject } from '../json-object';
|
|
6
|
-
import type { SegmentEvent } from '../segment-event';
|
|
7
8
|
import type { ModifiedResponse } from '../types';
|
|
8
|
-
import type { InputField, RequestExtension
|
|
9
|
+
import type { InputField, RequestExtension } from './types';
|
|
9
10
|
import type { AllRequestOptions } from '../request-client';
|
|
10
11
|
export type { ActionDefinition, ExecuteInput, RequestFn };
|
|
11
12
|
export { fieldsToJsonSchema };
|
|
@@ -16,7 +17,7 @@ export interface SubscriptionStats {
|
|
|
16
17
|
subscribe: string;
|
|
17
18
|
state: string;
|
|
18
19
|
input: JSONLikeObject;
|
|
19
|
-
output:
|
|
20
|
+
output: StepResult[] | null;
|
|
20
21
|
}
|
|
21
22
|
interface PartnerActions<Settings, Payload extends JSONLikeObject> {
|
|
22
23
|
[key: string]: Action<Settings, Payload>;
|
|
@@ -86,9 +87,9 @@ export declare class Destination<Settings = JSONObject> {
|
|
|
86
87
|
testAuthentication(settings: Settings): Promise<void>;
|
|
87
88
|
refreshAccessToken(settings: Settings, oauthClientCredentials: OAuth2ClientCredentials): Promise<RefreshAccessTokenResult> | undefined;
|
|
88
89
|
private partnerAction;
|
|
89
|
-
protected executeAction(actionSlug: string, { event, mapping, settings }: EventInput<Settings>): Promise<
|
|
90
|
+
protected executeAction(actionSlug: string, { event, mapping, settings }: EventInput<Settings>): Promise<StepResult[]>;
|
|
90
91
|
private onSubscription;
|
|
91
|
-
onEvent(event: SegmentEvent, settings: JSONObject, onComplete?: (stats: SubscriptionStats) => void): Promise<
|
|
92
|
+
onEvent(event: SegmentEvent, settings: JSONObject, onComplete?: (stats: SubscriptionStats) => void): Promise<StepResult[]>;
|
|
92
93
|
private getSubscriptions;
|
|
93
94
|
private getDestinationSettings;
|
|
94
95
|
}
|
|
@@ -11,7 +11,6 @@ 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
13
|
const errors_1 = require("../errors");
|
|
14
|
-
const schema_validation_1 = require("../schema-validation");
|
|
15
14
|
class Destination {
|
|
16
15
|
constructor(destination) {
|
|
17
16
|
this.definition = destination;
|
|
@@ -30,7 +29,8 @@ class Destination {
|
|
|
30
29
|
async testAuthentication(settings) {
|
|
31
30
|
const context = { settings, payload: {} };
|
|
32
31
|
if (this.settingsSchema) {
|
|
33
|
-
|
|
32
|
+
const step = new action_1.Validate('settings', this.settingsSchema);
|
|
33
|
+
await step.executeStep(context);
|
|
34
34
|
}
|
|
35
35
|
if (!this.authentication?.testAuthentication) {
|
|
36
36
|
return;
|
|
@@ -57,7 +57,7 @@ class Destination {
|
|
|
57
57
|
return this.authentication.refreshAccessToken(requestClient, { settings }, oauthClientCredentials);
|
|
58
58
|
}
|
|
59
59
|
partnerAction(slug, definition) {
|
|
60
|
-
const action = new action_1.Action(
|
|
60
|
+
const action = new action_1.Action(definition, this.extendRequest);
|
|
61
61
|
action.on('response', (response) => {
|
|
62
62
|
if (response) {
|
|
63
63
|
this.responses.push(response);
|
|
@@ -73,7 +73,7 @@ class Destination {
|
|
|
73
73
|
}
|
|
74
74
|
return action.execute({
|
|
75
75
|
mapping,
|
|
76
|
-
|
|
76
|
+
payload: event,
|
|
77
77
|
settings
|
|
78
78
|
});
|
|
79
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destination-kit/index.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAgF;AAEhF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destination-kit/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
import { JSONObject } from '../json-object';
|
|
4
|
+
export interface StepResult {
|
|
5
|
+
output?: JSONObject | string | null | undefined;
|
|
6
|
+
error?: JSONObject | null;
|
|
7
|
+
}
|
|
8
|
+
export interface ExecuteInput<Settings, Payload> {
|
|
9
|
+
readonly mapping?: JSONObject;
|
|
10
|
+
readonly settings: Settings;
|
|
11
|
+
payload: Payload;
|
|
12
|
+
page?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare class Step<Settings, Payload> extends EventEmitter {
|
|
15
|
+
executeStep?(data: ExecuteInput<Settings, Payload>): Promise<JSONObject | string | null | undefined>;
|
|
16
|
+
execute(data: ExecuteInput<Settings, Payload>): Promise<StepResult>;
|
|
17
|
+
}
|
|
18
|
+
export declare class Steps<Settings, Payload> {
|
|
19
|
+
steps: Step<Settings, Payload>[];
|
|
20
|
+
constructor();
|
|
21
|
+
push(step: Step<Settings, Payload>): void;
|
|
22
|
+
execute(data: ExecuteInput<Settings, Payload>): Promise<StepResult[]>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Steps = exports.Step = void 0;
|
|
4
|
+
const events_1 = require("events");
|
|
5
|
+
class Step extends events_1.EventEmitter {
|
|
6
|
+
async execute(data) {
|
|
7
|
+
const result = {
|
|
8
|
+
output: null,
|
|
9
|
+
error: null
|
|
10
|
+
};
|
|
11
|
+
if (!this.executeStep) {
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
result.output = await this.executeStep(data);
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
result.error = e;
|
|
19
|
+
}
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.Step = Step;
|
|
24
|
+
class Steps {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.steps = [];
|
|
27
|
+
}
|
|
28
|
+
push(step) {
|
|
29
|
+
this.steps.push(step);
|
|
30
|
+
}
|
|
31
|
+
async execute(data) {
|
|
32
|
+
if (this.steps.length === 0) {
|
|
33
|
+
throw new Error('no steps defined');
|
|
34
|
+
}
|
|
35
|
+
const results = [];
|
|
36
|
+
for (const step of this.steps) {
|
|
37
|
+
const result = await step.execute(data);
|
|
38
|
+
results.push(result);
|
|
39
|
+
if (result.error) {
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return results;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.Steps = Steps;
|
|
47
|
+
//# sourceMappingURL=step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../../src/destination-kit/step.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AAuBrC,MAAa,IAAwB,SAAQ,qBAAY;IAGvD,KAAK,CAAC,OAAO,CAAC,IAAqC;QACjD,MAAM,MAAM,GAAe;YACzB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;SACZ,CAAA;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO,MAAM,CAAA;SACd;QAED,IAAI;YACF,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;SAC7C;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,KAAK,GAAG,CAAC,CAAA;SACjB;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AArBD,oBAqBC;AAKD,MAAa,KAAK;IAGhB;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;IAED,IAAI,CAAC,IAA6B;QAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAqC;QACjD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;SACpC;QAED,MAAM,OAAO,GAAiB,EAAE,CAAA;QAEhC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAEvC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAEpB,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,MAAK;aACN;SACF;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CACF;AA9BD,sBA8BC"}
|
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
import type { RequestOptions } from '../request-client';
|
|
2
|
-
import type {
|
|
3
|
-
export declare type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
|
|
4
|
-
export interface Result {
|
|
5
|
-
output?: JSONObject | string | null | undefined;
|
|
6
|
-
error?: JSONObject | null;
|
|
7
|
-
}
|
|
8
|
-
export interface ExecuteInput<Settings, Payload> {
|
|
9
|
-
readonly mapping?: JSONObject;
|
|
10
|
-
readonly settings: Settings;
|
|
11
|
-
payload: Payload;
|
|
12
|
-
page?: string;
|
|
13
|
-
}
|
|
2
|
+
import type { ExecuteInput } from './step';
|
|
14
3
|
export interface DynamicFieldResponse {
|
|
15
4
|
body: {
|
|
16
5
|
data: DynamicFieldItem[];
|
|
@@ -34,7 +23,7 @@ export interface InputField {
|
|
|
34
23
|
placeholder?: string;
|
|
35
24
|
dynamic?: boolean;
|
|
36
25
|
required?: boolean;
|
|
37
|
-
properties?: Record<string,
|
|
26
|
+
properties?: Record<string, InputField>;
|
|
38
27
|
format?: 'date' | 'time' | 'date-time' | 'uri' | 'uri-reference' | 'uri-template' | 'email' | 'hostname' | 'ipv4' | 'ipv6' | 'regex' | 'uuid' | 'password' | 'text';
|
|
39
28
|
}
|
|
40
29
|
export declare type FieldValue = string | number | boolean | object | Directive;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { JSONObject, JSONLikeObject } from '../json-object';
|
|
2
|
-
export declare function transform(mapping: JSONLikeObject,
|
|
2
|
+
export declare function transform(mapping: JSONLikeObject, payload?: JSONObject): JSONObject;
|
|
@@ -80,14 +80,14 @@ function resolve(mapping, payload) {
|
|
|
80
80
|
}
|
|
81
81
|
return mapping;
|
|
82
82
|
}
|
|
83
|
-
function transform(mapping,
|
|
84
|
-
const
|
|
85
|
-
if (
|
|
86
|
-
throw new Error(`payload must be an object, got ${
|
|
83
|
+
function transform(mapping, payload = {}) {
|
|
84
|
+
const payloadType = real_type_of_1.realTypeOf(payload);
|
|
85
|
+
if (payloadType !== 'object') {
|
|
86
|
+
throw new Error(`payload must be an object, got ${payloadType}`);
|
|
87
87
|
}
|
|
88
88
|
validate_1.default(mapping);
|
|
89
89
|
const cloned = cloneJson(mapping);
|
|
90
|
-
const resolved = resolve(cloned,
|
|
90
|
+
const resolved = resolve(cloned, payload);
|
|
91
91
|
const cleaned = remove_undefined_1.removeUndefined(resolved);
|
|
92
92
|
return cleaned;
|
|
93
93
|
}
|
|
@@ -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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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import Ajv from 'ajv';
|
|
2
3
|
import { EventEmitter } from 'events';
|
|
3
4
|
import createRequestClient from '../create-request-client';
|
|
4
|
-
import { JSONLikeObject
|
|
5
|
-
import
|
|
6
|
-
import type {
|
|
5
|
+
import { JSONLikeObject } from '../json-object';
|
|
6
|
+
import { ExecuteInput, Step, StepResult, Steps } from './step';
|
|
7
|
+
import type { DynamicFieldResponse, InputField, RequestExtension } from './types';
|
|
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>;
|
|
10
11
|
export interface ActionDefinition<Settings, Payload = any> {
|
|
11
12
|
title: string;
|
|
12
13
|
description: string;
|
|
13
|
-
platform?: 'cloud' | 'web';
|
|
14
14
|
defaultSubscription?: string;
|
|
15
15
|
hidden?: boolean;
|
|
16
16
|
fields: Record<string, InputField>;
|
|
@@ -19,26 +19,28 @@ export interface ActionDefinition<Settings, Payload = any> {
|
|
|
19
19
|
};
|
|
20
20
|
perform: RequestFn<Settings, Payload>;
|
|
21
21
|
}
|
|
22
|
+
export declare class Validate<Settings, Payload> extends Step<Settings, Payload> {
|
|
23
|
+
field: ExecuteInputField;
|
|
24
|
+
validate: Ajv.ValidateFunction;
|
|
25
|
+
constructor(field: ExecuteInputField, schema: object);
|
|
26
|
+
executeStep(data: ExecuteInput<Settings, Payload>): Promise<string>;
|
|
27
|
+
}
|
|
22
28
|
interface ExecuteDynamicFieldInput<Settings, Payload> {
|
|
23
29
|
settings: Settings;
|
|
24
30
|
payload: Payload;
|
|
25
31
|
page?: string;
|
|
26
32
|
}
|
|
33
|
+
declare type ExecuteInputField = 'payload' | 'settings';
|
|
27
34
|
export declare class Action<Settings, Payload extends JSONLikeObject> extends EventEmitter {
|
|
28
|
-
readonly
|
|
29
|
-
readonly destinationName: string;
|
|
30
|
-
readonly schema?: JSONSchema4;
|
|
35
|
+
readonly steps: Steps<Settings, Payload>;
|
|
31
36
|
private extendRequest;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
private
|
|
40
|
-
private createRequestClient;
|
|
41
|
-
private afterResponse;
|
|
42
|
-
private parseResponse;
|
|
37
|
+
private dynamicFieldCache;
|
|
38
|
+
constructor(definition: ActionDefinition<Settings, Payload>, extendRequest?: RequestExtension<Settings, Payload>);
|
|
39
|
+
execute(data: ExecuteInput<Settings, Payload>): Promise<StepResult[]>;
|
|
40
|
+
executeDynamicField(field: string, data: ExecuteDynamicFieldInput<Settings, Payload>): any;
|
|
41
|
+
private loadDefinition;
|
|
42
|
+
private validatePayload;
|
|
43
|
+
private dynamicField;
|
|
44
|
+
private request;
|
|
43
45
|
}
|
|
44
46
|
export {};
|