integreat 0.8.0-beta.2 → 0.8.0-beta.4
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/handlers/run.js +31 -9
- package/dist/handlers/run.js.map +1 -1
- package/dist/service/endpoints/match.js +2 -4
- package/dist/service/endpoints/match.js.map +1 -1
- package/dist/service/endpoints/types.d.ts +2 -2
- package/dist/types.d.ts +8 -2
- package/dist/utils/validateFilters.d.ts +2 -2
- package/dist/utils/validateFilters.js +25 -7
- package/dist/utils/validateFilters.js.map +1 -1
- package/package.json +3 -3
package/dist/handlers/run.js
CHANGED
|
@@ -10,10 +10,11 @@ const prepareAction = (action, meta) => ({
|
|
|
10
10
|
});
|
|
11
11
|
const isOkResponse = (response) => typeof response?.status === 'string' &&
|
|
12
12
|
['ok', 'noaction'].includes(response.status);
|
|
13
|
+
const addModify = (mutation) => (0, is_1.isObject)(mutation) ? { $modify: true, ...mutation } : mutation;
|
|
13
14
|
function mutateAction(action, mutation, responses, mapOptions) {
|
|
14
15
|
if (mutation && (0, is_1.isAction)(action)) {
|
|
15
16
|
const mutationIncludingAction = Array.isArray(mutation)
|
|
16
|
-
? ['$action', ...mutation]
|
|
17
|
+
? ['$action', ...mutation.map(addModify)]
|
|
17
18
|
: { '.': '$action', ...mutation };
|
|
18
19
|
const responsesIncludingAction = { ...responses, $action: action };
|
|
19
20
|
return (0, map_transform_1.mapTransform)(mutationIncludingAction, mapOptions)(responsesIncludingAction);
|
|
@@ -31,20 +32,26 @@ async function runAction(action, dispatch, meta) {
|
|
|
31
32
|
const prependResponseError = (response, message) => response?.error
|
|
32
33
|
? { ...response, error: `${message}${response.error}` }
|
|
33
34
|
: response;
|
|
34
|
-
const errorMessageFromResponses = (
|
|
35
|
-
.map((index) =>
|
|
35
|
+
const errorMessageFromResponses = (responses, ids) => responses
|
|
36
|
+
.map((response, index) => response.response?.error
|
|
37
|
+
? `'${ids[index]}' (${response.response?.status}: ${response.response?.error})`
|
|
38
|
+
: undefined)
|
|
39
|
+
.filter(Boolean)
|
|
36
40
|
.join(', ');
|
|
37
41
|
function responseFromResponses(responses, ids) {
|
|
38
42
|
const errorIndices = responses
|
|
39
43
|
.map((response, index) => isOkResponse(response?.response) ? undefined : index)
|
|
40
44
|
.filter((index) => index !== undefined);
|
|
45
|
+
const message = errorMessageFromResponses(responses, ids);
|
|
41
46
|
return {
|
|
42
47
|
response: errorIndices.length > 0
|
|
43
48
|
? {
|
|
44
49
|
status: 'error',
|
|
45
|
-
error:
|
|
50
|
+
error: message,
|
|
46
51
|
}
|
|
47
|
-
:
|
|
52
|
+
: message
|
|
53
|
+
? { status: 'ok', warning: `Message from steps: ${message}` }
|
|
54
|
+
: { status: 'ok' },
|
|
48
55
|
};
|
|
49
56
|
}
|
|
50
57
|
function getLastJobWithResponse(flow, responses) {
|
|
@@ -73,11 +80,23 @@ function isStepOk(steps, responses) {
|
|
|
73
80
|
return isOkResponse(responses[steps.id]?.response);
|
|
74
81
|
}
|
|
75
82
|
}
|
|
83
|
+
const messageFromValidationErrors = (vals) => vals
|
|
84
|
+
.map((val) => val.message)
|
|
85
|
+
.filter(Boolean)
|
|
86
|
+
.join(' | ');
|
|
87
|
+
function statusFromValidationErrors(vals) {
|
|
88
|
+
const statuses = vals.map((val) => val.status).filter(Boolean);
|
|
89
|
+
if (statuses.length === 0) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
return statuses[0];
|
|
93
|
+
}
|
|
76
94
|
async function runStep(step, responses, newResponses, dispatch, mapOptions, meta, prevStep) {
|
|
77
95
|
let response;
|
|
78
96
|
if (step.conditions) {
|
|
79
|
-
|
|
80
|
-
|
|
97
|
+
const validationErrors = (0, validateFilters_1.default)(step.conditions, true)(responses);
|
|
98
|
+
if (validationErrors.length > 0) {
|
|
99
|
+
response = setStepError(step.id, messageFromValidationErrors(validationErrors), statusFromValidationErrors(validationErrors));
|
|
81
100
|
}
|
|
82
101
|
}
|
|
83
102
|
else if (prevStep) {
|
|
@@ -153,7 +172,10 @@ exports.default = (jobs, mapOptions) => async function run(action, { dispatch })
|
|
|
153
172
|
}
|
|
154
173
|
const prevResponses = { action };
|
|
155
174
|
const responses = await runFlow(job, prevResponses, dispatch, mapOptions, meta);
|
|
156
|
-
const
|
|
157
|
-
|
|
175
|
+
const actionWithResponse = {
|
|
176
|
+
...action,
|
|
177
|
+
response: getFlowResponse(job, responses),
|
|
178
|
+
};
|
|
179
|
+
return cleanUpResponse(mutateAction(actionWithResponse, job.responseMutation, { ...responses, action: actionWithResponse }, mapOptions));
|
|
158
180
|
};
|
|
159
181
|
//# sourceMappingURL=run.js.map
|
package/dist/handlers/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/handlers/run.ts"],"names":[],"mappings":";;AACA,iDAAgE;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/handlers/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,16 +19,14 @@ const matchParams = ({ match: { params } = {} }, { payload }) => typeof params !
|
|
|
19
19
|
const matchIncoming = ({ match: { incoming: incomingEndpoint } = {} }, isIncoming) => incomingEndpoint === undefined || incomingEndpoint === isIncoming;
|
|
20
20
|
function isMatch(endpoint) {
|
|
21
21
|
const match = endpoint.match || {};
|
|
22
|
-
const matchFilters = match.filters
|
|
23
|
-
? (0, validateFilters_1.default)(match.filters)
|
|
24
|
-
: () => true;
|
|
22
|
+
const matchFilters = match.filters ? (0, validateFilters_1.default)(match.filters) : () => [];
|
|
25
23
|
return (action, isIncoming = false) => matchId(endpoint, action) &&
|
|
26
24
|
matchType(endpoint, action) &&
|
|
27
25
|
matchScope(endpoint, action) &&
|
|
28
26
|
matchAction(endpoint, action) &&
|
|
29
27
|
matchParams(endpoint, action) &&
|
|
30
28
|
matchIncoming(endpoint, isIncoming) &&
|
|
31
|
-
matchFilters(action);
|
|
29
|
+
matchFilters(action).length === 0;
|
|
32
30
|
}
|
|
33
31
|
exports.default = isMatch;
|
|
34
32
|
//# sourceMappingURL=match.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../../src/service/endpoints/match.ts"],"names":[],"mappings":";;AAAA,iEAAyD;AAGzD,6CAAiD;AAEjD,MAAM,UAAU,GAAG,CAAC,KAAyB,EAAE,KAAyB,EAAE,EAAE,CAC1E,IAAA,qBAAa,EAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAE7B,MAAM,QAAQ,GAAG,CAAC,MAA0B,EAAE,GAAW,EAAE,EAAE,CAC3D,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAA;AAErC,MAAM,OAAO,GAAG,CACd,QAAqB,EACrB,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,EAAU,EAClD,EAAE,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,EAAE,KAAK,UAAU,CAAA;AAE9C,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAe,EAAE,EAAE,OAAO,EAAU,EAAE,EAAE,CACrE,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;AAErD,MAAM,UAAU,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAe,EAAE,EAAE,OAAO,EAAU,EAAE,EAAE,CACtE,CAAC,KAAK,CAAC,KAAK;IACZ,UAAU,CACR,KAAK,CAAC,KAAK,EACX,OAAO,CAAC,EAAE;QACR,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,QAAQ;QACZ,CAAC,CAAC,YAAY,CACjB,CAAA;AAEH,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAe,EAAE,EAAE,IAAI,EAAU,EAAE,EAAE,CACpE,CAAC,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAEjD,MAAM,WAAW,GAAG,CAClB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAe,EACvC,EAAE,OAAO,EAAU,EACnB,EAAE,CACF,OAAO,MAAM,KAAK,QAAQ;IAC1B,MAAM,KAAK,IAAI;IACf,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAC1B,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAC7D,CAAA;AAEH,MAAM,aAAa,GAAG,CACpB,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAe,EAC3D,UAAmB,EACnB,EAAE,CAAC,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,KAAK,UAAU,CAAA;AAQtE,SAAwB,OAAO,CAC7B,QAAqB;IAErB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAA;IAClC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO
|
|
1
|
+
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../../src/service/endpoints/match.ts"],"names":[],"mappings":";;AAAA,iEAAyD;AAGzD,6CAAiD;AAEjD,MAAM,UAAU,GAAG,CAAC,KAAyB,EAAE,KAAyB,EAAE,EAAE,CAC1E,IAAA,qBAAa,EAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAE7B,MAAM,QAAQ,GAAG,CAAC,MAA0B,EAAE,GAAW,EAAE,EAAE,CAC3D,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAA;AAErC,MAAM,OAAO,GAAG,CACd,QAAqB,EACrB,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,EAAU,EAClD,EAAE,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,EAAE,KAAK,UAAU,CAAA;AAE9C,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAe,EAAE,EAAE,OAAO,EAAU,EAAE,EAAE,CACrE,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;AAErD,MAAM,UAAU,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAe,EAAE,EAAE,OAAO,EAAU,EAAE,EAAE,CACtE,CAAC,KAAK,CAAC,KAAK;IACZ,UAAU,CACR,KAAK,CAAC,KAAK,EACX,OAAO,CAAC,EAAE;QACR,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,QAAQ;QACZ,CAAC,CAAC,YAAY,CACjB,CAAA;AAEH,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAe,EAAE,EAAE,IAAI,EAAU,EAAE,EAAE,CACpE,CAAC,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAEjD,MAAM,WAAW,GAAG,CAClB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAe,EACvC,EAAE,OAAO,EAAU,EACnB,EAAE,CACF,OAAO,MAAM,KAAK,QAAQ;IAC1B,MAAM,KAAK,IAAI;IACf,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAC1B,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAC7D,CAAA;AAEH,MAAM,aAAa,GAAG,CACpB,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAe,EAC3D,UAAmB,EACnB,EAAE,CAAC,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,KAAK,UAAU,CAAA;AAQtE,SAAwB,OAAO,CAC7B,QAAqB;IAErB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAA;IAClC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,yBAAe,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAA;IAE9E,OAAO,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,EAAE,CACpC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC3B,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC5B,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC7B,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC7B,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC;QACnC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;AACrC,CAAC;AAdD,0BAcC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { MapDefinition } from 'map-transform';
|
|
2
|
-
import { Action,
|
|
2
|
+
import { Action, Condition } from '../../types';
|
|
3
3
|
export declare type EndpointOptions = Record<string, unknown>;
|
|
4
4
|
export interface MatchObject {
|
|
5
5
|
action?: string | string[];
|
|
6
6
|
type?: string | string[];
|
|
7
7
|
scope?: string | string[];
|
|
8
8
|
params?: Record<string, boolean | undefined>;
|
|
9
|
-
filters?: Record<string,
|
|
9
|
+
filters?: Record<string, Condition | boolean | undefined>;
|
|
10
10
|
incoming?: boolean;
|
|
11
11
|
}
|
|
12
12
|
export interface EndpointDef {
|
package/dist/types.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ import { MapObject, MapPipe } from 'map-transform';
|
|
|
3
3
|
import { EndpointOptions } from './service/endpoints/types';
|
|
4
4
|
import { IdentConfig } from './service/types';
|
|
5
5
|
import { Service } from './service/types';
|
|
6
|
-
export declare type JsonSchema = Record<string, unknown> | boolean;
|
|
7
6
|
export interface Reference {
|
|
8
7
|
id: string | null;
|
|
9
8
|
$ref: string;
|
|
@@ -32,9 +31,16 @@ export declare type ScheduleObject = {
|
|
|
32
31
|
wm?: number[];
|
|
33
32
|
wy?: number[];
|
|
34
33
|
};
|
|
34
|
+
export interface ConditionFailObject extends Record<string, unknown> {
|
|
35
|
+
message?: string;
|
|
36
|
+
status?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface Condition extends Record<string, unknown> {
|
|
39
|
+
onFail?: ConditionFailObject | string;
|
|
40
|
+
}
|
|
35
41
|
interface JobFields {
|
|
36
42
|
id: string;
|
|
37
|
-
conditions?: Record<string,
|
|
43
|
+
conditions?: Record<string, Condition | undefined>;
|
|
38
44
|
mutation?: MapObject | MapPipe;
|
|
39
45
|
}
|
|
40
46
|
export interface JobWithFlow extends JobFields {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Condition, ConditionFailObject } from '../types';
|
|
2
2
|
export declare type FilterFn = (data: unknown) => boolean;
|
|
3
|
-
export default function validateFilters(filters: Record<string,
|
|
3
|
+
export default function validateFilters(filters: Record<string, Condition | boolean | undefined>, useFriendlyMessages?: boolean): (data: unknown) => ConditionFailObject[];
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const util = require("util");
|
|
3
4
|
const map_transform_1 = require("map-transform");
|
|
4
5
|
const is_1 = require("./is");
|
|
6
|
+
const cleanCondition = ({ onFail, ...filter }) => filter;
|
|
7
|
+
const cleanFilter = (filter) => (0, is_1.isObject)(filter) ? cleanCondition(filter) : filter;
|
|
5
8
|
function prepareFilter(path, filter) {
|
|
6
9
|
if (path === '$or') {
|
|
7
10
|
if ((0, is_1.isObject)(filter)) {
|
|
@@ -9,19 +12,34 @@ function prepareFilter(path, filter) {
|
|
|
9
12
|
}
|
|
10
13
|
}
|
|
11
14
|
else if (filter) {
|
|
12
|
-
return (0, map_transform_1.validate)(path, filter);
|
|
15
|
+
return (0, map_transform_1.validate)(path, cleanFilter(filter));
|
|
13
16
|
}
|
|
14
17
|
return undefined;
|
|
15
18
|
}
|
|
16
|
-
|
|
19
|
+
const prepareMessage = (path, filter, useFriendlyMessages) => !useFriendlyMessages
|
|
20
|
+
? () => path
|
|
21
|
+
: (0, is_1.isObject)(filter)
|
|
22
|
+
? filter.onFail
|
|
23
|
+
? () => typeof filter.onFail === 'string'
|
|
24
|
+
? { message: filter.onFail }
|
|
25
|
+
: filter.onFail
|
|
26
|
+
: () => ({ message: `'${path}' did not pass ${util.inspect(filter)}` })
|
|
27
|
+
: () => ({ message: `'${path}' did not pass its condition` });
|
|
28
|
+
function validateFilters(filters, useFriendlyMessages = false) {
|
|
17
29
|
const filterFns = Object.entries(filters)
|
|
18
|
-
.map(([path, filter]) =>
|
|
19
|
-
|
|
30
|
+
.map(([path, filter]) => [
|
|
31
|
+
prepareFilter(path, filter),
|
|
32
|
+
prepareMessage(path, filter, useFriendlyMessages),
|
|
33
|
+
])
|
|
34
|
+
.filter(([filter]) => !!filter);
|
|
20
35
|
const isOrFilters = filters.$or === true;
|
|
21
36
|
return function validate(data) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
37
|
+
const failObjects = filterFns
|
|
38
|
+
.map(([filter, getMessage]) => (filter(data) ? undefined : getMessage()))
|
|
39
|
+
.filter(Boolean);
|
|
40
|
+
return isOrFilters && failObjects.length < filterFns.length
|
|
41
|
+
? []
|
|
42
|
+
: failObjects;
|
|
25
43
|
};
|
|
26
44
|
}
|
|
27
45
|
exports.default = validateFilters;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateFilters.js","sourceRoot":"","sources":["../../src/utils/validateFilters.ts"],"names":[],"mappings":";;AAAA,iDAAwC;AAExC,6BAA+B;
|
|
1
|
+
{"version":3,"file":"validateFilters.js","sourceRoot":"","sources":["../../src/utils/validateFilters.ts"],"names":[],"mappings":";;AAAA,6BAA6B;AAC7B,iDAAwC;AAExC,6BAA+B;AAM/B,MAAM,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAa,EAAE,EAAE,CAAC,MAAM,CAAA;AACnE,MAAM,WAAW,GAAG,CAAC,MAA2B,EAAE,EAAE,CAClD,IAAA,aAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AAEpD,SAAS,aAAa,CACpB,IAAY,EACZ,MAA0C;IAE1C,IAAI,IAAI,KAAK,KAAK,EAAE;QAClB,IAAI,IAAA,aAAQ,EAAC,MAAM,CAAC,EAAE;YACpB,OAAO,eAAe,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;SACjD;KACF;SAAM,IAAI,MAAM,EAAE;QACjB,OAAO,IAAA,wBAAQ,EAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;KAC3C;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,IAAY,EACZ,MAAuC,EACvC,mBAA4B,EAC5B,EAAE,CACF,CAAC,mBAAmB;IAClB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI;IACZ,CAAC,CAAC,IAAA,aAAQ,EAAC,MAAM,CAAC;QAClB,CAAC,CAAC,MAAM,CAAC,MAAM;YACb,CAAC,CAAC,GAAG,EAAE,CACH,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;gBAC/B,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;gBAC5B,CAAC,CAAC,MAAM,CAAC,MAAM;YACrB,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,kBAAkB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACzE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,8BAA8B,EAAE,CAAC,CAAA;AAEjE,SAAwB,eAAe,CACrC,OAAwD,EACxD,mBAAmB,GAAG,KAAK;IAE3B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;QACvB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAC3B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC;KAClD,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAuB,CAAA;IACvD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,KAAK,IAAI,CAAA;IAExC,OAAO,SAAS,QAAQ,CAAC,IAAa;QACpC,MAAM,WAAW,GAAG,SAAS;aAC1B,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;aACxE,MAAM,CAAC,OAAO,CAA0B,CAAA;QAC3C,OAAO,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;YACzD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,WAAW,CAAA;IACjB,CAAC,CAAA;AACH,CAAC;AApBD,kCAoBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "integreat",
|
|
3
|
-
"version": "0.8.0-beta.
|
|
3
|
+
"version": "0.8.0-beta.4",
|
|
4
4
|
"description": "Node.js integration layer",
|
|
5
5
|
"author": "Kjell-Morten Bratsberg Thorsen <kjellmorten@integreat.io> (https://integreat.io/)",
|
|
6
6
|
"license": "ISC",
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@integreat/ts-dev-setup": "^2.3.1",
|
|
58
58
|
"@types/sinon": "^10.0.13",
|
|
59
|
-
"integreat-transporter-http": "0.1.0-
|
|
59
|
+
"integreat-transporter-http": "0.1.0-beta.0",
|
|
60
60
|
"nock": "^13.2.9",
|
|
61
|
-
"sinon": "^14.0.
|
|
61
|
+
"sinon": "^14.0.1"
|
|
62
62
|
}
|
|
63
63
|
}
|