integreat 0.8.2 → 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.
@@ -3,7 +3,7 @@ const optionsAuth = {
3
3
  async authenticate(options, _action) {
4
4
  return { status: 'granted', ...options };
5
5
  },
6
- isAuthenticated(authentication, _action) {
6
+ isAuthenticated(authentication, _options, _action) {
7
7
  return !!(authentication && authentication.status === 'granted');
8
8
  },
9
9
  authentication: {
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/authenticators/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAMzC,MAAM,WAAW,GAAkB;IAQjC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO;QACjC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAA;IAC1C,CAAC;IAOD,eAAe,CAAC,cAAc,EAAE,OAAO;QACrC,OAAO,CAAC,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,SAAS,CAAC,CAAA;IAClE,CAAC;IAED,cAAc,EAAE;QAOd,QAAQ,CAAC,cAAqC;YAC5C,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,cAAc,CAAA;gBAC7C,IAAI,MAAM,KAAK,SAAS,EAAE;oBACxB,OAAO,OAAO,CAAA;iBACf;aACF;YACD,OAAO,EAAE,CAAA;QACX,CAAC;QAOD,aAAa,CACX,cAAqC;YAErC,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,cAAc,CAAA;gBAC7C,IAAI,MAAM,KAAK,SAAS,EAAE;oBACxB,OAAO,OAAO,CAAA;iBACf;aACF;YACD,OAAO,EAAE,CAAA;QACX,CAAC;KACF;CACF,CAAA;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/authenticators/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAMzC,MAAM,WAAW,GAAkB;IAQjC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO;QACjC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAA;IAC1C,CAAC;IAOD,eAAe,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO;QAC/C,OAAO,CAAC,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,SAAS,CAAC,CAAA;IAClE,CAAC;IAED,cAAc,EAAE;QAOd,QAAQ,CAAC,cAAqC;YAC5C,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,cAAc,CAAA;gBAC7C,IAAI,MAAM,KAAK,SAAS,EAAE;oBACxB,OAAO,OAAO,CAAA;iBACf;aACF;YACD,OAAO,EAAE,CAAA;QACX,CAAC;QAOD,aAAa,CACX,cAAqC;YAErC,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,cAAc,CAAA;gBAC7C,IAAI,MAAM,KAAK,SAAS,EAAE;oBACxB,OAAO,OAAO,CAAA;iBACf;aACF;YACD,OAAO,EAAE,CAAA;QACX,CAAC;KACF;CACF,CAAA;AAED,eAAe,WAAW,CAAA"}
@@ -15,7 +15,7 @@ const tokenAuth = {
15
15
  ? { status: 'granted', token, type, encode }
16
16
  : { status: 'refused' };
17
17
  },
18
- isAuthenticated(authentication, _action) {
18
+ isAuthenticated(authentication, _options, _action) {
19
19
  return !!(authentication &&
20
20
  authentication.status === 'granted' &&
21
21
  authentication.token);
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/authenticators/token.ts"],"names":[],"mappings":"AAiBA,MAAM,eAAe,GAAG,CAAC,cAA0C,EAAE,EAAE;IACrE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,IAAI,EAAE,CAAA;IAC5D,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;QAClC,OAAO,EAAE,CAAA;KACV;IACD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;QAC7D,IAAI;KACL,CAAA;AACH,CAAC,CAAA;AAKD,MAAM,SAAS,GAAkB;IAO/B,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO;QACjC,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QAC5D,OAAO,KAAK;YACV,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;YAC5C,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IAC3B,CAAC;IAOD,eAAe,CAAC,cAAc,EAAE,OAAO;QACrC,OAAO,CAAC,CAAC,CACP,cAAc;YACd,cAAc,CAAC,MAAM,KAAK,SAAS;YACnC,cAAc,CAAC,KAAK,CACrB,CAAA;IACH,CAAC;IAED,cAAc,EAAE;QAOd,QAAQ,CAAC,cAA0C;YACjD,OAAO,eAAe,CAAC,cAAc,CAAC,CAAA;QACxC,CAAC;QAQD,aAAa,CAAC,cAA0C;YACtD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,cAAc,CAAC,CAAA;YACvD,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1E,CAAC;KACF;CACF,CAAA;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/authenticators/token.ts"],"names":[],"mappings":"AAiBA,MAAM,eAAe,GAAG,CAAC,cAA0C,EAAE,EAAE;IACrE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,IAAI,EAAE,CAAA;IAC5D,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;QAClC,OAAO,EAAE,CAAA;KACV;IACD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;QAC7D,IAAI;KACL,CAAA;AACH,CAAC,CAAA;AAKD,MAAM,SAAS,GAAkB;IAO/B,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO;QACjC,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QAC5D,OAAO,KAAK;YACV,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;YAC5C,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IAC3B,CAAC;IAOD,eAAe,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO;QAC/C,OAAO,CAAC,CAAC,CACP,cAAc;YACd,cAAc,CAAC,MAAM,KAAK,SAAS;YACnC,cAAc,CAAC,KAAK,CACrB,CAAA;IACH,CAAC;IAED,cAAc,EAAE;QAOd,QAAQ,CAAC,cAA0C;YACjD,OAAO,eAAe,CAAC,cAAc,CAAC,CAAA;QACxC,CAAC;QAQD,aAAa,CAAC,cAA0C;YACtD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,cAAc,CAAC,CAAA;YACvD,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1E,CAAC;KACF;CACF,CAAA;AAED,eAAe,SAAS,CAAA"}
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.2',
11
+ version: '0.8.4',
12
12
  create,
13
13
  mergeDefinitions,
14
14
  mergeResources,
@@ -1,8 +1,8 @@
1
1
  import { isObject } from '../utils/is.js';
2
2
  const MAX_RETRIES = 1;
3
3
  const shouldRetry = (authentication, retryCount) => authentication?.status === 'timeout' && retryCount < MAX_RETRIES;
4
- const getKey = (authenticator, action) => typeof authenticator.extractAuthKey === 'function'
5
- ? authenticator.extractAuthKey(action) || ''
4
+ const getKey = (authenticator, options, action) => typeof authenticator.extractAuthKey === 'function'
5
+ ? authenticator.extractAuthKey(options, action) || ''
6
6
  : '';
7
7
  export default class Auth {
8
8
  id;
@@ -15,10 +15,10 @@ export default class Auth {
15
15
  this.#options = options || {};
16
16
  }
17
17
  async authenticate(action) {
18
- const key = getKey(this.#authenticator, action);
18
+ const key = getKey(this.#authenticator, this.#options, action);
19
19
  let authentication = this.#authentications.get(key);
20
20
  if (authentication?.status === 'granted' &&
21
- this.#authenticator.isAuthenticated(authentication, action)) {
21
+ this.#authenticator.isAuthenticated(authentication, this.#options, action)) {
22
22
  return true;
23
23
  }
24
24
  let attempt = 0;
@@ -70,7 +70,7 @@ export default class Auth {
70
70
  return { status, error: [error, auth.error].filter(Boolean).join(' ') };
71
71
  }
72
72
  applyToAction(action, transporter) {
73
- const key = getKey(this.#authenticator, action);
73
+ const key = getKey(this.#authenticator, this.#options, action);
74
74
  const auth = this.#authentications.get(key);
75
75
  if (auth?.status === 'granted') {
76
76
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../src/service/Auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,MAAM,WAAW,GAAG,CAAC,CAAA;AAErB,MAAM,WAAW,GAAG,CAClB,cAAqC,EACrC,UAAkB,EAClB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,SAAS,IAAI,UAAU,GAAG,WAAW,CAAA;AAOrE,MAAM,MAAM,GAAG,CAAC,aAA4B,EAAE,MAAqB,EAAE,EAAE,CACrE,OAAO,aAAa,CAAC,cAAc,KAAK,UAAU;IAChD,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE;IAC5C,CAAC,CAAC,EAAE,CAAA;AAER,MAAM,CAAC,OAAO,OAAO,IAAI;IACd,EAAE,CAAQ;IACnB,cAAc,CAAe;IAC7B,QAAQ,CAAa;IACrB,gBAAgB,GAAG,IAAI,GAAG,EAA0B,CAAA;IAEpD,YAAY,EAAU,EAAE,aAA4B,EAAE,OAAqB;QACzE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,cAAc,GAAG,aAAa,CAAA;QACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,EAAE,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAqB;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QAC/C,IAAI,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACnD,IACE,cAAc,EAAE,MAAM,KAAK,SAAS;YACpC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC,EAC3D;YACA,OAAO,IAAI,CAAA;SACZ;QAED,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,GAAG;YACD,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CACrD,IAAI,CAAC,QAAQ,EACb,MAAM,CACP,CAAA;SACF,QAAQ,WAAW,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC,EAAC;QAEhD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;QAC9C,OAAO,cAAc,EAAE,MAAM,KAAK,SAAS,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,4BAA4B,CAChC,MAAqB,EACrB,MAAc;QAGd,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAErD,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;YAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC1E,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;gBAC7B,OAAO,EAAE,CAAC,IAAI,CAAC,CAAA;aAChB;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,uBAAuB,CAAC,CAAA;aACvD;SACF;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,aAAa,CAAC,WAAwB;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YACtC,OAAO,IAAI,CAAA;SACZ;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAA;QACzC,MAAM,EAAE,GACN,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;YACvC,OAAO,WAAW,CAAC,cAAc,KAAK,QAAQ;YAC9C,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;QAC1D,OAAO,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACnD,CAAC;IAED,eAAe;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC1C,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,uBAAuB,IAAI,CAAC,EAAE,sCAAsC;aAC5E,CAAA;SACF;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;SACxB;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAA;QACnE,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,KAAK,SAAS;YACvB,CAAC,CAAC,oCAAoC,IAAI,CAAC,EAAE,gBAAgB;YAC7D,CAAC,CAAC,gCAAgC,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAA;QAClE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACzE,CAAC;IAED,aAAa,CAAC,MAAc,EAAE,WAAwB;QACpD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,EAAE;YAC9B,OAAO;gBACL,GAAG,MAAM;gBACT,IAAI,EAAE;oBACJ,GAAG,MAAM,CAAC,IAAI;oBACd,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;iBACtC;aACF,CAAA;SACF;QAED,OAAO;YACL,GAAG,MAAM;YACT,QAAQ,EAAE;gBACR,GAAG,MAAM,CAAC,QAAQ;gBAClB,GAAG,IAAI,CAAC,eAAe,EAAE;aAC1B;YACD,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;SACrC,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../src/service/Auth.ts"],"names":[],"mappings":"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"}
@@ -21,11 +21,12 @@ export type AuthOptions = Record<string, unknown>;
21
21
  export interface Authentication extends Record<string, unknown> {
22
22
  status: string;
23
23
  error?: string;
24
+ authKey?: string;
24
25
  }
25
- export interface Authenticator<T extends Authentication = Authentication> {
26
- extractAuthKey?: (action: Action | null) => string;
27
- authenticate: (options: AuthOptions | null, action: Action | null) => Promise<T>;
28
- isAuthenticated: (authentication: T | null, action: Action | null) => boolean;
26
+ export interface Authenticator<T extends Authentication = Authentication, U extends AuthOptions = AuthOptions> {
27
+ extractAuthKey?: (options: U | null, action: Action | null) => string | undefined;
28
+ authenticate: (options: U | null, action: Action | null) => Promise<T>;
29
+ isAuthenticated: (authentication: T | null, options: U | null, action: Action | null) => boolean;
29
30
  authentication: {
30
31
  [asFunction: string]: (authentication: T | null) => Record<string, unknown>;
31
32
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "integreat",
3
- "version": "0.8.2",
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":"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"}
@@ -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"}