@segment/actions-core 2.0.3-next.0 → 2.1.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.
- package/dist/cjs/create-request-client.d.ts +0 -3
- package/dist/cjs/create-request-client.js +0 -7
- package/dist/cjs/create-request-client.js.map +1 -1
- package/dist/cjs/create-test-event.js +1 -1
- package/dist/cjs/create-test-event.js.map +1 -1
- package/dist/cjs/create-test-integration.d.ts +0 -19
- package/dist/cjs/create-test-integration.js +0 -1
- package/dist/cjs/create-test-integration.js.map +1 -1
- package/dist/cjs/destination-kit/action.d.ts +7 -37
- package/dist/cjs/destination-kit/action.js +28 -52
- package/dist/cjs/destination-kit/action.js.map +1 -1
- package/dist/cjs/destination-kit/fields-to-jsonschema.js +80 -12
- package/dist/cjs/destination-kit/fields-to-jsonschema.js.map +1 -1
- package/dist/cjs/destination-kit/index.d.ts +0 -10
- package/dist/cjs/destination-kit/index.js +13 -8
- package/dist/cjs/destination-kit/index.js.map +1 -1
- package/dist/cjs/destination-kit/step.d.ts +0 -12
- package/dist/cjs/destination-kit/step.js +0 -7
- package/dist/cjs/destination-kit/step.js.map +1 -1
- package/dist/cjs/destination-kit/types.d.ts +31 -9
- package/dist/cjs/errors.d.ts +15 -5
- package/dist/cjs/errors.js +22 -8
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/fetch.js +0 -1
- package/dist/cjs/fetch.js.map +1 -1
- package/dist/cjs/get.d.ts +0 -4
- package/dist/cjs/get.js +1 -11
- package/dist/cjs/get.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +4 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/map-values.d.ts +1 -5
- package/dist/cjs/map-values.js +0 -5
- package/dist/cjs/map-values.js.map +1 -1
- package/dist/cjs/mapping-kit/index.d.ts +0 -6
- package/dist/cjs/mapping-kit/index.js +0 -87
- package/dist/cjs/mapping-kit/index.js.map +1 -1
- package/dist/cjs/mapping-kit/is-directive.js +0 -1
- package/dist/cjs/mapping-kit/is-directive.js.map +1 -1
- package/dist/cjs/mapping-kit/placeholders.d.ts +0 -3
- package/dist/cjs/mapping-kit/placeholders.js +0 -8
- package/dist/cjs/mapping-kit/placeholders.js.map +1 -1
- package/dist/cjs/mapping-kit/validate.js +0 -84
- package/dist/cjs/mapping-kit/validate.js.map +1 -1
- package/dist/cjs/middleware/after-response/prepare-headers.js +0 -3
- package/dist/cjs/middleware/after-response/prepare-headers.js.map +1 -1
- package/dist/cjs/middleware/after-response/prepare-response.js +0 -4
- package/dist/cjs/middleware/after-response/prepare-response.js.map +1 -1
- package/dist/cjs/omit.d.ts +0 -3
- package/dist/cjs/omit.js +0 -3
- package/dist/cjs/omit.js.map +1 -1
- package/dist/cjs/real-type-of.d.ts +0 -5
- package/dist/cjs/real-type-of.js +0 -5
- package/dist/cjs/real-type-of.js.map +1 -1
- package/dist/cjs/request-client.d.ts +0 -53
- package/dist/cjs/request-client.js +4 -48
- package/dist/cjs/request-client.js.map +1 -1
- package/dist/cjs/segment-event.d.ts +0 -40
- package/dist/cjs/time.d.ts +0 -6
- package/dist/cjs/time.js +0 -6
- package/dist/cjs/time.js.map +1 -1
- package/dist/cjs/types.d.ts +0 -4
- package/dist/esm/create-request-client.d.ts +0 -3
- package/dist/esm/create-request-client.js +0 -7
- package/dist/esm/create-request-client.js.map +1 -1
- package/dist/esm/create-test-event.js +1 -1
- package/dist/esm/create-test-event.js.map +1 -1
- package/dist/esm/create-test-integration.d.ts +0 -19
- package/dist/esm/create-test-integration.js +0 -1
- package/dist/esm/create-test-integration.js.map +1 -1
- package/dist/esm/destination-kit/action.d.ts +7 -37
- package/dist/esm/destination-kit/action.js +28 -52
- package/dist/esm/destination-kit/action.js.map +1 -1
- package/dist/esm/destination-kit/fields-to-jsonschema.js +80 -12
- package/dist/esm/destination-kit/fields-to-jsonschema.js.map +1 -1
- package/dist/esm/destination-kit/index.d.ts +0 -10
- package/dist/esm/destination-kit/index.js +12 -7
- package/dist/esm/destination-kit/index.js.map +1 -1
- package/dist/esm/destination-kit/step.d.ts +0 -12
- package/dist/esm/destination-kit/step.js +0 -7
- package/dist/esm/destination-kit/step.js.map +1 -1
- package/dist/esm/destination-kit/types.d.ts +31 -9
- package/dist/esm/errors.d.ts +15 -5
- package/dist/esm/errors.js +18 -6
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/fetch.js +0 -1
- package/dist/esm/fetch.js.map +1 -1
- package/dist/esm/get.d.ts +0 -4
- package/dist/esm/get.js +1 -11
- package/dist/esm/get.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/map-values.d.ts +1 -5
- package/dist/esm/map-values.js +0 -5
- package/dist/esm/map-values.js.map +1 -1
- package/dist/esm/mapping-kit/index.d.ts +0 -6
- package/dist/esm/mapping-kit/index.js +1 -88
- package/dist/esm/mapping-kit/index.js.map +1 -1
- package/dist/esm/mapping-kit/is-directive.js +0 -1
- package/dist/esm/mapping-kit/is-directive.js.map +1 -1
- package/dist/esm/mapping-kit/placeholders.d.ts +0 -3
- package/dist/esm/mapping-kit/placeholders.js +0 -8
- package/dist/esm/mapping-kit/placeholders.js.map +1 -1
- package/dist/esm/mapping-kit/validate.js +0 -84
- package/dist/esm/mapping-kit/validate.js.map +1 -1
- package/dist/esm/middleware/after-response/prepare-headers.js +0 -3
- package/dist/esm/middleware/after-response/prepare-headers.js.map +1 -1
- package/dist/esm/middleware/after-response/prepare-response.js +0 -4
- package/dist/esm/middleware/after-response/prepare-response.js.map +1 -1
- package/dist/esm/omit.d.ts +0 -3
- package/dist/esm/omit.js +0 -3
- package/dist/esm/omit.js.map +1 -1
- package/dist/esm/real-type-of.d.ts +0 -5
- package/dist/esm/real-type-of.js +0 -5
- package/dist/esm/real-type-of.js.map +1 -1
- package/dist/esm/request-client.d.ts +0 -53
- package/dist/esm/request-client.js +4 -48
- package/dist/esm/request-client.js.map +1 -1
- package/dist/esm/segment-event.d.ts +0 -40
- package/dist/esm/time.d.ts +0 -6
- package/dist/esm/time.js +0 -6
- package/dist/esm/time.js.map +1 -1
- package/dist/esm/types.d.ts +0 -4
- package/package.json +16 -11
- package/dist/cjs/dayjs.d.ts +0 -2
- package/dist/cjs/dayjs.js +0 -10
- package/dist/cjs/dayjs.js.map +0 -1
- package/dist/esm/dayjs.d.ts +0 -2
- package/dist/esm/dayjs.js +0 -5
- package/dist/esm/dayjs.js.map +0 -1
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { validate, parseFql } from '@segment/fab5-subscriptions';
|
|
2
|
+
import { CustomError } from 'ts-custom-error';
|
|
2
3
|
import { Action, Validate } from './action';
|
|
3
4
|
import { time, duration } from '../time';
|
|
4
5
|
import { fieldsToJsonSchema, jsonSchemaToFields } from './fields-to-jsonschema';
|
|
5
|
-
import { UnsupportedActionError } from '../errors';
|
|
6
6
|
import createRequestClient from '../create-request-client';
|
|
7
7
|
export { fieldsToJsonSchema, jsonSchemaToFields };
|
|
8
|
+
class UnsupportedActionError extends CustomError {
|
|
9
|
+
constructor(action) {
|
|
10
|
+
super(`"${action}" is not a supported cloud-mode action.`);
|
|
11
|
+
this.ignored = true;
|
|
12
|
+
this.status = 'UNSUPPORTED_EVENT_TYPE';
|
|
13
|
+
this.retry = false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
8
16
|
export class Destination {
|
|
9
17
|
constructor(destination) {
|
|
10
18
|
var _a;
|
|
@@ -14,7 +22,6 @@ export class Destination {
|
|
|
14
22
|
this.actions = {};
|
|
15
23
|
this.authentication = destination.authentication;
|
|
16
24
|
this.responses = [];
|
|
17
|
-
// Convert to complete JSON Schema
|
|
18
25
|
if ((_a = this.authentication) === null || _a === void 0 ? void 0 : _a.fields) {
|
|
19
26
|
this.settingsSchema = fieldsToJsonSchema(this.authentication.fields);
|
|
20
27
|
}
|
|
@@ -92,6 +99,9 @@ export class Destination {
|
|
|
92
99
|
catch (error) {
|
|
93
100
|
state = 'errored';
|
|
94
101
|
results = [{ error }];
|
|
102
|
+
if (error.name === 'AggregateAjvError' || error.name === 'ValidationError') {
|
|
103
|
+
error.status = 400;
|
|
104
|
+
}
|
|
95
105
|
throw error;
|
|
96
106
|
}
|
|
97
107
|
finally {
|
|
@@ -112,10 +122,6 @@ export class Destination {
|
|
|
112
122
|
});
|
|
113
123
|
}
|
|
114
124
|
}
|
|
115
|
-
/**
|
|
116
|
-
* Note: Until we move subscriptions upstream (into int-consumer) we've opted
|
|
117
|
-
* to have failures abort the set of subscriptions and get potentially retried by centrifuge
|
|
118
|
-
*/
|
|
119
125
|
async onEvent(event, settings, onComplete) {
|
|
120
126
|
const subscriptions = this.getSubscriptions(settings);
|
|
121
127
|
const destinationSettings = this.getDestinationSettings(settings);
|
|
@@ -126,7 +132,6 @@ export class Destination {
|
|
|
126
132
|
getSubscriptions(settings) {
|
|
127
133
|
const { subscription, subscriptions } = settings;
|
|
128
134
|
let parsedSubscriptions;
|
|
129
|
-
// To support event tester we need to parse and validate multiple subscriptions from the settings
|
|
130
135
|
if (subscription) {
|
|
131
136
|
parsedSubscriptions = [subscription];
|
|
132
137
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destination-kit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAEhE,OAAO,EAAE,MAAM,EAAoB,QAAQ,EAAa,MAAM,UAAU,CAAA;AAExE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGxC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/destination-kit/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,30 +6,18 @@ export interface StepResult {
|
|
|
6
6
|
error?: JSONObject | null;
|
|
7
7
|
}
|
|
8
8
|
export interface ExecuteInput<Settings, Payload> {
|
|
9
|
-
/** The subscription mapping definition */
|
|
10
9
|
readonly mapping?: JSONObject;
|
|
11
|
-
/** The global destination settings */
|
|
12
10
|
readonly settings: Settings;
|
|
13
|
-
/** The transformed input data, based on `mapping` + `event` */
|
|
14
11
|
payload: Payload;
|
|
15
|
-
/** The ids from cached requests */
|
|
16
12
|
cachedFields: {
|
|
17
13
|
[key: string]: string | null | undefined;
|
|
18
14
|
};
|
|
19
|
-
/** The page used in autocomplete */
|
|
20
15
|
page?: string;
|
|
21
16
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Step is the base class for all discrete execution steps. It handles executing the step, logging,
|
|
24
|
-
* catching errors, and returning a result object.
|
|
25
|
-
*/
|
|
26
17
|
export declare class Step<Settings, Payload> extends EventEmitter {
|
|
27
18
|
executeStep?(data: ExecuteInput<Settings, Payload>): Promise<JSONObject | string | null | undefined>;
|
|
28
19
|
execute(data: ExecuteInput<Settings, Payload>): Promise<StepResult>;
|
|
29
20
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Steps is a list of one or more Step instances that can be executed in-order.
|
|
32
|
-
*/
|
|
33
21
|
export declare class Steps<Settings, Payload> {
|
|
34
22
|
steps: Step<Settings, Payload>[];
|
|
35
23
|
constructor();
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
/**
|
|
3
|
-
* Step is the base class for all discrete execution steps. It handles executing the step, logging,
|
|
4
|
-
* catching errors, and returning a result object.
|
|
5
|
-
*/
|
|
6
2
|
export class Step extends EventEmitter {
|
|
7
3
|
async execute(data) {
|
|
8
4
|
const result = {
|
|
@@ -21,9 +17,6 @@ export class Step extends EventEmitter {
|
|
|
21
17
|
return result;
|
|
22
18
|
}
|
|
23
19
|
}
|
|
24
|
-
/**
|
|
25
|
-
* Steps is a list of one or more Step instances that can be executed in-order.
|
|
26
|
-
*/
|
|
27
20
|
export class Steps {
|
|
28
21
|
constructor() {
|
|
29
22
|
this.steps = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../../src/destination-kit/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../../src/destination-kit/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAyBrC,MAAM,OAAO,IAAwB,SAAQ,YAAY;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;AAKD,MAAM,OAAO,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"}
|
|
@@ -1,23 +1,45 @@
|
|
|
1
1
|
import type { RequestOptions } from '../request-client';
|
|
2
|
-
import type { JSONSchema4 } from 'json-schema';
|
|
3
2
|
import type { ExecuteInput } from './step';
|
|
4
|
-
export interface
|
|
3
|
+
export interface DynamicFieldResponse {
|
|
5
4
|
body: {
|
|
6
|
-
data:
|
|
5
|
+
data: DynamicFieldItem[];
|
|
7
6
|
pagination: {
|
|
8
7
|
nextPage?: string;
|
|
9
8
|
};
|
|
10
9
|
};
|
|
11
10
|
}
|
|
12
|
-
export interface
|
|
11
|
+
export interface DynamicFieldItem {
|
|
13
12
|
label: string;
|
|
14
13
|
value: string;
|
|
15
14
|
}
|
|
16
|
-
export
|
|
15
|
+
export declare type FieldTypeName = 'string' | 'text' | 'number' | 'integer' | 'datetime' | 'boolean' | 'password' | 'object';
|
|
16
|
+
export interface InputField {
|
|
17
|
+
label: string;
|
|
18
|
+
description: string;
|
|
19
|
+
type: FieldTypeName;
|
|
20
|
+
allowNull?: boolean;
|
|
21
|
+
multiple?: boolean;
|
|
22
|
+
default?: FieldValue;
|
|
23
|
+
placeholder?: string;
|
|
24
|
+
dynamic?: boolean;
|
|
17
25
|
required?: boolean;
|
|
26
|
+
properties?: Record<string, InputField>;
|
|
27
|
+
format?: 'date' | 'time' | 'date-time' | 'uri' | 'uri-reference' | 'uri-template' | 'email' | 'hostname' | 'ipv4' | 'ipv6' | 'regex' | 'uuid' | 'password' | 'text';
|
|
28
|
+
}
|
|
29
|
+
export declare type FieldValue = string | number | boolean | object | Directive;
|
|
30
|
+
export interface IfDirective {
|
|
31
|
+
'@if': {
|
|
32
|
+
exists?: FieldValue;
|
|
33
|
+
true?: FieldValue;
|
|
34
|
+
then: FieldValue;
|
|
35
|
+
else?: FieldValue;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export interface TemplateDirective {
|
|
39
|
+
'@template': string;
|
|
40
|
+
}
|
|
41
|
+
export interface PathDirective {
|
|
42
|
+
'@path': string;
|
|
18
43
|
}
|
|
19
|
-
|
|
20
|
-
* A function to configure a request client instance with options
|
|
21
|
-
* that will be applied to every request made by that instance
|
|
22
|
-
*/
|
|
44
|
+
export declare type Directive = IfDirective | TemplateDirective | PathDirective;
|
|
23
45
|
export declare type RequestExtension<Settings, Payload = unknown> = (data: ExecuteInput<Settings, Payload>) => RequestOptions;
|
package/dist/esm/errors.d.ts
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import { CustomError } from 'ts-custom-error';
|
|
2
|
-
export declare class
|
|
3
|
-
|
|
4
|
-
status:
|
|
5
|
-
|
|
6
|
-
constructor(action: string);
|
|
2
|
+
export declare class IntegrationError extends CustomError {
|
|
3
|
+
code: string | undefined;
|
|
4
|
+
status: number | undefined;
|
|
5
|
+
constructor(message?: string, code?: string, status?: number);
|
|
7
6
|
}
|
|
7
|
+
declare type RetryableStatusCodes = 408 | 423 | 429 | 500 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 598 | 599;
|
|
8
|
+
export declare class RetryableError extends CustomError {
|
|
9
|
+
status: RetryableStatusCodes;
|
|
10
|
+
constructor(message?: string, status?: RetryableStatusCodes);
|
|
11
|
+
}
|
|
12
|
+
export declare class InvalidAuthenticationError extends CustomError {
|
|
13
|
+
status: number;
|
|
14
|
+
code: string;
|
|
15
|
+
constructor(message?: string);
|
|
16
|
+
}
|
|
17
|
+
export {};
|
package/dist/esm/errors.js
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import { CustomError } from 'ts-custom-error';
|
|
2
|
-
export class
|
|
3
|
-
constructor(
|
|
4
|
-
super(
|
|
5
|
-
this.
|
|
6
|
-
this.
|
|
7
|
-
|
|
2
|
+
export class IntegrationError extends CustomError {
|
|
3
|
+
constructor(message = '', code, status) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.status = status;
|
|
6
|
+
this.code = code;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class RetryableError extends CustomError {
|
|
10
|
+
constructor(message = '', status = 500) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.status = status;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class InvalidAuthenticationError extends CustomError {
|
|
16
|
+
constructor(message = '') {
|
|
17
|
+
super(message);
|
|
18
|
+
this.status = 401;
|
|
19
|
+
this.code = 'invalid_authentication';
|
|
8
20
|
}
|
|
9
21
|
}
|
|
10
22
|
//# sourceMappingURL=errors.js.map
|
package/dist/esm/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAQ7C,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAS/C,YAAY,OAAO,GAAG,EAAE,EAAE,IAAa,EAAE,MAAe;QACtD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AAwBD,MAAM,OAAO,cAAe,SAAQ,WAAW;IAG7C,YAAY,OAAO,GAAG,EAAE,EAAE,SAA+B,GAAG;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CACF;AASD,MAAM,OAAO,0BAA2B,SAAQ,WAAW;IAIzD,YAAY,OAAO,GAAG,EAAE;QACtB,KAAK,CAAC,OAAO,CAAC,CAAA;QAJhB,WAAM,GAAG,GAAG,CAAA;QACZ,SAAI,GAAG,wBAAwB,CAAA;IAI/B,CAAC;CACF"}
|
package/dist/esm/fetch.js
CHANGED
package/dist/esm/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/fetch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/fetch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE/D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;AACrC,eAAe,KAAK,CAAA"}
|
package/dist/esm/get.d.ts
CHANGED
|
@@ -1,5 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lightweight alternative to lodash.get with similar coverage
|
|
3
|
-
* Supports basic path lookup via dot notation `'foo.bar[0].baz'` or an array ['foo', 'bar', '0', 'baz']
|
|
4
|
-
*/
|
|
5
1
|
export declare function get<T = unknown, Default = undefined>(obj: any, path: string | string[], defValue?: Default): T | Default | undefined;
|
package/dist/esm/get.js
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
* Lightweight alternative to lodash.get with similar coverage
|
|
3
|
-
* Supports basic path lookup via dot notation `'foo.bar[0].baz'` or an array ['foo', 'bar', '0', 'baz']
|
|
4
|
-
*/
|
|
5
|
-
export function get(
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
|
-
obj, path, defValue) {
|
|
8
|
-
// If path is not defined or it has false value
|
|
1
|
+
export function get(obj, path, defValue) {
|
|
9
2
|
if (!path)
|
|
10
3
|
return defValue;
|
|
11
|
-
// Check if path is string or array. Regex : ensure that we do not have '.' and brackets.
|
|
12
|
-
// Regex explained: https://regexr.com/58j0k
|
|
13
4
|
const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g);
|
|
14
|
-
// Find value if exist return otherwise return undefined value
|
|
15
5
|
const value = pathArray.reduce((prevObj, key) => prevObj && prevObj[key], obj);
|
|
16
6
|
return typeof value !== 'undefined' ? value : defValue;
|
|
17
7
|
}
|
package/dist/esm/get.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/get.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,GAAG,CAEjB,GAAQ,EACR,IAAuB,EACvB,QAAkB;IAGlB,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAA;IAI1B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAc,CAAA;IAGtF,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IAC9E,OAAO,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAA;AACxD,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { transform } from './mapping-kit';
|
|
|
3
3
|
export { createTestEvent } from './create-test-event';
|
|
4
4
|
export { createTestIntegration } from './create-test-integration';
|
|
5
5
|
export { defaultValues } from './defaults';
|
|
6
|
-
export {
|
|
6
|
+
export { IntegrationError, InvalidAuthenticationError, RetryableError } from './errors';
|
|
7
7
|
export { get } from './get';
|
|
8
8
|
export { omit } from './omit';
|
|
9
9
|
export { removeUndefined } from './remove-undefined';
|
|
@@ -12,6 +12,6 @@ export { realTypeOf, isObject, isArray, isString } from './real-type-of';
|
|
|
12
12
|
export type { RequestOptions } from './request-client';
|
|
13
13
|
export { default as fetch, Request, Response, Headers } from './fetch';
|
|
14
14
|
export type { ActionDefinition, DestinationDefinition, ExecuteInput, Subscription, SubscriptionStats, AuthenticationScheme, BasicAuthentication, CustomAuthentication, RequestFn, DecoratedResponse } from './destination-kit';
|
|
15
|
-
export type {
|
|
15
|
+
export type { DynamicFieldResponse, DynamicFieldItem, InputField, RequestExtension } from './destination-kit/types';
|
|
16
16
|
export type { JSONPrimitive, JSONValue, JSONObject, JSONArray, JSONLike, JSONLikeObject } from './json-object';
|
|
17
17
|
export type { SegmentEvent } from './segment-event';
|
package/dist/esm/index.js
CHANGED
|
@@ -3,7 +3,7 @@ export { transform } from './mapping-kit';
|
|
|
3
3
|
export { createTestEvent } from './create-test-event';
|
|
4
4
|
export { createTestIntegration } from './create-test-integration';
|
|
5
5
|
export { defaultValues } from './defaults';
|
|
6
|
-
export {
|
|
6
|
+
export { IntegrationError, InvalidAuthenticationError, RetryableError } from './errors';
|
|
7
7
|
export { get } from './get';
|
|
8
8
|
export { omit } from './omit';
|
|
9
9
|
export { removeUndefined } from './remove-undefined';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACvF,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEvC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGxE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA"}
|
package/dist/esm/map-values.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
* Lightweight alternative to lodash.mapValues
|
|
3
|
-
* Creates an object with the same keys as the input object
|
|
4
|
-
*/
|
|
5
|
-
export declare function mapValues<Values extends Record<string, unknown>, Obj extends Record<string, Values>, ValueKey extends keyof Values>(obj: Obj, key: ValueKey): {
|
|
1
|
+
export declare function mapValues<Values extends Record<string, any>, Obj extends Record<string, Values>, ValueKey extends keyof Values>(obj: Obj, key: ValueKey): {
|
|
6
2
|
[K in keyof Obj]: Obj[K][ValueKey];
|
|
7
3
|
};
|
package/dist/esm/map-values.js
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lightweight alternative to lodash.mapValues
|
|
3
|
-
* Creates an object with the same keys as the input object
|
|
4
|
-
*/
|
|
5
1
|
export function mapValues(obj, key) {
|
|
6
2
|
return Object.entries(obj).reduce((agg, [name, value]) => {
|
|
7
|
-
// @ts-ignore this is a pretty complex type, skipping for now
|
|
8
3
|
agg[name] = value[key];
|
|
9
4
|
return agg;
|
|
10
5
|
}, {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-values.js","sourceRoot":"","sources":["../../src/map-values.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"map-values.js","sourceRoot":"","sources":["../../src/map-values.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,SAAS,CAKvB,GAAQ,EAAE,GAAa;IACvB,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QAEvD,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;QACtB,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAA4C,CAAC,CAAA;AAClD,CAAC"}
|
|
@@ -1,8 +1,2 @@
|
|
|
1
1
|
import { JSONObject, JSONLikeObject } from '../json-object';
|
|
2
|
-
/**
|
|
3
|
-
* Validates and transforms a mapping by applying the input payload
|
|
4
|
-
* based on the directives and raw values defined in the mapping object
|
|
5
|
-
* @param mapping - the directives and raw values
|
|
6
|
-
* @param payload - the input data to apply to directives
|
|
7
|
-
*/
|
|
8
2
|
export declare function transform(mapping: JSONLikeObject, payload?: JSONObject): JSONObject;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
-
import dayjs from '../dayjs';
|
|
3
1
|
import { get } from '../get';
|
|
4
2
|
import { isDirective } from './is-directive';
|
|
5
3
|
import { render } from './placeholders';
|
|
6
|
-
import { realTypeOf, isObject,
|
|
4
|
+
import { realTypeOf, isObject, isArray } from '../real-type-of';
|
|
7
5
|
import { removeUndefined } from '../remove-undefined';
|
|
8
6
|
import validate from './validate';
|
|
9
7
|
const directives = {};
|
|
@@ -32,9 +30,6 @@ function runDirective(obj, payload) {
|
|
|
32
30
|
}
|
|
33
31
|
return directiveFn(value, payload);
|
|
34
32
|
}
|
|
35
|
-
registerStringDirective('@base64', (str, _payload) => {
|
|
36
|
-
return Buffer.from(str).toString('base64');
|
|
37
|
-
});
|
|
38
33
|
registerDirective('@if', (opts, payload) => {
|
|
39
34
|
let condition = false;
|
|
40
35
|
if (!isObject(opts)) {
|
|
@@ -58,86 +53,12 @@ registerDirective('@if', (opts, payload) => {
|
|
|
58
53
|
return resolve(opts.else, payload);
|
|
59
54
|
}
|
|
60
55
|
});
|
|
61
|
-
registerDirective('@json', (value, payload) => {
|
|
62
|
-
return JSON.stringify(resolve(value, payload));
|
|
63
|
-
});
|
|
64
|
-
registerStringDirective('@lowercase', (str, _payload) => {
|
|
65
|
-
return str.toLowerCase();
|
|
66
|
-
});
|
|
67
|
-
registerDirective('@merge', (arr, payload) => {
|
|
68
|
-
if (!Array.isArray(arr)) {
|
|
69
|
-
throw new Error(`@merge: expected array, got ${realTypeOf(arr)}`);
|
|
70
|
-
}
|
|
71
|
-
const objects = arr.map((v) => resolve(v, payload));
|
|
72
|
-
return Object.assign({}, ...objects);
|
|
73
|
-
});
|
|
74
|
-
function resolveObjectAndFields(directive, opts, payload) {
|
|
75
|
-
if (!isObject(opts)) {
|
|
76
|
-
throw new Error(`${directive}: expected object, got ${realTypeOf(opts)}`);
|
|
77
|
-
}
|
|
78
|
-
const obj = resolve(opts.object, payload);
|
|
79
|
-
if (!isObject(obj)) {
|
|
80
|
-
throw new Error(`${directive}: expected object, got ${realTypeOf(obj)}`);
|
|
81
|
-
}
|
|
82
|
-
const fields = resolve(opts.fields, payload);
|
|
83
|
-
if (!Array.isArray(fields)) {
|
|
84
|
-
throw new Error(`${directive}: expected fields as array, got ${realTypeOf(fields)}`);
|
|
85
|
-
}
|
|
86
|
-
return [obj, fields];
|
|
87
|
-
}
|
|
88
|
-
registerDirective('@omit', (opts, payload) => {
|
|
89
|
-
const [obj, fields] = resolveObjectAndFields('@omit', opts, payload);
|
|
90
|
-
const clonedObj = JSON.parse(JSON.stringify(obj));
|
|
91
|
-
fields.forEach((f) => delete clonedObj[f]);
|
|
92
|
-
return clonedObj;
|
|
93
|
-
});
|
|
94
56
|
registerStringDirective('@path', (path, payload) => {
|
|
95
57
|
return get(payload, path.replace('$.', ''));
|
|
96
58
|
});
|
|
97
|
-
registerDirective('@pick', (opts, payload) => {
|
|
98
|
-
const [obj, fields] = resolveObjectAndFields('@pick', opts, payload);
|
|
99
|
-
const clean = {};
|
|
100
|
-
fields.forEach((f) => {
|
|
101
|
-
if (Object.prototype.hasOwnProperty.call(obj, f)) {
|
|
102
|
-
clean[f] = obj[f];
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
return clean;
|
|
106
|
-
});
|
|
107
|
-
registerDirective('@root', (_, payload) => payload);
|
|
108
59
|
registerStringDirective('@template', (template, payload) => {
|
|
109
60
|
return render(template, payload);
|
|
110
61
|
});
|
|
111
|
-
registerDirective('@timestamp', (opts, payload) => {
|
|
112
|
-
if (!isObject(opts)) {
|
|
113
|
-
throw new Error(`@timestamp: requires an object, got ${realTypeOf(opts)}`);
|
|
114
|
-
}
|
|
115
|
-
const ts = resolve(opts.timestamp, payload);
|
|
116
|
-
if (!isString(ts)) {
|
|
117
|
-
throw new Error(`@timestamp: timestamp must be a string, got ${realTypeOf(ts)}`);
|
|
118
|
-
}
|
|
119
|
-
const format = resolve(opts.format, payload);
|
|
120
|
-
if (!isString(format)) {
|
|
121
|
-
throw new Error(`@timestamp: format must be a string, got ${realTypeOf(format)}`);
|
|
122
|
-
}
|
|
123
|
-
const inputFormat = resolve(opts.inputFormat, payload);
|
|
124
|
-
if (inputFormat !== undefined && !isString(inputFormat)) {
|
|
125
|
-
throw new Error(`@timestamp: inputFormat must be a string, got ${realTypeOf(inputFormat)}`);
|
|
126
|
-
}
|
|
127
|
-
const dayjsTs = dayjs.utc(ts, inputFormat);
|
|
128
|
-
if (format === 'json') {
|
|
129
|
-
return dayjsTs.toJSON();
|
|
130
|
-
}
|
|
131
|
-
return dayjsTs.format(format);
|
|
132
|
-
});
|
|
133
|
-
registerDirective('@uuid', (_, _payload) => uuidv4());
|
|
134
|
-
/**
|
|
135
|
-
* Resolves a mapping value/object by applying the input payload based on directives
|
|
136
|
-
* *WARNING* This function mutates `mapping` when an object
|
|
137
|
-
* @param mapping - the mapping directives or raw values to resolve
|
|
138
|
-
* @param payload - the input data to apply to the mapping directives
|
|
139
|
-
* @todo support arrays or array directives?
|
|
140
|
-
*/
|
|
141
62
|
function resolve(mapping, payload) {
|
|
142
63
|
if (!isObject(mapping) && !isArray(mapping)) {
|
|
143
64
|
return mapping;
|
|
@@ -154,22 +75,14 @@ function resolve(mapping, payload) {
|
|
|
154
75
|
}
|
|
155
76
|
return mapping;
|
|
156
77
|
}
|
|
157
|
-
/**
|
|
158
|
-
* Validates and transforms a mapping by applying the input payload
|
|
159
|
-
* based on the directives and raw values defined in the mapping object
|
|
160
|
-
* @param mapping - the directives and raw values
|
|
161
|
-
* @param payload - the input data to apply to directives
|
|
162
|
-
*/
|
|
163
78
|
export function transform(mapping, payload = {}) {
|
|
164
79
|
const payloadType = realTypeOf(payload);
|
|
165
80
|
if (payloadType !== 'object') {
|
|
166
81
|
throw new Error(`payload must be an object, got ${payloadType}`);
|
|
167
82
|
}
|
|
168
|
-
// throws if the mapping config is invalid
|
|
169
83
|
validate(mapping);
|
|
170
84
|
let resolved = resolve(mapping, payload);
|
|
171
85
|
resolved = removeUndefined(resolved);
|
|
172
|
-
// Cast because we know there are no `undefined` values anymore
|
|
173
86
|
return resolved;
|
|
174
87
|
}
|
|
175
88
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mapping-kit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mapping-kit/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,6 @@ export function isDirective(obj) {
|
|
|
8
8
|
if (!hasDirectivePrefix) {
|
|
9
9
|
return false;
|
|
10
10
|
}
|
|
11
|
-
// Ensure there aren't any other keys besides `@directive` or `_metadata`
|
|
12
11
|
const otherKeys = keys.filter((key) => !key.startsWith('@') && key !== '_metadata');
|
|
13
12
|
if (otherKeys.length === 0) {
|
|
14
13
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-directive.js","sourceRoot":"","sources":["../../../src/mapping-kit/is-directive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAClB,OAAO,KAAK,CAAA;KACb;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IAClE,IAAI,CAAC,kBAAkB,EAAE;QACvB,OAAO,KAAK,CAAA;KACb;
|
|
1
|
+
{"version":3,"file":"is-directive.js","sourceRoot":"","sources":["../../../src/mapping-kit/is-directive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAClB,OAAO,KAAK,CAAA;KACb;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IAClE,IAAI,CAAC,kBAAkB,EAAE;QACvB,OAAO,KAAK,CAAA;KACb;IAGD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,WAAW,CAAC,CAAA;IACnF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -17,9 +17,6 @@ function escapeHtml(value) {
|
|
|
17
17
|
return entityMap[match];
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
/**
|
|
21
|
-
* Replaces curly brace placeholders in a template with real content
|
|
22
|
-
*/
|
|
23
20
|
export function render(template, data = {}) {
|
|
24
21
|
if (typeof template !== 'string') {
|
|
25
22
|
throw new TypeError(`Invalid template! Template should be a "string" but ${realTypeOf(template)} was given.`);
|
|
@@ -27,11 +24,8 @@ export function render(template, data = {}) {
|
|
|
27
24
|
function replacer(chars, escape) {
|
|
28
25
|
return (match) => {
|
|
29
26
|
var _a;
|
|
30
|
-
// Remove the wrapping curly braces
|
|
31
27
|
match = match.slice(chars, -chars).trim();
|
|
32
|
-
// Grab the value from data, if it exists
|
|
33
28
|
const value = get(data, match);
|
|
34
|
-
// Replace with the value (or empty string)
|
|
35
29
|
if (escape) {
|
|
36
30
|
return String((_a = escapeHtml(value)) !== null && _a !== void 0 ? _a : '');
|
|
37
31
|
}
|
|
@@ -39,9 +33,7 @@ export function render(template, data = {}) {
|
|
|
39
33
|
};
|
|
40
34
|
}
|
|
41
35
|
return (template
|
|
42
|
-
// Replace unescaped content
|
|
43
36
|
.replace(/\{\{\{([^}]+)\}\}\}/g, replacer(3, false))
|
|
44
|
-
// Replace escaped content
|
|
45
37
|
.replace(/\{\{([^}]+)\}\}/g, replacer(2, true)));
|
|
46
38
|
}
|
|
47
39
|
//# sourceMappingURL=placeholders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"placeholders.js","sourceRoot":"","sources":["../../../src/mapping-kit/placeholders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,SAAS,GAA2B;IACxC,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;CACd,CAAA;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5C,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"placeholders.js","sourceRoot":"","sources":["../../../src/mapping-kit/placeholders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,SAAS,GAA2B;IACxC,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;CACd,CAAA;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5C,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC;AAKD,MAAM,UAAU,MAAM,CAAC,QAAgB,EAAE,OAAgB,EAAE;IACzD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,MAAM,IAAI,SAAS,CAAC,uDAAuD,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;KAC9G;IAED,SAAS,QAAQ,CAAC,KAAa,EAAE,MAAe;QAC9C,OAAO,CAAC,KAAa,EAAU,EAAE;;YAE/B,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;YAGzC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAG9B,IAAI,MAAM,EAAE;gBACV,OAAO,MAAM,CAAC,MAAA,UAAU,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC,CAAA;aACvC;YAED,OAAO,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAW,CAAA;QAChC,CAAC,CAAA;IACH,CAAC;IAED,OAAO,CACL,QAAQ;SAEL,OAAO,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SAEnD,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAClD,CAAA;AACH,CAAC"}
|