integreat 1.1.0 → 1.2.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/README.md +100 -32
- package/dist/Instance.js +121 -0
- package/dist/Instance.js.map +1 -0
- package/dist/authenticators/options.d.ts +4 -0
- package/dist/authenticators/options.js +43 -0
- package/dist/authenticators/options.js.map +1 -1
- package/dist/dispatch.js +2 -1
- package/dist/dispatch.js.map +1 -1
- package/dist/handlers/delete.js +2 -2
- package/dist/handlers/delete.js.map +1 -1
- package/dist/handlers/expire.js +1 -1
- package/dist/handlers/expire.js.map +1 -1
- package/dist/handlers/get.js +29 -35
- package/dist/handlers/get.js.map +1 -1
- package/dist/handlers/getAll.js +1 -1
- package/dist/handlers/getAll.js.map +1 -1
- package/dist/handlers/getIdent.js +1 -1
- package/dist/handlers/getIdent.js.map +1 -1
- package/dist/handlers/getMeta.js +1 -1
- package/dist/handlers/getMeta.js.map +1 -1
- package/dist/handlers/queue.js +1 -1
- package/dist/handlers/queue.js.map +1 -1
- package/dist/handlers/run.js +1 -1
- package/dist/handlers/run.js.map +1 -1
- package/dist/handlers/service.js +1 -2
- package/dist/handlers/service.js.map +1 -1
- package/dist/handlers/set.js +1 -2
- package/dist/handlers/set.js.map +1 -1
- package/dist/handlers/setMeta.js +1 -1
- package/dist/handlers/setMeta.js.map +1 -1
- package/dist/handlers/sync.js +1 -1
- package/dist/handlers/sync.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/jobs/Job.js +1 -1
- package/dist/jobs/Job.js.map +1 -1
- package/dist/jobs/Step.js +2 -1
- package/dist/jobs/Step.js.map +1 -1
- package/dist/service/Auth.d.ts +4 -4
- package/dist/service/Auth.js +26 -20
- package/dist/service/Auth.js.map +1 -1
- package/dist/service/Endpoint.js +1 -1
- package/dist/service/Endpoint.js.map +1 -1
- package/dist/service/Service.d.ts +2 -2
- package/dist/service/Service.js +22 -6
- package/dist/service/Service.js.map +1 -1
- package/dist/service/types.d.ts +1 -0
- package/dist/service/utils/incoming.js +2 -1
- package/dist/service/utils/incoming.js.map +1 -1
- package/dist/service/utils/resolveAuth.js +1 -1
- package/dist/service/utils/send.js +1 -1
- package/dist/service/utils/send.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/utils/action.d.ts +0 -3
- package/dist/utils/action.js +1 -43
- package/dist/utils/action.js.map +1 -1
- package/dist/utils/is.d.ts +1 -0
- package/dist/utils/is.js +1 -0
- package/dist/utils/is.js.map +1 -1
- package/dist/utils/mutateAndSend.js +4 -8
- package/dist/utils/mutateAndSend.js.map +1 -1
- package/dist/utils/response.d.ts +5 -0
- package/dist/utils/response.js +73 -0
- package/dist/utils/response.js.map +1 -0
- package/package.json +1 -1
- package/dist/instance.js +0 -106
- package/dist/instance.js.map +0 -1
- package/dist/utils/createUnknownServiceError.d.ts +0 -2
- package/dist/utils/createUnknownServiceError.js +0 -11
- package/dist/utils/createUnknownServiceError.js.map +0 -1
- /package/dist/{instance.d.ts → Instance.d.ts} +0 -0
package/dist/service/Service.js
CHANGED
|
@@ -4,7 +4,8 @@ import { sendToTransporter } from './utils/send.js';
|
|
|
4
4
|
import { dispatchIncoming, authenticateCallback } from './utils/incoming.js';
|
|
5
5
|
import { resolveAuth, resolveIncomingAuth } from './utils/resolveAuth.js';
|
|
6
6
|
import { castPayload, castResponse, getCastFn } from './utils/cast.js';
|
|
7
|
-
import { setErrorOnAction,
|
|
7
|
+
import { setErrorOnAction, setOriginOnAction, setOptionsOnAction, setResponseOnAction, } from '../utils/action.js';
|
|
8
|
+
import { createErrorResponse, setOrigin } from '../utils/response.js';
|
|
8
9
|
import { prepareOptions, mergeOptions } from './utils/options.js';
|
|
9
10
|
import Connection from './Connection.js';
|
|
10
11
|
import { lookupById, lookupByIds } from '../utils/indexUtils.js';
|
|
@@ -54,8 +55,23 @@ export default class Service {
|
|
|
54
55
|
async endpointFromAction(action, isIncoming = false) {
|
|
55
56
|
return await Endpoint.findMatchingEndpoint(this.#endpoints, action, isIncoming);
|
|
56
57
|
}
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
async preflightAction(action, endpoint) {
|
|
59
|
+
let preparedAction = authorizeAction(this.#schemas, !!this.#auth)(action);
|
|
60
|
+
if (preparedAction.response?.status) {
|
|
61
|
+
return preparedAction;
|
|
62
|
+
}
|
|
63
|
+
const validateResponse = await endpoint.validateAction(preparedAction);
|
|
64
|
+
if (validateResponse) {
|
|
65
|
+
return setResponseOnAction(action, validateResponse);
|
|
66
|
+
}
|
|
67
|
+
if (endpoint.options?.transporter.authInData && this.#auth) {
|
|
68
|
+
await this.#auth.authenticate(preparedAction);
|
|
69
|
+
preparedAction = this.#auth.applyToAction(preparedAction, this.#transporter);
|
|
70
|
+
if (preparedAction.response?.status) {
|
|
71
|
+
return setResponseOnAction(action, preparedAction.response);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return preparedAction;
|
|
59
75
|
}
|
|
60
76
|
async mutateRequest(action, endpoint) {
|
|
61
77
|
const castFn = getCastFn(this.#schemas, action.payload.type);
|
|
@@ -126,9 +142,9 @@ export default class Service {
|
|
|
126
142
|
return createErrorResponse(`Service '${this.id}' has no open connection`, `service:${this.id}`);
|
|
127
143
|
}
|
|
128
144
|
if (!isAuthorizedAction(action)) {
|
|
129
|
-
return createErrorResponse('
|
|
145
|
+
return createErrorResponse('Action has not been authorized by Integreat', `internal:service:${this.id}`, 'autherror');
|
|
130
146
|
}
|
|
131
|
-
if (this.#auth) {
|
|
147
|
+
if (this.#auth && !action.meta?.auth) {
|
|
132
148
|
await this.#auth.authenticate(action);
|
|
133
149
|
action = this.#auth.applyToAction(action, this.#transporter);
|
|
134
150
|
if (action.response?.status) {
|
|
@@ -156,7 +172,7 @@ export default class Service {
|
|
|
156
172
|
debug('Could not authenticate');
|
|
157
173
|
return setOrigin(this.#auth.getResponseFromAuth(), `service:${this.id}`, true);
|
|
158
174
|
}
|
|
159
|
-
if (!(await this.#connection.connect(this.#auth?.getAuthObject(this.#transporter)))) {
|
|
175
|
+
if (!(await this.#connection.connect(this.#auth?.getAuthObject(this.#transporter, null)))) {
|
|
160
176
|
debug(`Could not listen to '${this.id}' service. Failed to connect`);
|
|
161
177
|
return createErrorResponse(`Could not listen to '${this.id}' service. Failed to connect`, `service:${this.id}`);
|
|
162
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,OAAO,CAAA;AAC5B,OAAO,QAAQ,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,EACL,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"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"}
|
package/dist/service/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import pProgress from 'p-progress';
|
|
2
|
-
import { setErrorOnAction
|
|
2
|
+
import { setErrorOnAction } from '../../utils/action.js';
|
|
3
|
+
import { createErrorResponse, setOrigin } from '../../utils/response.js';
|
|
3
4
|
import { isObject } from '../../utils/is.js';
|
|
4
5
|
const identityFromIntegreat = Symbol('identityFromIntegreat');
|
|
5
6
|
const setServiceIdAsSourceServiceOnAction = (action, serviceId) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incoming.js","sourceRoot":"","sources":["../../../src/service/utils/incoming.ts"],"names":[],"mappings":"AACA,OAAO,SAA+B,MAAM,YAAY,CAAA;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"incoming.js","sourceRoot":"","sources":["../../../src/service/utils/incoming.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import Auth from '../Auth.js';
|
|
|
2
2
|
import identAuth from '../../authenticators/ident.js';
|
|
3
3
|
import { ensureArray } from '../../utils/array.js';
|
|
4
4
|
import { isNotNullOrUndefined, isObject } from '../../utils/is.js';
|
|
5
|
-
import { setUpAuth } from '../../
|
|
5
|
+
import { setUpAuth } from '../../Instance.js';
|
|
6
6
|
import { lookupById } from '../../utils/indexUtils.js';
|
|
7
7
|
const isAuthDef = (def) => isObject(def) &&
|
|
8
8
|
typeof def.id === 'string' &&
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createErrorResponse, setOrigin } from '../../utils/
|
|
1
|
+
import { createErrorResponse, setOrigin } from '../../utils/response.js';
|
|
2
2
|
export const sendToTransporter = (transporter, connection, serviceId) => async function send(action) {
|
|
3
3
|
try {
|
|
4
4
|
if (await connection.connect(action.meta?.auth)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/service/utils/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/service/utils/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAIxE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,WAAwB,EACxB,UAAsB,EACtB,SAAiB,EACjB,EAAE,CACF,KAAK,UAAU,IAAI,CAAC,MAAc;IAChC,IAAI;QACF,IAAI,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;YAC/C,OAAO,SAAS,CACd,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EACjD,WAAW,SAAS,EAAE,EACtB,IAAI,CACL,CAAA;SACF;aAAM;YACL,OAAO,mBAAmB,CACxB,iCAAiC,SAAS,OACxC,UAAU,CAAC,MACb,KAAK,UAAU,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EACpC,WAAW,SAAS,EAAE,CACvB,CAAA;SACF;KACF;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,mBAAmB,CACxB,kCAAkC,SAAS,MACxC,KAAe,CAAC,OACnB,EAAE,EACF,WAAW,SAAS,EAAE,CACvB,CAAA;KACF;AACH,CAAC,CAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -127,7 +127,8 @@ export interface AuthenticateExternal {
|
|
|
127
127
|
(authentication: Authentication, action?: Action | null): Promise<Response>;
|
|
128
128
|
}
|
|
129
129
|
export interface Transporter {
|
|
130
|
-
|
|
130
|
+
defaultAuthAsMethod?: string | null;
|
|
131
|
+
authentication?: string | null;
|
|
131
132
|
prepareOptions: (options: TransporterOptions, serviceId: string) => Record<string, unknown>;
|
|
132
133
|
connect: (options: TransporterOptions, authentication: Record<string, unknown> | null, connection: Connection | null, emit: (eventType: string, ...args: unknown[]) => void) => Promise<Connection | null>;
|
|
133
134
|
send: (action: Action, connection: Connection | null) => Promise<Response>;
|
package/dist/utils/action.d.ts
CHANGED
|
@@ -31,8 +31,5 @@ export declare function setResponseOnAction(action: Action, response?: Response)
|
|
|
31
31
|
meta?: Meta | undefined;
|
|
32
32
|
};
|
|
33
33
|
export declare function setOptionsOnAction(action: Action, endpoint: Endpoint): Action;
|
|
34
|
-
export declare function createErrorResponse(error: unknown, origin: string, status?: string, reason?: string): Response;
|
|
35
34
|
export declare function setErrorOnAction(action: Action, error: unknown, origin: string, status?: string): Action;
|
|
36
|
-
export declare function combineResponses(responses: Response[]): Response<unknown>;
|
|
37
|
-
export declare const setOrigin: (response: Response, origin: string, doPrefix?: boolean) => Response<unknown>;
|
|
38
35
|
export declare const setOriginOnAction: (action: Action, origin: string, doPrefix?: boolean) => Action<Payload<unknown>, unknown>;
|
package/dist/utils/action.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createErrorResponse, setOrigin } from './response.js';
|
|
2
2
|
export function createAction(type, payload = {}, meta = {}) {
|
|
3
3
|
if (!type) {
|
|
4
4
|
return null;
|
|
@@ -20,54 +20,12 @@ export function setOptionsOnAction(action, endpoint) {
|
|
|
20
20
|
meta: { ...action.meta, options: endpoint?.options.transporter || {} },
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
-
export function createErrorResponse(error, origin, status = 'error', reason) {
|
|
24
|
-
return {
|
|
25
|
-
status,
|
|
26
|
-
error: error instanceof Error
|
|
27
|
-
? error.message
|
|
28
|
-
: typeof error === 'string'
|
|
29
|
-
? error
|
|
30
|
-
: 'Unknown error',
|
|
31
|
-
...(reason ? { reason } : {}),
|
|
32
|
-
...(origin ? { origin } : {}),
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
23
|
export function setErrorOnAction(action, error, origin, status = 'error') {
|
|
36
24
|
return setResponseOnAction(action, {
|
|
37
25
|
...action.response,
|
|
38
26
|
...createErrorResponse(error, origin, status),
|
|
39
27
|
});
|
|
40
28
|
}
|
|
41
|
-
export function combineResponses(responses) {
|
|
42
|
-
if (responses.length < 2) {
|
|
43
|
-
return responses[0];
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
const error = responses
|
|
47
|
-
.filter((response) => response.error || isErrorResponse(response))
|
|
48
|
-
.map((response) => `[${response.status}] ${response.error}`)
|
|
49
|
-
.join(' | ');
|
|
50
|
-
const warning = responses
|
|
51
|
-
.filter((response) => response.warning)
|
|
52
|
-
.map((response) => response.warning)
|
|
53
|
-
.join(' | ');
|
|
54
|
-
return {
|
|
55
|
-
status: 'error',
|
|
56
|
-
...(error && { error }),
|
|
57
|
-
...(warning && { warning }),
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
export const setOrigin = (response, origin, doPrefix = false) => response.status === 'ok' || response.status === 'queued'
|
|
62
|
-
? response
|
|
63
|
-
: {
|
|
64
|
-
...response,
|
|
65
|
-
origin: response.origin
|
|
66
|
-
? doPrefix
|
|
67
|
-
? `${origin}:${response.origin}`
|
|
68
|
-
: response.origin
|
|
69
|
-
: origin,
|
|
70
|
-
};
|
|
71
29
|
export const setOriginOnAction = (action, origin, doPrefix = false) => typeof action.response?.status === 'string' &&
|
|
72
30
|
action.response?.status !== 'ok'
|
|
73
31
|
? { ...action, response: setOrigin(action.response, origin, doPrefix) }
|
package/dist/utils/action.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/utils/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/utils/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAO9D,MAAM,UAAU,YAAY,CAC1B,IAAa,EACb,UAAmB,EAAE,EACrB,OAAa,EAAE;IAEf,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAChC,CAAC;AAKD,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,IAAc;IACnE,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE;KACrC,CAAA;AACH,CAAC;AAKD,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,QAAmB;IACrE,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAA;AAChD,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,QAAkB;IACnE,OAAO;QACL,GAAG,MAAM;QACT,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE;KACvE,CAAA;AACH,CAAC;AAKD,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,KAAc,EACd,MAAc,EACd,MAAM,GAAG,OAAO;IAEhB,OAAO,mBAAmB,CAAC,MAAM,EAAE;QACjC,GAAG,MAAM,CAAC,QAAQ;QAClB,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;KAC9C,CAAC,CAAA;AACJ,CAAC;AAQD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAAc,EACd,MAAc,EACd,QAAQ,GAAG,KAAK,EAChB,EAAE,CACF,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,KAAK,QAAQ;IAC3C,MAAM,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;IAC9B,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;IACvE,CAAC,CAAC,MAAM,CAAA"}
|
package/dist/utils/is.d.ts
CHANGED
|
@@ -15,3 +15,4 @@ export declare const isErrorResponse: (response?: Response) => boolean;
|
|
|
15
15
|
export declare const isTruthy: (value: unknown) => boolean;
|
|
16
16
|
export declare const isFalsy: (value: unknown) => boolean;
|
|
17
17
|
export declare const not: (value: unknown) => boolean;
|
|
18
|
+
export declare const isDuplicate: <T = unknown>(error: T, index: number, errors: T[]) => boolean;
|
package/dist/utils/is.js
CHANGED
|
@@ -16,4 +16,5 @@ export const isErrorResponse = (response) => typeof response?.status === 'string
|
|
|
16
16
|
export const isTruthy = (value) => !!value;
|
|
17
17
|
export const isFalsy = (value) => !value;
|
|
18
18
|
export const not = isFalsy;
|
|
19
|
+
export const isDuplicate = (error, index, errors) => errors.indexOf(error) === index;
|
|
19
20
|
//# sourceMappingURL=is.js.map
|
package/dist/utils/is.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is.js","sourceRoot":"","sources":["../../src/utils/is.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;AAEhD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAC3E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAA;AAE7D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CACtD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,eAAe,CAAA;AAG3D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAe,EAAE,CAC3D,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CAChE,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;AAElD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CAChE,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAqB,EAAE,CAC3D,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;AAEnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAA4B,EAAE,CAC5E,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAA;AAEpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAA6B,EAAE,CAC7E,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAA;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAI,KAAQ,EAA2B,EAAE,CAC3E,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;AAE3B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAe,EAAoB,EAAE,CAC5D,QAAQ,CAAC,MAAM,CAAC;IAChB,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;IAC/B,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAE1B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAmB,EAAE,EAAE,CAClD,OAAO,QAAQ,EAAE,MAAM,KAAK,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAmB,EAAE,EAAE,CACrD,OAAO,QAAQ,EAAE,MAAM,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAEhF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;AAC5D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,CAAC,KAAK,CAAA;AAC1D,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAA"}
|
|
1
|
+
{"version":3,"file":"is.js","sourceRoot":"","sources":["../../src/utils/is.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;AAEhD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAC3E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAA;AAE7D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CACtD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,eAAe,CAAA;AAG3D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAe,EAAE,CAC3D,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;AAEpD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CAChE,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;AAElD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CAChE,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAqB,EAAE,CAC3D,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;AAEnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAA4B,EAAE,CAC5E,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAA;AAEpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAA6B,EAAE,CAC7E,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAA;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAI,KAAQ,EAA2B,EAAE,CAC3E,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;AAE3B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAe,EAAoB,EAAE,CAC5D,QAAQ,CAAC,MAAM,CAAC;IAChB,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;IAC/B,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAE1B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAmB,EAAE,EAAE,CAClD,OAAO,QAAQ,EAAE,MAAM,KAAK,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAmB,EAAE,EAAE,CACrD,OAAO,QAAQ,EAAE,MAAM,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAEhF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;AAC5D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,CAAC,KAAK,CAAA;AAC1D,MAAM,CAAC,MAAM,GAAG,GAAG,OAAO,CAAA;AAE1B,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAQ,EACR,KAAa,EACb,MAAW,EACF,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAA"}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import { setResponseOnAction } from '../utils/action.js';
|
|
2
2
|
export default async function mutateAndSend(service, endpoint, action) {
|
|
3
|
-
const
|
|
4
|
-
if (
|
|
5
|
-
return await service.mutateResponse(
|
|
3
|
+
const preparedAction = await service.preflightAction(action, endpoint);
|
|
4
|
+
if (preparedAction.response?.status) {
|
|
5
|
+
return await service.mutateResponse(preparedAction, endpoint);
|
|
6
6
|
}
|
|
7
|
-
const
|
|
8
|
-
if (validateResponse) {
|
|
9
|
-
return service.mutateResponse(setResponseOnAction(action, validateResponse), endpoint);
|
|
10
|
-
}
|
|
11
|
-
const requestAction = await service.mutateRequest(authorizedAction, endpoint);
|
|
7
|
+
const requestAction = await service.mutateRequest(preparedAction, endpoint);
|
|
12
8
|
const response = await service.send(requestAction);
|
|
13
9
|
return await service.mutateResponse(setResponseOnAction(action, response), endpoint);
|
|
14
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutateAndSend.js","sourceRoot":"","sources":["../../src/utils/mutateAndSend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAKxD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CACzC,OAAgB,EAChB,QAAkB,EAClB,MAAc;IAEd,MAAM,
|
|
1
|
+
{"version":3,"file":"mutateAndSend.js","sourceRoot":"","sources":["../../src/utils/mutateAndSend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAKxD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CACzC,OAAgB,EAChB,QAAkB,EAClB,MAAc;IAEd,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtE,IAAI,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;QAEnC,OAAO,MAAM,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;KAC9D;IAED,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;IAC3E,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAClD,OAAO,MAAM,OAAO,CAAC,cAAc,CACjC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,EACrC,QAAQ,CACT,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Response } from '../types.js';
|
|
2
|
+
export declare function createErrorResponse(error: unknown, origin: string, status?: string, reason?: string): Response;
|
|
3
|
+
export declare function createUnknownServiceError(type: string | string[] | undefined, serviceId: string | undefined, actionType: string): Response;
|
|
4
|
+
export declare function combineResponses(responses: Response[]): Response<unknown>;
|
|
5
|
+
export declare const setOrigin: (response: Response, origin: string, doPrefix?: boolean) => Response<unknown>;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import debugLib from 'debug';
|
|
2
|
+
import { isErrorResponse, isNotNullOrUndefined, isDuplicate } from './is.js';
|
|
3
|
+
const debug = debugLib('great');
|
|
4
|
+
export function createErrorResponse(error, origin, status = 'error', reason) {
|
|
5
|
+
return {
|
|
6
|
+
status,
|
|
7
|
+
error: error instanceof Error
|
|
8
|
+
? error.message
|
|
9
|
+
: typeof error === 'string'
|
|
10
|
+
? error
|
|
11
|
+
: 'Unknown error',
|
|
12
|
+
...(reason ? { reason } : {}),
|
|
13
|
+
...(origin ? { origin } : {}),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function createUnknownServiceError(type, serviceId, actionType) {
|
|
17
|
+
const error = serviceId
|
|
18
|
+
? `Service with id '${serviceId || '<not set>'}' does not exist`
|
|
19
|
+
: `No service exists for type '${type || '<not set>'}'`;
|
|
20
|
+
debug(`${actionType}: ${error}`);
|
|
21
|
+
return createErrorResponse(error, `handler:${actionType}`);
|
|
22
|
+
}
|
|
23
|
+
const getCombinedStatus = (responses) => responses
|
|
24
|
+
.map((response) => response.status)
|
|
25
|
+
.reduce((combined, status) => (combined === status ? combined : 'error'));
|
|
26
|
+
function getCombinedErrors(responses) {
|
|
27
|
+
const errors = responses
|
|
28
|
+
.filter((response) => response.error || isErrorResponse(response))
|
|
29
|
+
.map((response) => `[${response.status}] ${response.error}`)
|
|
30
|
+
.filter(isDuplicate);
|
|
31
|
+
return errors.length === 1 ? responses[0].error : errors.join(' | ');
|
|
32
|
+
}
|
|
33
|
+
const getCombinedWarnings = (responses) => responses
|
|
34
|
+
.map((response) => response.warning)
|
|
35
|
+
.filter(isNotNullOrUndefined)
|
|
36
|
+
.filter(isDuplicate)
|
|
37
|
+
.join(' | ');
|
|
38
|
+
function getCombinedOrigins(responses) {
|
|
39
|
+
const origins = responses
|
|
40
|
+
.map((response) => response.origin)
|
|
41
|
+
.filter(isNotNullOrUndefined)
|
|
42
|
+
.filter(isDuplicate);
|
|
43
|
+
return origins.length === 1 ? origins[0] : undefined;
|
|
44
|
+
}
|
|
45
|
+
export function combineResponses(responses) {
|
|
46
|
+
if (responses.length < 2) {
|
|
47
|
+
return responses[0];
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
const status = getCombinedStatus(responses);
|
|
51
|
+
const error = getCombinedErrors(responses);
|
|
52
|
+
const warning = getCombinedWarnings(responses);
|
|
53
|
+
const origin = getCombinedOrigins(responses);
|
|
54
|
+
return {
|
|
55
|
+
status,
|
|
56
|
+
...(error && { error }),
|
|
57
|
+
...(warning && { warning }),
|
|
58
|
+
...(origin && { origin }),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const generateOrigin = (origin, responseOrigin, doPrefix) => responseOrigin
|
|
63
|
+
? doPrefix
|
|
64
|
+
? `${origin}:${responseOrigin}`
|
|
65
|
+
: responseOrigin
|
|
66
|
+
: origin;
|
|
67
|
+
export const setOrigin = (response, origin, doPrefix = false) => response.status === 'ok' || response.status === 'queued'
|
|
68
|
+
? response
|
|
69
|
+
: {
|
|
70
|
+
...response,
|
|
71
|
+
origin: generateOrigin(origin, response.origin, doPrefix),
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/instance.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import EventEmitter from 'node:events';
|
|
2
|
-
import Auth from './service/Auth.js';
|
|
3
|
-
import builtinHandlers from './handlers/index.js';
|
|
4
|
-
import runFn from './handlers/run.js';
|
|
5
|
-
import Schema from './schema/Schema.js';
|
|
6
|
-
import Service from './service/Service.js';
|
|
7
|
-
import { ensureArray } from './utils/array.js';
|
|
8
|
-
import createMapOptions from './utils/createMapOptions.js';
|
|
9
|
-
import { lookupById } from './utils/indexUtils.js';
|
|
10
|
-
import createDispatch from './dispatch.js';
|
|
11
|
-
import listen from './listen.js';
|
|
12
|
-
import close from './close.js';
|
|
13
|
-
import { indexById } from './utils/indexUtils.js';
|
|
14
|
-
import Job from './jobs/Job.js';
|
|
15
|
-
import createDispatchScheduled from './dispatchScheduled.js';
|
|
16
|
-
export const setUpAuth = (authenticators) => function setUpAuth(def) {
|
|
17
|
-
const authenticator = lookupById(def.authenticator, authenticators);
|
|
18
|
-
if (!authenticator) {
|
|
19
|
-
throw new Error(`Auth config '${def.id}' references an unknown authenticator id '${def.authenticator}'`);
|
|
20
|
-
}
|
|
21
|
-
return new Auth(def.id, authenticator, def.options);
|
|
22
|
-
};
|
|
23
|
-
const setAdapterIds = (adapters) => adapters
|
|
24
|
-
? Object.fromEntries(Object.entries(adapters).map(([id, adapter]) => [
|
|
25
|
-
id,
|
|
26
|
-
{ ...adapter, id },
|
|
27
|
-
]))
|
|
28
|
-
: {};
|
|
29
|
-
const isJobWithSchedule = (job) => !!job.schedule;
|
|
30
|
-
export default class Instance extends EventEmitter {
|
|
31
|
-
id;
|
|
32
|
-
services;
|
|
33
|
-
schemas;
|
|
34
|
-
identType;
|
|
35
|
-
queueService;
|
|
36
|
-
dispatch;
|
|
37
|
-
dispatchScheduled;
|
|
38
|
-
constructor(defs, resources, middlewareForDispatch = [], middlewareForService = []) {
|
|
39
|
-
super();
|
|
40
|
-
if (!Array.isArray(defs.services) || !Array.isArray(defs.schemas)) {
|
|
41
|
-
throw new TypeError('Please provide Integreat with at least services and schemas');
|
|
42
|
-
}
|
|
43
|
-
const schemas = new Map();
|
|
44
|
-
defs.schemas.forEach((schema) => {
|
|
45
|
-
schemas.set(schema.id, new Schema(schema, schemas));
|
|
46
|
-
});
|
|
47
|
-
const mapOptions = createMapOptions(schemas, defs.mutations, resources.transformers, defs.dictionaries);
|
|
48
|
-
const authenticatorsWithId = Object.fromEntries(Object.entries(resources.authenticators ?? {}).map(([id, auth]) => [
|
|
49
|
-
id,
|
|
50
|
-
{ ...auth, id },
|
|
51
|
-
]));
|
|
52
|
-
const auths = Array.isArray(defs.auths)
|
|
53
|
-
? defs.auths
|
|
54
|
-
.map(setUpAuth(authenticatorsWithId))
|
|
55
|
-
.reduce(indexById, {})
|
|
56
|
-
: undefined;
|
|
57
|
-
const services = defs.services
|
|
58
|
-
.map((def) => new Service(def, {
|
|
59
|
-
transporters: resources.transporters,
|
|
60
|
-
adapters: setAdapterIds(resources.adapters),
|
|
61
|
-
authenticators: authenticatorsWithId,
|
|
62
|
-
auths,
|
|
63
|
-
schemas,
|
|
64
|
-
mapOptions,
|
|
65
|
-
middleware: middlewareForService,
|
|
66
|
-
emit: this.emit.bind(this),
|
|
67
|
-
}))
|
|
68
|
-
.reduce(indexById, {});
|
|
69
|
-
const jobs = new Map();
|
|
70
|
-
ensureArray(defs.jobs).forEach((job) => {
|
|
71
|
-
if (typeof job.id === 'string') {
|
|
72
|
-
jobs.set(job.id, new Job(job, mapOptions));
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
const dispatch = createDispatch({
|
|
76
|
-
schemas,
|
|
77
|
-
services,
|
|
78
|
-
handlers: {
|
|
79
|
-
...builtinHandlers,
|
|
80
|
-
...resources.handlers,
|
|
81
|
-
RUN: runFn(jobs),
|
|
82
|
-
},
|
|
83
|
-
middleware: middlewareForDispatch,
|
|
84
|
-
options: {
|
|
85
|
-
identConfig: defs.identConfig,
|
|
86
|
-
queueService: defs.queueService,
|
|
87
|
-
},
|
|
88
|
-
});
|
|
89
|
-
const scheduled = [...jobs.values()].filter(isJobWithSchedule);
|
|
90
|
-
const dispatchScheduled = createDispatchScheduled(dispatch, scheduled);
|
|
91
|
-
this.id = defs.id;
|
|
92
|
-
this.services = services;
|
|
93
|
-
this.schemas = schemas;
|
|
94
|
-
this.identType = defs.identConfig?.type;
|
|
95
|
-
this.queueService = defs.queueService;
|
|
96
|
-
this.dispatch = dispatch;
|
|
97
|
-
this.dispatchScheduled = dispatchScheduled;
|
|
98
|
-
}
|
|
99
|
-
async listen() {
|
|
100
|
-
return listen(Object.values(this.services), this.dispatch);
|
|
101
|
-
}
|
|
102
|
-
async close() {
|
|
103
|
-
return close(Object.values(this.services));
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=instance.js.map
|
package/dist/instance.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"instance.js","sourceRoot":"","sources":["../src/instance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import debugLib from 'debug';
|
|
2
|
-
import { createErrorResponse } from './action.js';
|
|
3
|
-
const debug = debugLib('great');
|
|
4
|
-
export default function createUnknownServiceError(type, serviceId, actionType) {
|
|
5
|
-
const error = serviceId
|
|
6
|
-
? `Service with id '${serviceId || '<not set>'}' does not exist`
|
|
7
|
-
: `No service exists for type '${type || '<not set>'}'`;
|
|
8
|
-
debug(`${actionType}: ${error}`);
|
|
9
|
-
return createErrorResponse(error, `handler:${actionType}`);
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=createUnknownServiceError.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createUnknownServiceError.js","sourceRoot":"","sources":["../../src/utils/createUnknownServiceError.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,OAAO,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;AAE/B,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,IAAmC,EACnC,SAA6B,EAC7B,UAAkB;IAElB,MAAM,KAAK,GAAG,SAAS;QACrB,CAAC,CAAC,oBAAoB,SAAS,IAAI,WAAW,kBAAkB;QAChE,CAAC,CAAC,+BAA+B,IAAI,IAAI,WAAW,GAAG,CAAA;IACzD,KAAK,CAAC,GAAG,UAAU,KAAK,KAAK,EAAE,CAAC,CAAA;IAChC,OAAO,mBAAmB,CAAC,KAAK,EAAE,WAAW,UAAU,EAAE,CAAC,CAAA;AAC5D,CAAC"}
|
|
File without changes
|