@segment/actions-core 1.3.0-next.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 +5 -0
- package/dist/cjs/create-request-client.js +24 -0
- package/dist/cjs/dayjs.d.ts +2 -0
- package/dist/cjs/dayjs.js +10 -0
- package/dist/cjs/defaults.d.ts +2 -0
- package/dist/cjs/defaults.js +15 -0
- package/dist/cjs/destination-kit/action.d.ts +86 -0
- package/dist/cjs/destination-kit/action.js +217 -0
- package/dist/cjs/destination-kit/fields-to-jsonschema.d.ts +4 -0
- package/dist/cjs/destination-kit/fields-to-jsonschema.js +38 -0
- package/dist/cjs/destination-kit/index.d.ts +84 -0
- package/dist/cjs/destination-kit/index.js +165 -0
- package/dist/cjs/destination-kit/step.d.ts +38 -0
- package/dist/cjs/destination-kit/step.js +54 -0
- package/dist/cjs/destination-kit/types.d.ts +39 -0
- package/dist/cjs/destination-kit/types.js +3 -0
- package/dist/cjs/get.d.ts +5 -0
- package/dist/cjs/get.js +22 -0
- package/dist/cjs/index.d.ts +12 -0
- package/dist/cjs/index.js +26 -0
- package/dist/cjs/json-object.d.ts +11 -0
- package/dist/cjs/json-object.js +3 -0
- package/dist/cjs/mapping-kit/index.d.ts +8 -0
- package/dist/cjs/mapping-kit/index.js +182 -0
- package/dist/cjs/mapping-kit/is-directive.d.ts +2 -0
- package/dist/cjs/mapping-kit/is-directive.js +22 -0
- package/dist/cjs/mapping-kit/placeholders.d.ts +4 -0
- package/dist/cjs/mapping-kit/placeholders.js +51 -0
- package/dist/cjs/mapping-kit/validate.d.ts +1 -0
- package/dist/cjs/mapping-kit/validate.js +280 -0
- package/dist/cjs/omit.d.ts +4 -0
- package/dist/cjs/omit.js +15 -0
- package/dist/cjs/real-type-of.d.ts +12 -0
- package/dist/cjs/real-type-of.js +25 -0
- package/dist/cjs/remove-undefined.d.ts +1 -0
- package/dist/cjs/remove-undefined.js +24 -0
- package/dist/cjs/segment-event.d.ts +127 -0
- package/dist/cjs/segment-event.js +3 -0
- package/dist/cjs/time.d.ts +8 -0
- package/dist/cjs/time.js +18 -0
- package/dist/esm/create-request-client.d.ts +5 -0
- package/dist/esm/create-request-client.js +18 -0
- package/dist/esm/dayjs.d.ts +2 -0
- package/dist/esm/dayjs.js +5 -0
- package/dist/esm/defaults.d.ts +2 -0
- package/dist/esm/defaults.js +11 -0
- package/dist/esm/destination-kit/action.d.ts +86 -0
- package/dist/esm/destination-kit/action.js +209 -0
- package/dist/esm/destination-kit/fields-to-jsonschema.d.ts +4 -0
- package/dist/esm/destination-kit/fields-to-jsonschema.js +33 -0
- package/dist/esm/destination-kit/index.d.ts +84 -0
- package/dist/esm/destination-kit/index.js +157 -0
- package/dist/esm/destination-kit/step.d.ts +38 -0
- package/dist/esm/destination-kit/step.js +49 -0
- package/dist/esm/destination-kit/types.d.ts +39 -0
- package/dist/esm/destination-kit/types.js +2 -0
- package/dist/esm/get.d.ts +5 -0
- package/dist/esm/get.js +18 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/json-object.d.ts +11 -0
- package/dist/esm/json-object.js +2 -0
- package/dist/esm/mapping-kit/index.d.ts +8 -0
- package/dist/esm/mapping-kit/index.js +175 -0
- package/dist/esm/mapping-kit/is-directive.d.ts +2 -0
- package/dist/esm/mapping-kit/is-directive.js +18 -0
- package/dist/esm/mapping-kit/placeholders.d.ts +4 -0
- package/dist/esm/mapping-kit/placeholders.js +47 -0
- package/dist/esm/mapping-kit/validate.d.ts +1 -0
- package/dist/esm/mapping-kit/validate.js +274 -0
- package/dist/esm/omit.d.ts +4 -0
- package/dist/esm/omit.js +11 -0
- package/dist/esm/real-type-of.d.ts +12 -0
- package/dist/esm/real-type-of.js +18 -0
- package/dist/esm/remove-undefined.d.ts +1 -0
- package/dist/esm/remove-undefined.js +20 -0
- package/dist/esm/segment-event.d.ts +127 -0
- package/dist/esm/segment-event.js +2 -0
- package/dist/esm/time.d.ts +8 -0
- package/dist/esm/time.js +13 -0
- package/package.json +74 -0
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import AggregateError from 'aggregate-error';
|
|
2
|
+
import { CustomError } from 'ts-custom-error';
|
|
3
|
+
import { isDirective } from './is-directive';
|
|
4
|
+
import { isObject, realTypeOf } from '../real-type-of';
|
|
5
|
+
class ValidationError extends CustomError {
|
|
6
|
+
constructor(message, stack = []) {
|
|
7
|
+
super(`/${stack.join('/')} ${message}.`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
function flatAggregate(errors) {
|
|
11
|
+
const result = [];
|
|
12
|
+
errors.forEach((error) => {
|
|
13
|
+
if (error instanceof AggregateError) {
|
|
14
|
+
result.push(...error);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
result.push(error);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
function realTypeOrDirective(value) {
|
|
23
|
+
const type = realTypeOf(value);
|
|
24
|
+
if (type === 'object' && Object.keys(value).some((k) => k.startsWith('@'))) {
|
|
25
|
+
return 'directive';
|
|
26
|
+
}
|
|
27
|
+
return type;
|
|
28
|
+
}
|
|
29
|
+
const directives = {};
|
|
30
|
+
function validateDirective(obj, stack = []) {
|
|
31
|
+
// "allow" non-directive objects so that we can throw a more descriptive error below
|
|
32
|
+
if (!isDirective(obj) && !isObject(obj)) {
|
|
33
|
+
const type = realTypeOf(obj);
|
|
34
|
+
throw new ValidationError(`should be a directive object but it is ${indefiniteArticle(type)} ${type}`, stack);
|
|
35
|
+
}
|
|
36
|
+
const keys = Object.keys(obj);
|
|
37
|
+
const directiveKeys = keys.filter((key) => key.startsWith('@'));
|
|
38
|
+
if (directiveKeys.length > 1) {
|
|
39
|
+
throw new ValidationError(`should only have one @-prefixed key but it has ${directiveKeys.length} keys`, stack);
|
|
40
|
+
}
|
|
41
|
+
// Check that there aren't other keys besides @directive or _metadata
|
|
42
|
+
const otherKeys = keys.filter((key) => !key.startsWith('@') && key !== '_metadata');
|
|
43
|
+
if (otherKeys.length > 0) {
|
|
44
|
+
throw new ValidationError(`should only have one @-prefixed key but it has ${keys.length} keys`, stack);
|
|
45
|
+
}
|
|
46
|
+
const directiveKey = directiveKeys[0];
|
|
47
|
+
const fn = directives[directiveKey];
|
|
48
|
+
if (typeof fn !== 'function') {
|
|
49
|
+
throw new ValidationError(`has an invalid directive: ${directiveKey}`, stack);
|
|
50
|
+
}
|
|
51
|
+
fn(obj[directiveKey], stack);
|
|
52
|
+
}
|
|
53
|
+
function validateDirectiveOrRaw(v, stack = []) {
|
|
54
|
+
const type = realTypeOrDirective(v);
|
|
55
|
+
switch (type) {
|
|
56
|
+
case 'directive':
|
|
57
|
+
return validateDirective(v, stack);
|
|
58
|
+
case 'object':
|
|
59
|
+
case 'array':
|
|
60
|
+
case 'boolean':
|
|
61
|
+
case 'string':
|
|
62
|
+
case 'number':
|
|
63
|
+
case 'null':
|
|
64
|
+
return;
|
|
65
|
+
default:
|
|
66
|
+
throw new ValidationError(`should be a mapping directive or a JSON value but it is ${indefiniteArticle(type)} ${type}`, stack);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function validateDirectiveOrString(v, stack = []) {
|
|
70
|
+
const type = realTypeOrDirective(v);
|
|
71
|
+
switch (type) {
|
|
72
|
+
case 'directive':
|
|
73
|
+
return validateDirective(v, stack);
|
|
74
|
+
case 'string':
|
|
75
|
+
return;
|
|
76
|
+
default:
|
|
77
|
+
throw new ValidationError(`should be a string or a mapping directive but it is ${indefiniteArticle(type)} ${type}`, stack);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function validateDirectiveOrObject(v, stack = []) {
|
|
81
|
+
const type = realTypeOrDirective(v);
|
|
82
|
+
switch (type) {
|
|
83
|
+
case 'directive':
|
|
84
|
+
return validateDirective(v, stack);
|
|
85
|
+
case 'object':
|
|
86
|
+
return validateObject(v, stack);
|
|
87
|
+
default:
|
|
88
|
+
throw new ValidationError(`should be a mapping directive or an object but it is ${indefiniteArticle(type)} ${type}`, stack);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function validateDirectiveOrArray(v, stack = []) {
|
|
92
|
+
const type = realTypeOrDirective(v);
|
|
93
|
+
switch (type) {
|
|
94
|
+
case 'directive':
|
|
95
|
+
return validateDirective(v, stack);
|
|
96
|
+
case 'array':
|
|
97
|
+
return validateArray(v, stack);
|
|
98
|
+
default:
|
|
99
|
+
throw new ValidationError(`should be a mapping directive or an array but it is ${indefiniteArticle(type)} ${type}`, stack);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function validateObject(value, stack = []) {
|
|
103
|
+
const type = realTypeOrDirective(value);
|
|
104
|
+
if (type !== 'object') {
|
|
105
|
+
throw new ValidationError(`should be an object but it is ${indefiniteArticle(type)} ${type}`, stack);
|
|
106
|
+
}
|
|
107
|
+
const obj = value;
|
|
108
|
+
const keys = Object.keys(obj);
|
|
109
|
+
const directiveKey = keys.find((k) => k.charAt(0) === '@');
|
|
110
|
+
if (directiveKey) {
|
|
111
|
+
throw new ValidationError(`shouldn't have directive (@-prefixed) keys but it has ${JSON.stringify(directiveKey)}`, stack);
|
|
112
|
+
}
|
|
113
|
+
const errors = [];
|
|
114
|
+
keys.forEach((k) => {
|
|
115
|
+
try {
|
|
116
|
+
validate(obj[k], [...stack, k]);
|
|
117
|
+
}
|
|
118
|
+
catch (e) {
|
|
119
|
+
errors.push(e);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
if (errors.length) {
|
|
123
|
+
throw new AggregateError(flatAggregate(errors));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function validateObjectWithFields(input, fields, stack = []) {
|
|
127
|
+
validateObject(input, stack);
|
|
128
|
+
const errors = [];
|
|
129
|
+
const obj = input;
|
|
130
|
+
Object.entries(fields).forEach(([prop, { required, optional }]) => {
|
|
131
|
+
try {
|
|
132
|
+
if (required) {
|
|
133
|
+
if (obj[prop] === undefined) {
|
|
134
|
+
throw new ValidationError(`should have field ${JSON.stringify(prop)} but it doesn't`, stack);
|
|
135
|
+
}
|
|
136
|
+
required(obj[prop], [...stack, prop]);
|
|
137
|
+
}
|
|
138
|
+
else if (optional) {
|
|
139
|
+
if (obj[prop] !== undefined) {
|
|
140
|
+
optional(obj[prop], [...stack, prop]);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
errors.push(error);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
if (errors.length) {
|
|
149
|
+
throw new AggregateError(flatAggregate(errors));
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
function validateArray(arr, stack = []) {
|
|
153
|
+
const type = realTypeOf(arr);
|
|
154
|
+
if (type !== 'array') {
|
|
155
|
+
throw new ValidationError(`should be an array but it is ${indefiniteArticle(type)} ${type}`, stack);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
function directive(names, fn) {
|
|
159
|
+
if (!Array.isArray(names)) {
|
|
160
|
+
names = [names];
|
|
161
|
+
}
|
|
162
|
+
names.forEach((name) => {
|
|
163
|
+
directives[name] = (v, stack = []) => {
|
|
164
|
+
try {
|
|
165
|
+
fn(v, [...stack, name]);
|
|
166
|
+
}
|
|
167
|
+
catch (e) {
|
|
168
|
+
if (e instanceof ValidationError || e instanceof AggregateError) {
|
|
169
|
+
throw e;
|
|
170
|
+
}
|
|
171
|
+
throw new ValidationError(e.message, stack);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
directive('@base64', (v, stack) => {
|
|
177
|
+
validateDirectiveOrString(v, stack);
|
|
178
|
+
});
|
|
179
|
+
directive('@if', (v, stack) => {
|
|
180
|
+
validateObjectWithFields(v, {
|
|
181
|
+
exists: { optional: validateDirectiveOrRaw },
|
|
182
|
+
true: { optional: validateDirectiveOrRaw },
|
|
183
|
+
then: { optional: validateDirectiveOrRaw },
|
|
184
|
+
else: { optional: validateDirectiveOrRaw }
|
|
185
|
+
}, stack);
|
|
186
|
+
});
|
|
187
|
+
directive('@json', (v, stack) => {
|
|
188
|
+
validateDirectiveOrRaw(v, stack);
|
|
189
|
+
});
|
|
190
|
+
directive('@lowercase', (v, stack) => {
|
|
191
|
+
validateDirectiveOrString(v, stack);
|
|
192
|
+
});
|
|
193
|
+
directive('@merge', (v, stack = []) => {
|
|
194
|
+
validateArray(v, stack);
|
|
195
|
+
const arr = v;
|
|
196
|
+
const errors = [];
|
|
197
|
+
arr.forEach((obj, i) => {
|
|
198
|
+
try {
|
|
199
|
+
validateDirectiveOrObject(obj, [...stack, `${i}`]);
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
errors.push(error);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
if (errors.length) {
|
|
206
|
+
throw new AggregateError(errors);
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
directive(['@omit', '@pick'], (v, stack = []) => {
|
|
210
|
+
validateObjectWithFields(v, {
|
|
211
|
+
object: { required: validateDirectiveOrObject },
|
|
212
|
+
fields: { required: validateDirectiveOrArray }
|
|
213
|
+
}, stack);
|
|
214
|
+
const obj = v;
|
|
215
|
+
if (Array.isArray(obj.fields)) {
|
|
216
|
+
const errors = [];
|
|
217
|
+
obj.fields.forEach((field, i) => {
|
|
218
|
+
try {
|
|
219
|
+
validateDirectiveOrString(field, [...stack, i.toString()]);
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
errors.push(error);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
if (errors.length) {
|
|
226
|
+
throw new AggregateError(errors);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
directive('@path', (v, stack) => {
|
|
231
|
+
validateDirectiveOrString(v, stack);
|
|
232
|
+
});
|
|
233
|
+
directive('@root', () => {
|
|
234
|
+
// no-op
|
|
235
|
+
});
|
|
236
|
+
directive('@template', (v, stack) => {
|
|
237
|
+
validateDirectiveOrString(v, stack);
|
|
238
|
+
});
|
|
239
|
+
directive('@timestamp', (v, stack) => {
|
|
240
|
+
validateObjectWithFields(v, {
|
|
241
|
+
format: { required: validateDirectiveOrString },
|
|
242
|
+
inputFormat: { optional: validateDirectiveOrString },
|
|
243
|
+
timestamp: { required: validateDirectiveOrString }
|
|
244
|
+
}, stack);
|
|
245
|
+
});
|
|
246
|
+
directive('@uuid', () => {
|
|
247
|
+
// no-op
|
|
248
|
+
});
|
|
249
|
+
function indefiniteArticle(s) {
|
|
250
|
+
switch (s.charAt(0)) {
|
|
251
|
+
case 'a':
|
|
252
|
+
case 'e':
|
|
253
|
+
case 'i':
|
|
254
|
+
case 'o':
|
|
255
|
+
case 'u':
|
|
256
|
+
return 'an';
|
|
257
|
+
default:
|
|
258
|
+
return 'a';
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
export default function validate(mapping, stack = []) {
|
|
262
|
+
switch (realTypeOrDirective(mapping)) {
|
|
263
|
+
case 'directive':
|
|
264
|
+
return validateDirective(mapping, stack);
|
|
265
|
+
case 'object':
|
|
266
|
+
return validateObject(mapping, stack);
|
|
267
|
+
case 'array':
|
|
268
|
+
return validateArray(mapping, stack);
|
|
269
|
+
default:
|
|
270
|
+
// All other types are valid "raw" mappings
|
|
271
|
+
return null;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWFwcGluZy1raXQvdmFsaWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxjQUFjLE1BQU0saUJBQWlCLENBQUE7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBYyxNQUFNLGlCQUFpQixDQUFBO0FBRWxFLE1BQU0sZUFBZ0IsU0FBUSxXQUFXO0lBQ3ZDLFlBQVksT0FBZSxFQUFFLFFBQWtCLEVBQUU7UUFDL0MsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFBO0lBQzFDLENBQUM7Q0FDRjtBQUVELFNBQVMsYUFBYSxDQUFDLE1BQWU7SUFDcEMsTUFBTSxNQUFNLEdBQVksRUFBRSxDQUFBO0lBRTFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUN2QixJQUFJLEtBQUssWUFBWSxjQUFjLEVBQUU7WUFDbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFBO1NBQ3RCO2FBQU07WUFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQ25CO0lBQ0gsQ0FBQyxDQUFDLENBQUE7SUFFRixPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEtBQWM7SUFDekMsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlCLElBQUksSUFBSSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFF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
|
package/dist/esm/omit.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight alternative to lodash.omit. Faster, and way less code.
|
|
3
|
+
*/
|
|
4
|
+
export function omit(obj, keys) {
|
|
5
|
+
return Object.keys(obj).reduce((newObject, key) => {
|
|
6
|
+
if (keys.indexOf(key) === -1)
|
|
7
|
+
newObject[key] = obj[key];
|
|
8
|
+
return newObject;
|
|
9
|
+
}, {});
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib21pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLElBQUksQ0FBdUMsR0FBTSxFQUFFLElBQU87SUFDeEUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNoRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFJLEdBQStCLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDcEYsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQyxFQUFFLEVBQTZCLENBQXFCLENBQUE7QUFDdkQsQ0FBQyJ9
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets the "true" type of an object, since JS `typeof` often returns `'object'`
|
|
3
|
+
* for arrays, date, regexp, and null
|
|
4
|
+
* @param obj - the object to get the real type of
|
|
5
|
+
*/
|
|
6
|
+
export declare function realTypeOf(obj: unknown): "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" | "null" | "array" | "regexp";
|
|
7
|
+
export interface Dictionary<T = unknown> {
|
|
8
|
+
[key: string]: T;
|
|
9
|
+
}
|
|
10
|
+
export declare function isObject(value: unknown): value is Dictionary;
|
|
11
|
+
export declare function isArray(value: unknown): value is unknown[];
|
|
12
|
+
export declare function isString(value: unknown): value is string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets the "true" type of an object, since JS `typeof` often returns `'object'`
|
|
3
|
+
* for arrays, date, regexp, and null
|
|
4
|
+
* @param obj - the object to get the real type of
|
|
5
|
+
*/
|
|
6
|
+
export function realTypeOf(obj) {
|
|
7
|
+
return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();
|
|
8
|
+
}
|
|
9
|
+
export function isObject(value) {
|
|
10
|
+
return realTypeOf(value) === 'object';
|
|
11
|
+
}
|
|
12
|
+
export function isArray(value) {
|
|
13
|
+
return Array.isArray(value);
|
|
14
|
+
}
|
|
15
|
+
export function isString(value) {
|
|
16
|
+
return typeof value === 'string';
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhbC10eXBlLW9mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlYWwtdHlwZS1vZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUFZO0lBQ3JDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBV3ZELENBQUE7QUFDZCxDQUFDO0FBTUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFjO0lBQ3JDLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVEsQ0FBQTtBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUFjO0lBQ3BDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUM3QixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFjO0lBQ3JDLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFBO0FBQ2xDLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function removeUndefined<T = unknown>(value: T): T;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { isObject } from './real-type-of';
|
|
2
|
+
export function removeUndefined(value) {
|
|
3
|
+
if (Array.isArray(value)) {
|
|
4
|
+
return value.map((item) => removeUndefined(item));
|
|
5
|
+
}
|
|
6
|
+
else if (isObject(value)) {
|
|
7
|
+
const cleaned = Object.assign({}, value);
|
|
8
|
+
Object.keys(cleaned).forEach((key) => {
|
|
9
|
+
if (cleaned[key] === undefined) {
|
|
10
|
+
delete cleaned[key];
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
cleaned[key] = removeUndefined(cleaned[key]);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
return cleaned;
|
|
17
|
+
}
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLXVuZGVmaW5lZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW1vdmUtdW5kZWZpbmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQU16QyxNQUFNLFVBQVUsZUFBZSxDQUFjLEtBQVE7SUFDbkQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3hCLE9BQVEsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFrQixDQUFBO0tBQ3BFO1NBQU0sSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDMUIsTUFBTSxPQUFPLEdBQWUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDcEQsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNuQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUU7Z0JBQzlCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ3BCO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7YUFDN0M7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQVEsT0FBd0IsQ0FBQTtLQUNqQztJQUVELE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQyJ9
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { JSONValue } from './json-object';
|
|
2
|
+
declare type ID = string | null | undefined;
|
|
3
|
+
declare type CompactMetricType = 'g' | 'c';
|
|
4
|
+
interface CompactMetric {
|
|
5
|
+
m: string;
|
|
6
|
+
v: number;
|
|
7
|
+
k: CompactMetricType;
|
|
8
|
+
t: string[];
|
|
9
|
+
e: number;
|
|
10
|
+
}
|
|
11
|
+
export declare type Integrations = {
|
|
12
|
+
All?: boolean;
|
|
13
|
+
[integration: string]: boolean | undefined;
|
|
14
|
+
};
|
|
15
|
+
export declare type Options = {
|
|
16
|
+
integrations?: Integrations;
|
|
17
|
+
anonymousId?: ID;
|
|
18
|
+
timestamp?: Date | string;
|
|
19
|
+
context?: AnalyticsContext;
|
|
20
|
+
traits?: object;
|
|
21
|
+
[key: string]: any;
|
|
22
|
+
};
|
|
23
|
+
interface AnalyticsContext {
|
|
24
|
+
page?: {
|
|
25
|
+
/**
|
|
26
|
+
* {@link https://github.com/segmentio/analytics.js-integrations/blob/2d5c637c022d2661c23449aed237d0d546bf062d/integrations/segmentio/lib/index.js#L151}
|
|
27
|
+
*/
|
|
28
|
+
path?: string;
|
|
29
|
+
referrer?: string;
|
|
30
|
+
search?: string;
|
|
31
|
+
title?: string;
|
|
32
|
+
url?: string;
|
|
33
|
+
};
|
|
34
|
+
metrics?: CompactMetric[];
|
|
35
|
+
/**
|
|
36
|
+
* {@link https://github.com/segmentio/analytics.js-integrations/blob/2d5c637c022d2661c23449aed237d0d546bf062d/integrations/segmentio/lib/index.js#L285}
|
|
37
|
+
*/
|
|
38
|
+
userAgent?: string;
|
|
39
|
+
/**
|
|
40
|
+
* {@link https://github.com/segmentio/analytics.js-integrations/blob/2d5c637c022d2661c23449aed237d0d546bf062d/integrations/segmentio/lib/index.js#L286-L289}
|
|
41
|
+
*/
|
|
42
|
+
locale?: string;
|
|
43
|
+
/**
|
|
44
|
+
* {@link https://github.com/segmentio/analytics.js-integrations/blob/2d5c637c022d2661c23449aed237d0d546bf062d/integrations/segmentio/lib/index.js#L290-L291}
|
|
45
|
+
*/
|
|
46
|
+
library?: {
|
|
47
|
+
name: string;
|
|
48
|
+
version: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* {@link https://github.com/segmentio/analytics.js-integrations/blob/2d5c637c022d2661c23449aed237d0d546bf062d/integrations/segmentio/lib/index.js#L292-L301}
|
|
52
|
+
*/
|
|
53
|
+
traits?: {
|
|
54
|
+
crossDomainId: string;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* utm params
|
|
58
|
+
* {@link https://github.com/segmentio/analytics.js-integrations/blob/2d5c637c022d2661c23449aed237d0d546bf062d/integrations/segmentio/lib/index.js#L303-L305}
|
|
59
|
+
* {@link https://github.com/segmentio/utm-params/blob/master/lib/index.js#L49}
|
|
60
|
+
*/
|
|
61
|
+
campaign?: {
|
|
62
|
+
/**
|
|
63
|
+
* This can also come from the "utm_campaign" param
|
|
64
|
+
*
|
|
65
|
+
* {@link https://github.com/segmentio/utm-params/blob/master/lib/index.js#L40}
|
|
66
|
+
*/
|
|
67
|
+
name: string;
|
|
68
|
+
term: string;
|
|
69
|
+
source: string;
|
|
70
|
+
medium: string;
|
|
71
|
+
content: string;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* {@link https://github.com/segmentio/analytics.js-integrations/blob/2d5c637c022d2661c23449aed237d0d546bf062d/integrations/segmentio/lib/index.js#L415}
|
|
75
|
+
*/
|
|
76
|
+
referrer?: {
|
|
77
|
+
btid?: string;
|
|
78
|
+
urid?: string;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* {@link https://github.com/segmentio/analytics.js-integrations/blob/2d5c637c022d2661c23449aed237d0d546bf062d/integrations/segmentio/lib/index.js#L322}
|
|
82
|
+
*/
|
|
83
|
+
amp?: {
|
|
84
|
+
id: string;
|
|
85
|
+
};
|
|
86
|
+
[key: string]: any;
|
|
87
|
+
}
|
|
88
|
+
export interface SegmentEvent {
|
|
89
|
+
messageId?: string;
|
|
90
|
+
type: 'track' | 'page' | 'identify' | 'group' | 'alias' | 'screen';
|
|
91
|
+
category?: string;
|
|
92
|
+
name?: string;
|
|
93
|
+
properties?: object & {
|
|
94
|
+
[k: string]: JSONValue;
|
|
95
|
+
};
|
|
96
|
+
traits?: object & {
|
|
97
|
+
[k: string]: JSONValue;
|
|
98
|
+
};
|
|
99
|
+
integrations?: Integrations;
|
|
100
|
+
context?: AnalyticsContext;
|
|
101
|
+
options?: Options;
|
|
102
|
+
userId?: ID;
|
|
103
|
+
anonymousId?: ID;
|
|
104
|
+
groupId?: ID;
|
|
105
|
+
previousId?: ID;
|
|
106
|
+
event?: string;
|
|
107
|
+
/**
|
|
108
|
+
* {@link https://github.com/segmentio/analytics.js-integrations/blob/2d5c637c022d2661c23449aed237d0d546bf062d/integrations/segmentio/lib/index.js#L284}
|
|
109
|
+
*/
|
|
110
|
+
writeKey?: string;
|
|
111
|
+
receivedAt?: Date | string;
|
|
112
|
+
/**
|
|
113
|
+
* {@link https://github.com/segmentio/analytics.js-integrations/blob/2d5c637c022d2661c23449aed237d0d546bf062d/integrations/segmentio/lib/index.js#L151}
|
|
114
|
+
*/
|
|
115
|
+
sentAt?: Date | string;
|
|
116
|
+
/**
|
|
117
|
+
* {@link https://github.com/segmentio/analytics.js-integrations/blob/2d5c637c022d2661c23449aed237d0d546bf062d/integrations/segmentio/lib/index.js#L311-L320}
|
|
118
|
+
*/
|
|
119
|
+
_metadata?: {
|
|
120
|
+
failedInitializations?: unknown[];
|
|
121
|
+
bundled?: string[];
|
|
122
|
+
unbundledIntegrations?: string[];
|
|
123
|
+
nodeVersion?: string;
|
|
124
|
+
};
|
|
125
|
+
timestamp?: Date | string;
|
|
126
|
+
}
|
|
127
|
+
export {};
|
package/dist/esm/time.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets hrtime for logging/metrics.
|
|
3
|
+
*/
|
|
4
|
+
export function time() {
|
|
5
|
+
return process.hrtime.bigint();
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Calculates the duration in decimal milliseconds for logging/metrics purposes.
|
|
9
|
+
*/
|
|
10
|
+
export function duration(start, stop) {
|
|
11
|
+
return Number(stop - start) / 1000000;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLElBQUk7SUFDbEIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFBO0FBQ2hDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBYSxFQUFFLElBQVk7SUFDbEQsT0FBTyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQTtBQUN2QyxDQUFDIn0=
|
package/package.json
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@segment/actions-core",
|
|
3
|
+
"description": "Core runtime for Destinations Actions.",
|
|
4
|
+
"version": "1.3.0-next.0",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/segmentio/fab-5-engine",
|
|
8
|
+
"directory": "packages/core"
|
|
9
|
+
},
|
|
10
|
+
"main": "dist/cjs/index.js",
|
|
11
|
+
"module": "dist/esm/index.js",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": "./dist/cjs/index.js",
|
|
14
|
+
"./": "./dist/cjs/"
|
|
15
|
+
},
|
|
16
|
+
"types": "dist/esm/index.d.ts",
|
|
17
|
+
"sideEffects": false,
|
|
18
|
+
"files": [
|
|
19
|
+
"dist",
|
|
20
|
+
"package.json"
|
|
21
|
+
],
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": ">=10.20"
|
|
24
|
+
},
|
|
25
|
+
"engineStrict": true,
|
|
26
|
+
"license": "UNLICENSED",
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "restricted",
|
|
29
|
+
"registry": "https://registry.npmjs.org"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "yarn clean && yarn build:cjs && yarn build:esm",
|
|
33
|
+
"build:cjs": "yarn tsc -p tsconfig.build.json -m commonjs --outDir dist/cjs",
|
|
34
|
+
"build:esm": "yarn tsc -p tsconfig.build.json -m es2015 --outDir dist/esm",
|
|
35
|
+
"clean": "tsc -b tsconfig.build.json --clean",
|
|
36
|
+
"postclean": "rm -rf dist",
|
|
37
|
+
"prepublishOnly": "yarn build",
|
|
38
|
+
"test": "jest",
|
|
39
|
+
"typecheck": "tsc --noEmit"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/jest": "^26.0.20",
|
|
43
|
+
"@types/json-schema": "^7.0.7",
|
|
44
|
+
"@types/lodash": "^4.14.168",
|
|
45
|
+
"@types/uuid": "^8.3.0",
|
|
46
|
+
"jest": "^26.6.3",
|
|
47
|
+
"lodash": "^4.17.20",
|
|
48
|
+
"nock": "^13.0.4"
|
|
49
|
+
},
|
|
50
|
+
"dependencies": {
|
|
51
|
+
"@segment/ajv-human-errors": "^1.1.0",
|
|
52
|
+
"@segment/fab5-subscriptions": "^1.0.0",
|
|
53
|
+
"aggregate-error": "^3.1.0",
|
|
54
|
+
"ajv": "^6.12.4",
|
|
55
|
+
"dayjs": "^1.10.3",
|
|
56
|
+
"got": "^10.0.0",
|
|
57
|
+
"http-errors": "^1.8.0",
|
|
58
|
+
"node-cache": "^5.1.2",
|
|
59
|
+
"ts-custom-error": "^3.2.0",
|
|
60
|
+
"uuid": "^8.3.2"
|
|
61
|
+
},
|
|
62
|
+
"jest": {
|
|
63
|
+
"preset": "ts-jest",
|
|
64
|
+
"testEnvironment": "node",
|
|
65
|
+
"modulePathIgnorePatterns": [
|
|
66
|
+
"<rootDir>/dist/"
|
|
67
|
+
],
|
|
68
|
+
"setupFilesAfterEnv": [
|
|
69
|
+
"<rootDir>/test/setup-after-env.ts"
|
|
70
|
+
],
|
|
71
|
+
"forceExit": true
|
|
72
|
+
},
|
|
73
|
+
"gitHead": "6ef73e023780e101419d558c1004c3f2bd13def3"
|
|
74
|
+
}
|