integreat 0.8.1 → 0.8.3

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.1',
11
+ version: '0.8.3',
12
12
  create,
13
13
  mergeDefinitions,
14
14
  mergeResources,
@@ -1,27 +1,32 @@
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, options, action) => typeof authenticator.extractAuthKey === 'function'
5
+ ? authenticator.extractAuthKey(options, action) || ''
6
+ : '';
4
7
  export default class Auth {
5
8
  id;
6
9
  #authenticator;
7
10
  #options;
8
- #authentication;
11
+ #authentications = new Map();
9
12
  constructor(id, authenticator, options) {
10
13
  this.id = id;
11
14
  this.#authenticator = authenticator;
12
15
  this.#options = options || {};
13
- this.#authentication = null;
14
16
  }
15
17
  async authenticate(action) {
16
- if (this.#authentication?.status === 'granted' &&
17
- this.#authenticator.isAuthenticated(this.#authentication, action)) {
18
+ const key = getKey(this.#authenticator, this.#options, action);
19
+ let authentication = this.#authentications.get(key);
20
+ if (authentication?.status === 'granted' &&
21
+ this.#authenticator.isAuthenticated(authentication, this.#options, action)) {
18
22
  return true;
19
23
  }
20
24
  let attempt = 0;
21
25
  do {
22
- this.#authentication = await this.#authenticator.authenticate(this.#options, action);
23
- } while (shouldRetry(this.#authentication, attempt++));
24
- return this.#authentication?.status === 'granted';
26
+ authentication = await this.#authenticator.authenticate(this.#options, action);
27
+ } while (shouldRetry(authentication, attempt++));
28
+ this.#authentications.set(key, authentication);
29
+ return authentication?.status === 'granted';
25
30
  }
26
31
  async authenticateAndGetAuthObject(action, method) {
27
32
  const fn = this.#authenticator.authentication[method];
@@ -37,7 +42,7 @@ export default class Auth {
37
42
  return null;
38
43
  }
39
44
  getAuthObject(transporter) {
40
- const auth = this.#authentication;
45
+ const auth = this.#authentications.get('');
41
46
  if (!auth || auth.status !== 'granted') {
42
47
  return null;
43
48
  }
@@ -48,21 +53,25 @@ export default class Auth {
48
53
  return typeof fn === 'function' ? fn(auth) : null;
49
54
  }
50
55
  getStatusObject() {
51
- const auth = this.#authentication;
56
+ const auth = this.#authentications.get('');
52
57
  if (!auth) {
53
- return { status: 'noaccess' };
58
+ return {
59
+ status: 'noaccess',
60
+ error: `Trying to use auth '${this.id}' before authentication has been run`,
61
+ };
54
62
  }
55
63
  if (auth.status === 'granted') {
56
64
  return { status: 'ok' };
57
65
  }
58
66
  const status = auth.status === 'refused' ? 'noaccess' : 'autherror';
59
67
  const error = auth.status === 'refused'
60
- ? `Authentication attempt for '${this.id}' was refused.`
61
- : `Could not authenticate '${this.id}'. [${auth.status}]`;
68
+ ? `Authentication attempt for auth '${this.id}' was refused.`
69
+ : `Could not authenticate auth '${this.id}'. [${auth.status}]`;
62
70
  return { status, error: [error, auth.error].filter(Boolean).join(' ') };
63
71
  }
64
72
  applyToAction(action, transporter) {
65
- const auth = this.#authentication;
73
+ const key = getKey(this.#authenticator, this.#options, action);
74
+ const auth = this.#authentications.get(key);
66
75
  if (auth?.status === 'granted') {
67
76
  return {
68
77
  ...action,
@@ -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,CAAC,OAAO,OAAO,IAAI;IACd,EAAE,CAAQ;IACnB,cAAc,CAAe;IAC7B,QAAQ,CAAa;IACrB,eAAe,CAAuB;IAEtC,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;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAqB;QACtC,IACE,IAAI,CAAC,eAAe,EAAE,MAAM,KAAK,SAAS;YAC1C,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EACjE;YACA,OAAO,IAAI,CAAA;SACZ;QAED,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,GAAG;YACD,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAC3D,IAAI,CAAC,QAAQ,EACb,MAAM,CACP,CAAA;SACF,QAAQ,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC,EAAC;QAEtD,OAAO,IAAI,CAAC,eAAe,EAAE,MAAM,KAAK,SAAS,CAAA;IACnD,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,eAAe,CAAA;QACjC,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,eAAe,CAAA;QACjC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;SAC9B;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,+BAA+B,IAAI,CAAC,EAAE,gBAAgB;YACxD,CAAC,CAAC,2BAA2B,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAA;QAC7D,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,IAAI,GAAG,IAAI,CAAC,eAAe,CAAA;QACjC,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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"}
@@ -0,0 +1,21 @@
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
+ }
@@ -0,0 +1,72 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Endpoint.js","sourceRoot":"","sources":["../../src/service/Endpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
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 {};
@@ -0,0 +1,298 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"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"}
@@ -230,7 +230,7 @@ export default ({ transporters, adapters = {}, authenticators = {}, auths, schem
230
230
  debug(`Could not listen to '${serviceId}' service. Failed to connect`);
231
231
  return createErrorResponse(`Could not listen to '${serviceId}' service. Failed to connect`);
232
232
  }
233
- const incomingMiddleware = compose(runThroughMiddleware, setServiceIdAsSourceServiceOnAction(serviceId));
233
+ const incomingMiddleware = compose(setServiceIdAsSourceServiceOnAction(serviceId), runThroughMiddleware);
234
234
  debug('Calling transporter listen() ...');
235
235
  return transporter.listen(dispatchIncomingWithMiddleware(dispatch, incomingMiddleware, incomingAuth), connection.object);
236
236
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"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"}
@@ -21,10 +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
- authenticate: (options: AuthOptions | null, action: Action | null) => Promise<T>;
27
- 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;
28
+ authenticate: (options: U | null, action: Action | null) => Promise<T>;
29
+ isAuthenticated: (authentication: T | null, options: U | null, action: Action | null) => boolean;
28
30
  authentication: {
29
31
  [asFunction: string]: (authentication: T | null) => Record<string, unknown>;
30
32
  };
@@ -0,0 +1,3 @@
1
+ import type { EndpointDef } from '../types.js';
2
+ declare const _default: (a: EndpointDef, b: EndpointDef) => number;
3
+ export default _default;
@@ -0,0 +1,22 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
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;
@@ -0,0 +1,29 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.js","sourceRoot":"","sources":["../../../src/service/utils/match.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
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
+ };
@@ -0,0 +1,41 @@
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
@@ -0,0 +1 @@
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "integreat",
3
- "version": "0.8.1",
3
+ "version": "0.8.3",
4
4
  "description": "Node.js integration layer",
5
5
  "author": "Kjell-Morten Bratsberg Thorsen <kjellmorten@integreat.io> (https://integreat.io/)",
6
6
  "license": "ISC",
@@ -59,6 +59,6 @@
59
59
  "integreat-adapter-json": "^0.6.0",
60
60
  "integreat-transporter-http": "0.1.0",
61
61
  "nock": "^13.3.1",
62
- "sinon": "^15.1.0"
62
+ "sinon": "^15.2.0"
63
63
  }
64
64
  }