integreat 0.8.3 → 0.8.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/index.js CHANGED
@@ -8,7 +8,7 @@ export * as middleware from './middleware/index.js';
8
8
  export * as adapters from './adapters/index.js';
9
9
  export { createAction } from './utils/action.js';
10
10
  export default {
11
- version: '0.8.3',
11
+ version: '0.8.4',
12
12
  create,
13
13
  mergeDefinitions,
14
14
  mergeResources,
@@ -24,7 +24,7 @@ export interface Authentication extends Record<string, unknown> {
24
24
  authKey?: string;
25
25
  }
26
26
  export interface Authenticator<T extends Authentication = Authentication, U extends AuthOptions = AuthOptions> {
27
- extractAuthKey?: (options: U | null, action: Action | null) => string;
27
+ extractAuthKey?: (options: U | null, action: Action | null) => string | undefined;
28
28
  authenticate: (options: U | null, action: Action | null) => Promise<T>;
29
29
  isAuthenticated: (authentication: T | null, options: U | null, action: Action | null) => boolean;
30
30
  authentication: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "integreat",
3
- "version": "0.8.3",
3
+ "version": "0.8.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",
@@ -1,21 +0,0 @@
1
- import type { TransformDefinition } from 'map-transform/types.js';
2
- import type { Action, Adapter } from '../types.js';
3
- import type { MapOptions, EndpointDef, ServiceOptions, MatchObject, PreparedOptions } from './types.js';
4
- export interface PrepareOptions {
5
- (options: ServiceOptions, serviceId: string): ServiceOptions;
6
- }
7
- export default class Endpoint {
8
- #private;
9
- id?: string;
10
- match?: MatchObject;
11
- options: PreparedOptions;
12
- mutation?: TransformDefinition;
13
- adapters?: (string | Adapter)[];
14
- allowRawRequest?: boolean;
15
- allowRawResponse?: boolean;
16
- constructor(endpointDef: EndpointDef, serviceId: string, options: PreparedOptions, mapOptions: MapOptions, serviceMutation?: TransformDefinition, adapters?: Adapter[]);
17
- mutate(action: Action, isRev: boolean): Promise<Action<import("../types.js").Payload<unknown>, unknown>>;
18
- isMatch(action: Action, isIncoming?: boolean): boolean;
19
- static sortAndPrepare(endpointDefs: EndpointDef[]): EndpointDef[];
20
- static findMatchingEndpoint(endpoints: Endpoint[], action: Action, isIncoming?: boolean): Endpoint | undefined;
21
- }
@@ -1,72 +0,0 @@
1
- import mapTransform from 'map-transform';
2
- import pPipe from 'p-pipe';
3
- import compareEndpoints from './utils/compare.js';
4
- import isMatch from './utils/match.js';
5
- import { populateActionAfterMutation } from '../utils/mutationHelpers.js';
6
- import { ensureArray } from '../utils/array.js';
7
- import { isNotNullOrUndefined, isObject } from '../utils/is.js';
8
- const prepareMatch = ({ scope, ...match }) => scope === 'all' || !scope ? match : { scope, ...match };
9
- const prepareEndpoint = ({ match, ...endpoint }) => ({
10
- match: prepareMatch(match || {}),
11
- ...endpoint,
12
- });
13
- async function mutateAction(action, isRev, mutator, normalize = async (action) => action, serialize = async (action) => action) {
14
- const normalizedAction = isRev ? action : await normalize(action);
15
- const mutatedAction = mutator
16
- ? populateActionAfterMutation(action, mutator(normalizedAction, { rev: isRev }))
17
- : normalizedAction;
18
- return isRev ? await serialize(mutatedAction) : mutatedAction;
19
- }
20
- const flattenIfOneOrNone = (arr) => arr.length <= 1 ? arr[0] : arr;
21
- const setModifyFlag = (def) => isObject(def) ? { ...def, $modify: true } : def;
22
- const prepareAdapter = (serviceId, options = {}, doSerialize = false) => function prepareAdapter(adapter) {
23
- const adapterId = adapter.id;
24
- const preparedOptions = typeof adapterId === 'string'
25
- ? adapter.prepareOptions(options[adapterId] || {}, serviceId)
26
- : {};
27
- return doSerialize
28
- ? async (action) => await adapter.serialize(action, preparedOptions)
29
- : async (action) => await adapter.normalize(action, preparedOptions);
30
- };
31
- const pipeAdapters = (adapters) => adapters.length > 0 ? pPipe(...adapters) : undefined;
32
- export default class Endpoint {
33
- id;
34
- match;
35
- options;
36
- mutation;
37
- adapters;
38
- allowRawRequest;
39
- allowRawResponse;
40
- #mutator;
41
- #normalize;
42
- #serialize;
43
- #checkIfMatch;
44
- constructor(endpointDef, serviceId, options, mapOptions, serviceMutation, adapters = []) {
45
- this.id = endpointDef.id;
46
- this.allowRawRequest = endpointDef.allowRawRequest ?? false;
47
- this.allowRawResponse = endpointDef.allowRawResponse ?? false;
48
- this.match = endpointDef.match;
49
- this.#checkIfMatch = isMatch(endpointDef);
50
- this.options = options;
51
- const mutation = flattenIfOneOrNone([...ensureArray(serviceMutation), ...ensureArray(endpointDef.mutation)]
52
- .map(setModifyFlag)
53
- .filter(isNotNullOrUndefined));
54
- this.#mutator = mutation ? mapTransform(mutation, mapOptions) : null;
55
- this.#normalize = pipeAdapters(adapters.map(prepareAdapter(serviceId, options.adapters, false)));
56
- adapters.reverse();
57
- this.#serialize = pipeAdapters(adapters.map(prepareAdapter(serviceId, options.adapters, true)));
58
- }
59
- mutate(action, isRev) {
60
- return mutateAction(action, isRev, this.#mutator, this.#normalize, this.#serialize);
61
- }
62
- isMatch(action, isIncoming) {
63
- return this.#checkIfMatch(action, isIncoming);
64
- }
65
- static sortAndPrepare(endpointDefs) {
66
- return endpointDefs.map(prepareEndpoint).sort(compareEndpoints);
67
- }
68
- static findMatchingEndpoint(endpoints, action, isIncoming = false) {
69
- return endpoints.find((endpoint) => endpoint.isMatch(action, isIncoming));
70
- }
71
- }
72
- //# sourceMappingURL=Endpoint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Endpoint.js","sourceRoot":"","sources":["../../src/service/Endpoint.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import Endpoint from './Endpoint.js';
2
- import Auth from './Auth.js';
3
- import type { DataMapperEntry } from 'map-transform/types.js';
4
- import type { Schema } from '../schema/index.js';
5
- import type { Action, Response, Dispatch, Middleware, Transporter, Adapter } from '../types.js';
6
- import type { ServiceDef, MapOptions, Authenticator } from './types.js';
7
- interface Resources {
8
- transporters?: Record<string, Transporter>;
9
- adapters?: Record<string, Adapter>;
10
- authenticators?: Record<string, Authenticator>;
11
- auths?: Record<string, Auth>;
12
- schemas: Record<string, Schema>;
13
- castFns?: Record<string, DataMapperEntry>;
14
- mapOptions?: MapOptions;
15
- middleware?: Middleware[];
16
- emit?: (eventType: string, ...args: unknown[]) => void;
17
- }
18
- export default class Service {
19
- #private;
20
- id: string;
21
- meta?: string;
22
- constructor({ id: serviceId, transporter: transporterId, adapters: adapterDefs, auth, meta, options, mutation, endpoints: endpointDefs, }: ServiceDef, { transporters, adapters, authenticators, auths, schemas, castFns, mapOptions, middleware, emit, }: Resources);
23
- endpointFromAction(action: Action, isIncoming?: boolean): Endpoint | undefined;
24
- authorizeAction(action: Action): Action;
25
- mutateRequest(action: Action, endpoint: Endpoint): Promise<Action>;
26
- mutateIncomingRequest(action: Action, endpoint: Endpoint): Promise<Action>;
27
- mutateResponse(action: Action, endpoint: Endpoint): Promise<Response>;
28
- mutateIncomingResponse(action: Action, endpoint: Endpoint): Promise<Response>;
29
- send(action: Action): Promise<Response>;
30
- listen(dispatch: Dispatch): Promise<Response>;
31
- close(): Promise<Response>;
32
- }
33
- export {};
@@ -1,298 +0,0 @@
1
- import debugLib from 'debug';
2
- import pProgress from 'p-progress';
3
- import Endpoint from './Endpoint.js';
4
- import { setErrorOnAction, createErrorResponse, setOrigin, setOriginOnAction, } from '../utils/action.js';
5
- import { prepareOptions, mergeOptions } from './utils/options.js';
6
- import Connection from './Connection.js';
7
- import { lookupById } from '../utils/indexUtils.js';
8
- import { isObject, isNotNullOrUndefined } from '../utils/is.js';
9
- import * as authorizeData from './authorize/data.js';
10
- import authorizeAction from './authorize/action.js';
11
- import { compose } from '../dispatch.js';
12
- import { setUpAuth } from '../create.js';
13
- const debug = debugLib('great');
14
- const setServiceIdAsSourceServiceOnAction = (serviceId) => (next) => async (action) => next({
15
- ...action,
16
- payload: {
17
- ...action.payload,
18
- sourceService: action.payload.sourceService || serviceId,
19
- },
20
- });
21
- const isIdent = (ident) => isObject(ident);
22
- async function authorizeIncoming(action, serviceId, auth) {
23
- if (auth) {
24
- if (typeof auth === 'boolean') {
25
- return action;
26
- }
27
- try {
28
- const ident = await auth.authenticateAndGetAuthObject(action, 'asObject');
29
- if (isIdent(ident)) {
30
- return { ...action, meta: { ...action.meta, ident } };
31
- }
32
- }
33
- catch (err) {
34
- return setErrorOnAction(action, err, `service:${serviceId}`, 'autherror');
35
- }
36
- }
37
- return { ...action, meta: { ...action.meta, ident: undefined } };
38
- }
39
- const dispatchIncoming = (dispatch, setProgress, serviceId) => async function (action) {
40
- if (typeof action.response?.status === 'string') {
41
- return action.response;
42
- }
43
- const p = dispatch(action);
44
- p.onProgress(setProgress);
45
- return setOrigin(await p, `service:${serviceId}`);
46
- };
47
- const dispatchIncomingWithMiddleware = (dispatch, middleware, serviceId, auth) => (action) => pProgress(async (setProgress) => {
48
- if (action) {
49
- const response = await middleware(dispatchIncoming(dispatch, setProgress, serviceId))(await authorizeIncoming(action, serviceId, auth));
50
- return (setOrigin(response, `middleware:service:${serviceId}`) || {
51
- status: 'error',
52
- origin: `service:${serviceId}`,
53
- });
54
- }
55
- else {
56
- return {
57
- status: 'noaction',
58
- error: 'No action was dispatched',
59
- origin: `service:${serviceId}`,
60
- };
61
- }
62
- });
63
- const sendToTransporter = (transporter, connection, serviceId) => async function send(action) {
64
- try {
65
- if (await connection.connect(action.meta?.auth)) {
66
- return setOrigin(await transporter.send(action, connection.object), `service:${serviceId}`, true);
67
- }
68
- else {
69
- return createErrorResponse(`Could not connect to service '${serviceId}'. [${connection.status}] ${connection.error || ''}`.trim(), `service:${serviceId}`);
70
- }
71
- }
72
- catch (error) {
73
- return createErrorResponse(`Error retrieving from service '${serviceId}': ${error.message}`, `service:${serviceId}`);
74
- }
75
- };
76
- const isAuthDef = (def) => isObject(def) &&
77
- typeof def.id === 'string' &&
78
- typeof def.authenticator === 'string';
79
- function retrieveAuthorization(authenticators, auths, auth) {
80
- if (isObject(auth) && !!auth.outgoing) {
81
- auth = auth.outgoing;
82
- }
83
- if (typeof auth === 'string') {
84
- return lookupById(auth, auths);
85
- }
86
- else if (isAuthDef(auth)) {
87
- return setUpAuth(authenticators)(auth);
88
- }
89
- else {
90
- return undefined;
91
- }
92
- }
93
- function resolveIncomingAuth(authenticators, auths, auth) {
94
- if (isObject(auth) && auth.incoming) {
95
- return auth.incoming === true
96
- ? true
97
- : retrieveAuthorization(authenticators, auths, auth.incoming);
98
- }
99
- else {
100
- return auth === true ? true : undefined;
101
- }
102
- }
103
- const getCastFn = (castFns, type) => typeof type === 'string'
104
- ? castFns[type]
105
- : undefined;
106
- const castPayload = (action, endpoint, castFn) => ({
107
- ...action,
108
- payload: !endpoint.allowRawRequest && castFn
109
- ? {
110
- ...action.payload,
111
- data: castFn(action.payload.data),
112
- }
113
- : action.payload,
114
- meta: { ...action.meta, options: endpoint.options.transporter || {} },
115
- });
116
- const castResponse = (action, endpoint, castFn) => !endpoint.allowRawResponse && castFn
117
- ? {
118
- ...action,
119
- response: {
120
- ...action.response,
121
- data: castFn(action.response?.data),
122
- },
123
- }
124
- : action;
125
- const lookupAdapters = (defs = [], adapters) => defs
126
- .map((adapterId) => lookupById(adapterId, adapters))
127
- .filter(isNotNullOrUndefined);
128
- export default class Service {
129
- id;
130
- meta;
131
- #schemas;
132
- #options;
133
- #endpoints;
134
- #transporter;
135
- #castFns;
136
- #authorization;
137
- #incomingAuth;
138
- #requireAuth;
139
- #connection;
140
- #authorizeDataFromService;
141
- #authorizeDataToService;
142
- #middleware;
143
- constructor({ id: serviceId, transporter: transporterId, adapters: adapterDefs = [], auth, meta, options = {}, mutation, endpoints: endpointDefs = [], }, { transporters, adapters = {}, authenticators = {}, auths, schemas, castFns = {}, mapOptions = {}, middleware = [], emit = () => undefined, }) {
144
- if (typeof serviceId !== 'string' || serviceId === '') {
145
- throw new TypeError(`Can't create service without an id.`);
146
- }
147
- this.id = serviceId;
148
- this.meta = meta;
149
- this.#schemas = schemas;
150
- this.#castFns = castFns;
151
- this.#transporter = lookupById(transporterId, transporters);
152
- this.#authorization = retrieveAuthorization(authenticators, auths, auth);
153
- this.#incomingAuth = resolveIncomingAuth(authenticators, auths, auth);
154
- this.#requireAuth = !!auth;
155
- this.#authorizeDataFromService = authorizeData.fromService(schemas);
156
- this.#authorizeDataToService = authorizeData.toService(schemas);
157
- const serviceAdapters = lookupAdapters(adapterDefs, adapters);
158
- const serviceOptions = prepareOptions(options);
159
- this.#options = serviceOptions.transporter;
160
- this.#endpoints = Endpoint.sortAndPrepare(endpointDefs).map((endpoint) => new Endpoint(endpoint, serviceId, endpoint.options
161
- ? mergeOptions(serviceOptions, prepareOptions(endpoint.options))
162
- : serviceOptions, mapOptions, mutation, [...serviceAdapters, ...lookupAdapters(endpoint.adapters, adapters)]));
163
- this.#middleware =
164
- middleware.length > 0 ? compose(...middleware) : (fn) => fn;
165
- this.#connection = this.#transporter
166
- ? new Connection(this.#transporter, serviceOptions.transporter, emit)
167
- : null;
168
- }
169
- endpointFromAction(action, isIncoming = false) {
170
- return Endpoint.findMatchingEndpoint(this.#endpoints, action, isIncoming);
171
- }
172
- authorizeAction(action) {
173
- return authorizeAction(this.#schemas, this.#requireAuth)(action);
174
- }
175
- async mutateRequest(action, endpoint) {
176
- const castFn = getCastFn(this.#castFns, action.payload.type);
177
- const casted = castPayload(action, endpoint, castFn);
178
- const authorized = this.#authorizeDataToService(casted, endpoint.allowRawRequest);
179
- let mutated;
180
- try {
181
- mutated = await endpoint.mutate(authorized, true);
182
- }
183
- catch (error) {
184
- return setErrorOnAction(action, `Error while mutating request: ${error instanceof Error ? error.message : String(error)}`, 'mutate:request');
185
- }
186
- return setOriginOnAction(mutated, 'mutate:request', false);
187
- }
188
- async mutateIncomingRequest(action, endpoint) {
189
- let mutated;
190
- try {
191
- mutated = await endpoint.mutate(action, false);
192
- }
193
- catch (error) {
194
- return setErrorOnAction(action, `Error while mutating incoming request: ${error instanceof Error ? error.message : String(error)}`, 'mutate:request:incoming');
195
- }
196
- const castFn = getCastFn(this.#castFns, action.payload.type);
197
- const casted = castPayload(mutated, endpoint, castFn);
198
- const withOrigin = setOriginOnAction(casted, 'mutate:request:incoming');
199
- return this.#authorizeDataToService(withOrigin, endpoint.allowRawRequest);
200
- }
201
- async mutateResponse(action, endpoint) {
202
- let mutated;
203
- try {
204
- mutated = await endpoint.mutate(action, false);
205
- }
206
- catch (error) {
207
- return {
208
- ...action.response,
209
- ...createErrorResponse(`Error while mutating response: ${error instanceof Error ? error.message : String(error)}`, 'mutate:response'),
210
- };
211
- }
212
- const castFn = getCastFn(this.#castFns, action.payload.type);
213
- const casted = castResponse(mutated, endpoint, castFn);
214
- const withOrigin = setOriginOnAction(casted, 'mutate:response', false);
215
- const { response } = this.#authorizeDataFromService(withOrigin, endpoint.allowRawResponse);
216
- return response || { status: undefined };
217
- }
218
- async mutateIncomingResponse(action, endpoint) {
219
- const castFn = getCastFn(this.#castFns, action.payload.type);
220
- const casted = castResponse(action, endpoint, castFn);
221
- const authorized = this.#authorizeDataFromService(casted, endpoint.allowRawResponse);
222
- let mutated;
223
- try {
224
- mutated = await endpoint.mutate(authorized, true);
225
- }
226
- catch (error) {
227
- return {
228
- ...action.response,
229
- ...createErrorResponse(`Error while mutating response: ${error instanceof Error ? error.message : String(error)}`, 'mutate:response:incoming'),
230
- };
231
- }
232
- const { response } = setOriginOnAction(mutated, 'mutate:response:incoming', false);
233
- return response || { status: undefined };
234
- }
235
- async send(action) {
236
- if (action.response?.status) {
237
- return action.response;
238
- }
239
- if (!this.#transporter || !this.#connection) {
240
- return createErrorResponse(`Service '${this.id}' has no transporter`, `internal:service:${this.id}`);
241
- }
242
- if (!action.meta?.authorized) {
243
- return createErrorResponse('Not authorized', `internal:service:${this.id}`, 'autherror');
244
- }
245
- if (this.#authorization) {
246
- await this.#authorization.authenticate(action);
247
- action = this.#authorization.applyToAction(action, this.#transporter);
248
- if (action.response?.status) {
249
- return setOrigin(action.response, `service:${this.id}`, true);
250
- }
251
- }
252
- return setOrigin(await this.#middleware(sendToTransporter(this.#transporter, this.#connection, this.id))(action), `middleware:service:${this.id}`);
253
- }
254
- async listen(dispatch) {
255
- debug('Set up service listening ...');
256
- if (!this.#transporter) {
257
- debug(`Service '${this.id}' has no transporter`);
258
- return createErrorResponse(`Service '${this.id}' has no transporter`, `internal:service:${this.id}`);
259
- }
260
- if (!this.#connection) {
261
- debug(`Service '${this.id}' has no open connection`);
262
- return createErrorResponse(`Service '${this.id}' has no open connection`, `service:${this.id}`);
263
- }
264
- if (typeof this.#transporter.listen !== 'function') {
265
- debug('Transporter has no listen method');
266
- return createErrorResponse('Transporter has no listen method', `service:${this.id}`, 'noaction');
267
- }
268
- if (typeof this.#transporter.shouldListen === 'function' &&
269
- !this.#transporter.shouldListen(this.#options)) {
270
- debug('Transporter is not configured to listen');
271
- return createErrorResponse('Transporter is not configured to listen', `service:${this.id}`, 'noaction');
272
- }
273
- if (this.#authorization &&
274
- !(await this.#authorization.authenticate(null))) {
275
- debug('Could not authenticate');
276
- return setOrigin(this.#authorization.getStatusObject(), `service:${this.id}`, true);
277
- }
278
- if (!(await this.#connection.connect(this.#authorization?.getAuthObject(this.#transporter)))) {
279
- debug(`Could not listen to '${this.id}' service. Failed to connect`);
280
- return createErrorResponse(`Could not listen to '${this.id}' service. Failed to connect`, `service:${this.id}`);
281
- }
282
- const incomingMiddleware = compose(this.#middleware, setServiceIdAsSourceServiceOnAction(this.id));
283
- debug('Calling transporter listen() ...');
284
- return this.#transporter.listen(dispatchIncomingWithMiddleware(dispatch, incomingMiddleware, this.id, this.#incomingAuth), this.#connection.object);
285
- }
286
- async close() {
287
- debug(`Close service '${this.id}'`);
288
- if (!this.#transporter || !this.#connection) {
289
- debug('No transporter to disconnect');
290
- return createErrorResponse('No transporter to disconnect', `internal:service:${this.id}`, 'noaction');
291
- }
292
- await this.#transporter.disconnect(this.#connection.object);
293
- this.#connection = null;
294
- debug(`Closed`);
295
- return { status: 'ok' };
296
- }
297
- }
298
- //# sourceMappingURL=Service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { EndpointDef } from '../types.js';
2
- declare const _default: (a: EndpointDef, b: EndpointDef) => number;
3
- export default _default;
@@ -1,22 +0,0 @@
1
- const has = (prop) => Number(prop !== undefined);
2
- const hasArray = (prop) => Number(Array.isArray(prop) && prop.length);
3
- const hasParams = ({ params }, required) => Number(!!params &&
4
- Object.values(params).filter((isRequired) => isRequired === required)
5
- .length);
6
- const hasFilters = ({ filters }) => Number(!!filters && Object.keys(filters).length);
7
- export default (a, b) => {
8
- const matchA = a.match || {};
9
- const matchB = b.match || {};
10
- return (has(matchB.incoming) - has(matchA.incoming) ||
11
- has(matchB.type) - has(matchA.type) ||
12
- hasArray(matchA.type) - hasArray(matchB.type) ||
13
- hasParams(matchB, true) - hasParams(matchA, true) ||
14
- hasParams(matchB, false) - hasParams(matchA, false) ||
15
- hasFilters(matchB) - hasFilters(matchA) ||
16
- has(matchB.scope) - has(matchA.scope) ||
17
- hasArray(matchA.scope) - hasArray(matchB.scope) ||
18
- has(matchB.action) - has(matchA.action) ||
19
- hasArray(matchA.action) - hasArray(matchB.action) ||
20
- has(a.id) - has(b.id));
21
- };
22
- //# sourceMappingURL=compare.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/service/utils/compare.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;AACzD,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAA;AAC9E,MAAM,SAAS,GAAG,CAAC,EAAE,MAAM,EAAe,EAAE,QAAiB,EAAE,EAAE,CAC/D,MAAM,CACJ,CAAC,CAAC,MAAM;IACN,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,QAAQ,CAAC;SAClE,MAAM,CACZ,CAAA;AACH,MAAM,UAAU,GAAG,CAAC,EAAE,OAAO,EAAe,EAAE,EAAE,CAC9C,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;AAElD,eAAe,CAAC,CAAc,EAAE,CAAc,EAAU,EAAE;IACxD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAA;IAE5B,OAAO,CACL,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC3C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACnC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7C,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC;QACjD,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC;QACnD,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;QACvC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QACrC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACjD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACtB,CAAA;AACH,CAAC,CAAA"}
@@ -1,3 +0,0 @@
1
- import type { Action } from '../../types.js';
2
- import type { EndpointDef } from '../types.js';
3
- export default function isMatch(endpoint: EndpointDef): (action: Action, isIncoming?: boolean) => boolean;
@@ -1,29 +0,0 @@
1
- import validateFilters from '../../utils/validateFilters.js';
2
- import { arrayIncludes } from '../../utils/array.js';
3
- const matchValue = (match, value) => arrayIncludes(match, value);
4
- const hasParam = (params, key) => params && params[key] !== undefined;
5
- const matchId = (endpoint, { payload: { endpoint: endpointId } = {} }) => !endpointId || endpoint.id === endpointId;
6
- const matchType = ({ match = {} }, { payload }) => !match.type || matchValue(match.type, payload.type);
7
- const matchScope = ({ match = {} }, { payload }) => !match.scope ||
8
- matchValue(match.scope, payload.id
9
- ? Array.isArray(payload.id)
10
- ? 'members'
11
- : 'member'
12
- : 'collection');
13
- const matchAction = ({ match = {} }, { type }) => !match.action || matchValue(match.action, type);
14
- const matchParams = ({ match: { params } = {} }, { payload }) => typeof params !== 'object' ||
15
- params === null ||
16
- Object.entries(params).every(([key, isRequired]) => !isRequired || hasParam(payload, key));
17
- const matchIncoming = ({ match: { incoming: incomingEndpoint } = {} }, isIncoming) => incomingEndpoint === undefined || incomingEndpoint === isIncoming;
18
- export default function isMatch(endpoint) {
19
- const match = endpoint.match || {};
20
- const matchFilters = match.filters ? validateFilters(match.filters) : () => [];
21
- return (action, isIncoming = false) => matchId(endpoint, action) &&
22
- matchType(endpoint, action) &&
23
- matchScope(endpoint, action) &&
24
- matchAction(endpoint, action) &&
25
- matchParams(endpoint, action) &&
26
- matchIncoming(endpoint, isIncoming) &&
27
- matchFilters(action).length === 0;
28
- }
29
- //# sourceMappingURL=match.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"match.js","sourceRoot":"","sources":["../../../src/service/utils/match.ts"],"names":[],"mappings":"AAEA,OAAO,eAAe,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,MAAM,UAAU,GAAG,CAAC,KAAyB,EAAE,KAAyB,EAAE,EAAE,CAC1E,aAAa,CAAC,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,MAAM,CAAC,OAAO,UAAU,OAAO,CAC7B,QAAqB;IAErB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAA;IAClC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,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"}
@@ -1,17 +0,0 @@
1
- import type { ServiceOptions, PreparedOptions } from '../types.js';
2
- export declare function prepareOptions({ transporter: { incoming, ...transporter }, incoming: incomingBase, adapters, ...topLevel }: ServiceOptions): PreparedOptions;
3
- export declare function mergeOptions(a: PreparedOptions, b: PreparedOptions): {
4
- transporter: {
5
- [x: string]: unknown;
6
- };
7
- adapters?: undefined;
8
- } | {
9
- transporter: {
10
- [x: string]: unknown;
11
- };
12
- adapters: {
13
- [k: string]: {
14
- [x: string]: unknown;
15
- };
16
- };
17
- };
@@ -1,41 +0,0 @@
1
- import deepClone from '../../utils/deepClone.js';
2
- export function prepareOptions({ transporter: { incoming, ...transporter } = {}, incoming: incomingBase, adapters, ...topLevel }) {
3
- const transporterOptions = {
4
- ...topLevel,
5
- ...transporter,
6
- ...(incoming || incomingBase
7
- ? { incoming: { ...incomingBase, ...incoming } }
8
- : {}),
9
- };
10
- return adapters
11
- ? { transporter: transporterOptions, adapters }
12
- : { transporter: transporterOptions };
13
- }
14
- const removeIncoming = ({ incoming, ...options }) => options;
15
- export function mergeOptions(a, b) {
16
- const transporterOptions = deepClone({
17
- ...removeIncoming(a.transporter),
18
- ...removeIncoming(b.transporter),
19
- });
20
- if (a.transporter.incoming || b.transporter.incoming) {
21
- transporterOptions.incoming = deepClone({
22
- ...a.transporter.incoming,
23
- ...b.transporter.incoming,
24
- });
25
- }
26
- const adaptersA = a.adapters || {};
27
- const adaptersB = b.adapters || {};
28
- const adapterIds = [
29
- ...Object.keys(adaptersA),
30
- ...Object.keys(adaptersB),
31
- ].filter((id, index, ids) => !ids.slice(0, index).includes(id));
32
- if (adapterIds.length === 0) {
33
- return { transporter: transporterOptions };
34
- }
35
- const adapterOptions = Object.fromEntries(adapterIds.map((id) => [
36
- id,
37
- deepClone({ ...adaptersA[id], ...adaptersB[id] }),
38
- ]));
39
- return { transporter: transporterOptions, adapters: adapterOptions };
40
- }
41
- //# sourceMappingURL=options.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/service/utils/options.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,0BAA0B,CAAA;AAOhD,MAAM,UAAU,cAAc,CAAC,EAC7B,WAAW,EAAE,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,GAAG,EAAE,EAC9C,QAAQ,EAAE,YAAY,EACtB,QAAQ,EACR,GAAG,QAAQ,EACI;IAEf,MAAM,kBAAkB,GAAG;QACzB,GAAG,QAAQ;QACX,GAAG,WAAW;QACd,GAAG,CAAC,QAAQ,IAAI,YAAY;YAC1B,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,QAAQ,EAAE,EAAE;YAChD,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;IAED,OAAO,QAAQ;QACb,CAAC,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE;QAC/C,CAAC,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAA;AACzC,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAsB,EAAE,EAAE,CAAC,OAAO,CAAA;AAEhF,MAAM,UAAU,YAAY,CAAC,CAAkB,EAAE,CAAkB;IACjE,MAAM,kBAAkB,GAAG,SAAS,CAAC;QACnC,GAAG,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC;QAChC,GAAG,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC;KACjC,CAAC,CAAA;IACF,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE;QACpD,kBAAkB,CAAC,QAAQ,GAAG,SAAS,CAAC;YACtC,GAAG,CAAC,CAAC,WAAW,CAAC,QAAQ;YACzB,GAAG,CAAC,CAAC,WAAW,CAAC,QAAQ;SAC1B,CAAC,CAAA;KACH;IAED,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAA;IAClC,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAA;IAClC,MAAM,UAAU,GAAG;QACjB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACzB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;KAC1B,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;IAE/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAA;KAC3C;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CACvC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;QACrB,EAAE;QACF,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;KAClD,CAAC,CACH,CAAA;IAED,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;AACtE,CAAC"}