@pax2pay/model-banking 0.1.638 → 0.1.640

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/Audit.ts CHANGED
@@ -1,8 +1,26 @@
1
- import { storage } from "cloudly-storage"
1
+ import { isoly } from "isoly"
2
2
  import { isly } from "isly"
3
3
 
4
- export type Audit = storage.AuditLogger.Entry<Audit.Type>
4
+ export type Audit = Audit.Entry<Audit.Type>
5
5
  export namespace Audit {
6
+ export interface Entry<T extends Record<string, string>> {
7
+ id: string
8
+ created: isoly.DateTime
9
+ resource: Entry.Resource<T>
10
+ by: string
11
+ messages: string[]
12
+ }
13
+ export namespace Entry {
14
+ export type Resource<T extends Record<string, string>> = {
15
+ [K in keyof T]: {
16
+ id?: string
17
+ type: Extract<K, string> | "unknown"
18
+ action: T[K] | "unknown"
19
+ before?: unknown
20
+ after?: unknown
21
+ }
22
+ }[keyof T]
23
+ }
6
24
  export type Type = { [K in keyof typeof Resource.value]: (typeof Resource.value)[K][number] }
7
25
  export type Resource = keyof typeof Resource.value
8
26
  export namespace Resource {
@@ -1,6 +1,5 @@
1
1
  import { gracely } from "gracely"
2
2
  import { http } from "cloudly-http"
3
- import { storage } from "cloudly-storage"
4
3
  import { pax2pay } from "../../index"
5
4
  import { reports } from "../../reports"
6
5
 
@@ -10,7 +9,7 @@ export class Tpl {
10
9
  async getQuarterly(
11
10
  realm: pax2pay.Realm,
12
11
  processor: string,
13
- [start, end]: NonNullable<storage.KeyValueStore.ListOptions["range"]>,
12
+ [start, end]: [string?, string?],
14
13
  cursor?: string,
15
14
  limit?: number
16
15
  ): Promise<(reports.visa.Data & { cursor?: string }) | gracely.Error> {
package/User/Identity.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { gracely } from "gracely"
2
- import { storage } from "cloudly-storage"
3
2
  import { Realm } from "../Realm"
4
3
  import { Access } from "./Access"
5
4
  import { JWT } from "./JWT"
@@ -26,10 +25,10 @@ export class Identity {
26
25
  /** Key will default to production jwt verification key */
27
26
  static async open(
28
27
  authorization: string | undefined,
29
- options?: { store?: storage.KeyValueStore<JWT.Payload.LongTerm>; key?: string }
28
+ options?: { longTermTokenGetter?: JWT.LongTermTokenGetter; key?: string }
30
29
  ): Promise<Identity | gracely.Error> {
31
30
  const jwt = authorization?.startsWith("Bearer ") ? authorization.replace("Bearer ", "") : undefined
32
- const payload = jwt ? await JWT.open({ public: options?.key }, options?.store).verify(jwt) : undefined
31
+ const payload = jwt ? await JWT.open({ public: options?.key }, options?.longTermTokenGetter).verify(jwt) : undefined
33
32
  return jwt && payload ? new Identity(payload, jwt) : gracely.client.unauthorized()
34
33
  }
35
34
  }
package/User/JWT/index.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { authly } from "authly"
2
- import { storage } from "cloudly-storage"
3
2
  import { Payload as JWTPayload } from "./Payload"
4
3
  import { Signer as JWTSigner } from "./Signer"
5
4
 
@@ -21,7 +20,7 @@ export class JWT {
21
20
  }
22
21
  private constructor(
23
22
  private readonly key?: { public?: string; private?: string },
24
- private readonly store?: storage.KeyValueStore<JWT.Payload.LongTerm>
23
+ private readonly longTermTokenGetter?: JWT.LongTermTokenGetter
25
24
  ) {}
26
25
 
27
26
  async verify(token: string): Promise<JWT.Payload | undefined> {
@@ -29,7 +28,7 @@ export class JWT {
29
28
  delete verified?.token
30
29
  return JWT.Payload.type.is(verified) &&
31
30
  verified.iss == JWT.Payload.configuration.iss &&
32
- ("exp" in verified || (await this.store?.get(verified.id).then(s => s?.value)))
31
+ ("exp" in verified || (await this.longTermTokenGetter?.(verified.id)))
33
32
  ? verified
34
33
  : undefined
35
34
  }
@@ -39,12 +38,16 @@ export class JWT {
39
38
  return unpacked
40
39
  }
41
40
 
42
- static open(key?: { private?: string; public?: string }, store?: storage.KeyValueStore<JWT.Payload.LongTerm>): JWT {
41
+ static open(
42
+ key?: { private?: string; public?: string },
43
+ store?: (id: string) => Promise<JWT.Payload.LongTerm | undefined>
44
+ ): JWT {
43
45
  return new this({ private: key?.private, public: key?.public ?? JWT.key }, store)
44
46
  }
45
47
  }
46
48
  export namespace JWT {
47
49
  export import Signer = JWTSigner
50
+ export type LongTermTokenGetter = (id: string) => Promise<JWT.Payload.LongTerm | undefined>
48
51
  export async function unpack(token: string): Promise<JWT.Payload | undefined> {
49
52
  const algorithm = authly.Algorithm.RS256(undefined)
50
53
  const verifier = algorithm ? authly.Verifier.create<JWT.Payload>(algorithm) : undefined
package/User/MockKv.ts ADDED
@@ -0,0 +1,9 @@
1
+ export class MockKv<T> {
2
+ private readonly data: Record<string, { value: T | undefined } | undefined> = {}
3
+ async set(key: string, value: T | undefined) {
4
+ this.data[key] = value ? { value } : undefined
5
+ }
6
+ async get(key: string) {
7
+ return this.data[key]
8
+ }
9
+ }
@@ -1,7 +1,25 @@
1
- import { storage } from "cloudly-storage";
1
+ import { isoly } from "isoly";
2
2
  import { isly } from "isly";
3
- export type Audit = storage.AuditLogger.Entry<Audit.Type>;
3
+ export type Audit = Audit.Entry<Audit.Type>;
4
4
  export declare namespace Audit {
5
+ interface Entry<T extends Record<string, string>> {
6
+ id: string;
7
+ created: isoly.DateTime;
8
+ resource: Entry.Resource<T>;
9
+ by: string;
10
+ messages: string[];
11
+ }
12
+ namespace Entry {
13
+ type Resource<T extends Record<string, string>> = {
14
+ [K in keyof T]: {
15
+ id?: string;
16
+ type: Extract<K, string> | "unknown";
17
+ action: T[K] | "unknown";
18
+ before?: unknown;
19
+ after?: unknown;
20
+ };
21
+ }[keyof T];
22
+ }
5
23
  type Type = {
6
24
  [K in keyof typeof Resource.value]: (typeof Resource.value)[K][number];
7
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Audit.js","sourceRoot":"","sources":["../../Audit.ts"],"names":[],"mappings":";;;AACA,+BAA2B;AAG3B,IAAiB,KAAK,CA0DrB;AA1DD,WAAiB,KAAK;IAGrB,IAAiB,QAAQ,CAsDxB;IAtDD,WAAiB,QAAQ;QACX,cAAK,GAAG;YACpB,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;YACjC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;YACzB,WAAW,EAAE;gBACZ,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,OAAO;gBACP,cAAc;gBACd,eAAe;aACf;YACD,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,CAAC;YAC9G,OAAO,EAAE;gBACR,QAAQ;gBACR,oBAAoB;gBACpB,qBAAqB;gBACrB,iBAAiB;gBACjB,iBAAiB;gBACjB,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,QAAQ;gBACR,QAAQ;gBACR,WAAW;gBACX,QAAQ;gBACR,QAAQ;aACR;YACD,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;YACtC,WAAW,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;YAChE,YAAY,EAAE;gBACb,eAAe;gBACf,iBAAiB;gBACjB,iBAAiB;gBACjB,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,YAAY;aACZ;YACD,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;SAC1C,CAAA;QACG,aAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAA,KAAK,CAA2B,CAAA;QACnD,aAAI,GAAG,WAAI,CAAC,MAAM,CAAC,SAAA,IAAI,CAAC,CAAA;IACtC,CAAC,EAtDgB,QAAQ,GAAR,cAAQ,KAAR,cAAQ,QAsDxB;AACF,CAAC,EA1DgB,KAAK,qBAAL,KAAK,QA0DrB"}
1
+ {"version":3,"file":"Audit.js","sourceRoot":"","sources":["../../Audit.ts"],"names":[],"mappings":";;;AACA,+BAA2B;AAG3B,IAAiB,KAAK,CA4ErB;AA5ED,WAAiB,KAAK;IAqBrB,IAAiB,QAAQ,CAsDxB;IAtDD,WAAiB,QAAQ;QACX,cAAK,GAAG;YACpB,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;YACjC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;YACzB,WAAW,EAAE;gBACZ,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,OAAO;gBACP,cAAc;gBACd,eAAe;aACf;YACD,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,CAAC;YAC9G,OAAO,EAAE;gBACR,QAAQ;gBACR,oBAAoB;gBACpB,qBAAqB;gBACrB,iBAAiB;gBACjB,iBAAiB;gBACjB,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,QAAQ;gBACR,QAAQ;gBACR,WAAW;gBACX,QAAQ;gBACR,QAAQ;aACR;YACD,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;YACtC,WAAW,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;YAChE,YAAY,EAAE;gBACb,eAAe;gBACf,iBAAiB;gBACjB,iBAAiB;gBACjB,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,YAAY;aACZ;YACD,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;SAC1C,CAAA;QACG,aAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAA,KAAK,CAA2B,CAAA;QACnD,aAAI,GAAG,WAAI,CAAC,MAAM,CAAC,SAAA,IAAI,CAAC,CAAA;IACtC,CAAC,EAtDgB,QAAQ,GAAR,cAAQ,KAAR,cAAQ,QAsDxB;AACF,CAAC,EA5EgB,KAAK,qBAAL,KAAK,QA4ErB"}
@@ -1,12 +1,11 @@
1
1
  import { gracely } from "gracely";
2
2
  import { http } from "cloudly-http";
3
- import { storage } from "cloudly-storage";
4
3
  import { pax2pay } from "../../index";
5
4
  import { reports } from "../../reports";
6
5
  export declare class Tpl {
7
6
  private readonly client;
8
7
  constructor(client: http.Client);
9
- getQuarterly(realm: pax2pay.Realm, processor: string, [start, end]: NonNullable<storage.KeyValueStore.ListOptions["range"]>, cursor?: string, limit?: number): Promise<(reports.visa.Data & {
8
+ getQuarterly(realm: pax2pay.Realm, processor: string, [start, end]: [string?, string?], cursor?: string, limit?: number): Promise<(reports.visa.Data & {
10
9
  cursor?: string;
11
10
  }) | gracely.Error>;
12
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Tpl.js","sourceRoot":"","sources":["../../../../Client/Processor/Tpl.ts"],"names":[],"mappings":";;;AAMA,MAAa,GAAG;IACc;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,YAAY,CACjB,KAAoB,EACpB,SAAiB,EACjB,CAAC,KAAK,EAAE,GAAG,CAA0D,EACrE,MAAe,EACf,KAAc;QAEd,MAAM,MAAM,GACX,UAAU,KAAK,QAAQ,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QAC5G,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAC3B,cAAc,KAAK,IAAI,SAAS,oBAAoB,MAAM,EAAE,CAC5D,CAAA;IACF,CAAC;CACD;AAhBD,kBAgBC"}
1
+ {"version":3,"file":"Tpl.js","sourceRoot":"","sources":["../../../../Client/Processor/Tpl.ts"],"names":[],"mappings":";;;AAKA,MAAa,GAAG;IACc;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,YAAY,CACjB,KAAoB,EACpB,SAAiB,EACjB,CAAC,KAAK,EAAE,GAAG,CAAqB,EAChC,MAAe,EACf,KAAc;QAEd,MAAM,MAAM,GACX,UAAU,KAAK,QAAQ,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QAC5G,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAC3B,cAAc,KAAK,IAAI,SAAS,oBAAoB,MAAM,EAAE,CAC5D,CAAA;IACF,CAAC;CACD;AAhBD,kBAgBC"}
@@ -1,5 +1,4 @@
1
1
  import { gracely } from "gracely";
2
- import { storage } from "cloudly-storage";
3
2
  import { Realm } from "../Realm";
4
3
  import { Access } from "./Access";
5
4
  import { JWT } from "./JWT";
@@ -10,7 +9,7 @@ export declare class Identity {
10
9
  constructor(payload: JWT.Payload, jwt: string);
11
10
  authenticate(constraint: Access.Permission | Access.Permission[]): Identity | gracely.Error;
12
11
  static open(authorization: string | undefined, options?: {
13
- store?: storage.KeyValueStore<JWT.Payload.LongTerm>;
12
+ longTermTokenGetter?: JWT.LongTermTokenGetter;
14
13
  key?: string;
15
14
  }): Promise<Identity | gracely.Error>;
16
15
  }
@@ -26,7 +26,7 @@ class Identity {
26
26
  }
27
27
  static async open(authorization, options) {
28
28
  const jwt = authorization?.startsWith("Bearer ") ? authorization.replace("Bearer ", "") : undefined;
29
- const payload = jwt ? await JWT_1.JWT.open({ public: options?.key }, options?.store).verify(jwt) : undefined;
29
+ const payload = jwt ? await JWT_1.JWT.open({ public: options?.key }, options?.longTermTokenGetter).verify(jwt) : undefined;
30
30
  return jwt && payload ? new Identity(payload, jwt) : gracely_1.gracely.client.unauthorized();
31
31
  }
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Identity.js","sourceRoot":"","sources":["../../../User/Identity.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAGjC,qCAAiC;AACjC,+BAA2B;AAE3B,MAAa,QAAQ;IAKH;IACA;IALjB,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;IAC1B,CAAC;IACD,YACiB,OAAoB,EACpB,GAAW;QADX,YAAO,GAAP,OAAO,CAAa;QACpB,QAAG,GAAH,GAAG,CAAQ;IACzB,CAAC;IAEJ,YAAY,CAAC,UAAmD;QAC/D,IAAI,OAAgB,CAAA;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACP,OAAO,GAAG,eAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;IACnD,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,IAAI,CAChB,aAAiC,EACjC,OAA+E;QAE/E,MAAM,GAAG,GAAG,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACnG,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,SAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACtG,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;IACnF,CAAC;CACD;AA5BD,4BA4BC"}
1
+ {"version":3,"file":"Identity.js","sourceRoot":"","sources":["../../../User/Identity.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAEjC,qCAAiC;AACjC,+BAA2B;AAE3B,MAAa,QAAQ;IAKH;IACA;IALjB,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;IAC1B,CAAC;IACD,YACiB,OAAoB,EACpB,GAAW;QADX,YAAO,GAAP,OAAO,CAAa;QACpB,QAAG,GAAH,GAAG,CAAQ;IACzB,CAAC;IAEJ,YAAY,CAAC,UAAmD;QAC/D,IAAI,OAAgB,CAAA;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACP,OAAO,GAAG,eAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;IACnD,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,IAAI,CAChB,aAAiC,EACjC,OAAyE;QAEzE,MAAM,GAAG,GAAG,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACnG,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,SAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACpH,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;IACnF,CAAC;CACD;AA5BD,4BA4BC"}
@@ -1,10 +1,9 @@
1
- import { storage } from "cloudly-storage";
2
1
  import { Payload as JWTPayload } from "./Payload";
3
2
  import { Signer as JWTSigner } from "./Signer";
4
3
  export declare class JWT {
5
4
  #private;
6
5
  private readonly key?;
7
- private readonly store?;
6
+ private readonly longTermTokenGetter?;
8
7
  private get verifier();
9
8
  private get signer();
10
9
  get sign(): ((data: JWTPayload.Creatable, duration?: number | "infinite") => Promise<string | undefined>) | undefined;
@@ -14,10 +13,11 @@ export declare class JWT {
14
13
  static open(key?: {
15
14
  private?: string;
16
15
  public?: string;
17
- }, store?: storage.KeyValueStore<JWT.Payload.LongTerm>): JWT;
16
+ }, store?: (id: string) => Promise<JWT.Payload.LongTerm | undefined>): JWT;
18
17
  }
19
18
  export declare namespace JWT {
20
19
  export import Signer = JWTSigner;
20
+ type LongTermTokenGetter = (id: string) => Promise<JWT.Payload.LongTerm | undefined>;
21
21
  function unpack(token: string): Promise<JWT.Payload | undefined>;
22
22
  export import Payload = JWTPayload;
23
23
  const key = "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2W8CD2kpfS4QIRV2/rgm4NVvsvJsYNMHtnIl9ADvO3A81hAmRKvOAPVoXICe6+EuZ47jGjGL7f48GEoQuITfBPv/MosCDj1YhJ56ILDynCSd8FlxDrhv8pl5IquST7tcL6Hc6m+vuvoTLrFQ5QqNxv0a5eDd/YTrWv7SUuRfBEhYd/wMysGynN3QauHqy5ceBCt1nv1MJLGlSzczMRK7wjy1zi2g9NCHZBOoo1HXOpi727Xh+YXHc9EP2TN0oOXyxykv45nkGIDI0Qek3/pfkavClBffc1sEqA+rUx7YqRN9KGYxwLMLug+NOOh3ptqjfobXbR5fx/sUWhvcjUMTE1JreTrWYbGmVnjd/SeYSClfmGhdTBUfqnZbaABv0ruTXva18qRhP4y143vHMk/k8HzbuROTKAzrtEeLIjgwUgDcnE+JwDqcb8tKSGV6i++TiTldlSBCRTT4dK2hpHJje80b2abqtrbCkxbJlT98UsAAoiq2eW1X6lYmCfiGCJPkfswibQ2tPAKKNe/2xuHPsjx4FuXGmV0dbzmCwSIQoApXqOvKzoNFi6AaKIjxfNmiEigLwKpNrw08H0lVZbq/9MMxI3TzMTZjY9QmBKVLSGy3Z6IJqZpyK22lv7whJcllG0Qw8tv8+7wmC8SR3+4jpuxuFGZ+69CW+otx+CPMJjcCAwEAAQ==";
@@ -6,7 +6,7 @@ const Payload_1 = require("./Payload");
6
6
  const Signer_1 = require("./Signer");
7
7
  class JWT {
8
8
  key;
9
- store;
9
+ longTermTokenGetter;
10
10
  #verifier;
11
11
  get verifier() {
12
12
  if (!this.#verifier && this.key?.public) {
@@ -22,16 +22,16 @@ class JWT {
22
22
  get sign() {
23
23
  return this.signer?.sign;
24
24
  }
25
- constructor(key, store) {
25
+ constructor(key, longTermTokenGetter) {
26
26
  this.key = key;
27
- this.store = store;
27
+ this.longTermTokenGetter = longTermTokenGetter;
28
28
  }
29
29
  async verify(token) {
30
30
  const verified = await this.verifier?.verify(token, JWT.Payload.configuration.aud);
31
31
  delete verified?.token;
32
32
  return JWT.Payload.type.is(verified) &&
33
33
  verified.iss == JWT.Payload.configuration.iss &&
34
- ("exp" in verified || (await this.store?.get(verified.id).then(s => s?.value)))
34
+ ("exp" in verified || (await this.longTermTokenGetter?.(verified.id)))
35
35
  ? verified
36
36
  : undefined;
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../User/JWT/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../User/JWT/index.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAC/B,uCAAiD;AACjD,qCAA8C;AAE9C,MAAa,GAAG;IAiBG;IACA;IAjBlB,SAAS,CAA+B;IACxC,IAAY,QAAQ;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,eAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC3E,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAA;IACtB,CAAC;IACD,OAAO,CAAY;IACnB,IAAY,MAAM;QACjB,OAAO,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,eAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACnF,CAAC;IACD,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,CAAA;IACzB,CAAC;IACD,YACkB,GAA2C,EAC3C,mBAA6C;QAD7C,QAAG,GAAH,GAAG,CAAwC;QAC3C,wBAAmB,GAAnB,mBAAmB,CAA0B;IAC5D,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,KAAa;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAClF,OAAO,QAAQ,EAAE,KAAK,CAAA;QACtB,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;YACnC,QAAQ,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG;YAC7C,CAAC,KAAK,IAAI,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YACtE,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,SAAS,CAAA;IACb,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,KAAa;QACzB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACxC,OAAO,QAAQ,EAAE,KAAK,CAAA;QACtB,OAAO,QAAQ,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,IAAI,CACV,GAA2C,EAC3C,KAAiE;QAEjE,OAAO,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAA;IAClF,CAAC;CACD;AA1CD,kBA0CC;AACD,WAAiB,GAAG;IACL,UAAM,GAAG,eAAS,CAAA;IAEzB,KAAK,UAAU,MAAM,CAAC,KAAa;QACzC,MAAM,SAAS,GAAG,eAAM,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,eAAM,CAAC,QAAQ,CAAC,MAAM,CAAc,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACvF,OAAO,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAJqB,UAAM,SAI3B,CAAA;IACa,WAAO,GAAG,iBAAU,CAAA;IACrB,OAAG,GACf,kuBAAkuB,CAAA;AACpuB,CAAC,EAXgB,GAAG,mBAAH,GAAG,QAWnB"}
@@ -1,7 +1,25 @@
1
- import { storage } from "cloudly-storage";
1
+ import { isoly } from "isoly";
2
2
  import { isly } from "isly";
3
- export type Audit = storage.AuditLogger.Entry<Audit.Type>;
3
+ export type Audit = Audit.Entry<Audit.Type>;
4
4
  export declare namespace Audit {
5
+ interface Entry<T extends Record<string, string>> {
6
+ id: string;
7
+ created: isoly.DateTime;
8
+ resource: Entry.Resource<T>;
9
+ by: string;
10
+ messages: string[];
11
+ }
12
+ namespace Entry {
13
+ type Resource<T extends Record<string, string>> = {
14
+ [K in keyof T]: {
15
+ id?: string;
16
+ type: Extract<K, string> | "unknown";
17
+ action: T[K] | "unknown";
18
+ before?: unknown;
19
+ after?: unknown;
20
+ };
21
+ }[keyof T];
22
+ }
5
23
  type Type = {
6
24
  [K in keyof typeof Resource.value]: (typeof Resource.value)[K][number];
7
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Audit.js","sourceRoot":"","sources":["../../Audit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,MAAM,KAAW,KAAK,CA0DrB;AA1DD,WAAiB,KAAK;IAGrB,IAAiB,QAAQ,CAsDxB;IAtDD,WAAiB,QAAQ;QACX,cAAK,GAAG;YACpB,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;YACjC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;YACzB,WAAW,EAAE;gBACZ,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,OAAO;gBACP,cAAc;gBACd,eAAe;aACf;YACD,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,CAAC;YAC9G,OAAO,EAAE;gBACR,QAAQ;gBACR,oBAAoB;gBACpB,qBAAqB;gBACrB,iBAAiB;gBACjB,iBAAiB;gBACjB,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,QAAQ;gBACR,QAAQ;gBACR,WAAW;gBACX,QAAQ;gBACR,QAAQ;aACR;YACD,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;YACtC,WAAW,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;YAChE,YAAY,EAAE;gBACb,eAAe;gBACf,iBAAiB;gBACjB,iBAAiB;gBACjB,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,YAAY;aACZ;YACD,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;SAC1C,CAAA;QACG,aAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAA,KAAK,CAA2B,CAAA;QACnD,aAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAA,IAAI,CAAC,CAAA;IACtC,CAAC,EAtDgB,QAAQ,GAAR,cAAQ,KAAR,cAAQ,QAsDxB;AACF,CAAC,EA1DgB,KAAK,KAAL,KAAK,QA0DrB"}
1
+ {"version":3,"file":"Audit.js","sourceRoot":"","sources":["../../Audit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,MAAM,KAAW,KAAK,CA4ErB;AA5ED,WAAiB,KAAK;IAqBrB,IAAiB,QAAQ,CAsDxB;IAtDD,WAAiB,QAAQ;QACX,cAAK,GAAG;YACpB,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;YACjC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;YACzB,WAAW,EAAE;gBACZ,SAAS;gBACT,SAAS;gBACT,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,OAAO;gBACP,cAAc;gBACd,eAAe;aACf;YACD,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,CAAC;YAC9G,OAAO,EAAE;gBACR,QAAQ;gBACR,oBAAoB;gBACpB,qBAAqB;gBACrB,iBAAiB;gBACjB,iBAAiB;gBACjB,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,QAAQ;gBACR,QAAQ;gBACR,WAAW;gBACX,QAAQ;gBACR,QAAQ;aACR;YACD,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;YACtC,WAAW,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;YAChE,YAAY,EAAE;gBACb,eAAe;gBACf,iBAAiB;gBACjB,iBAAiB;gBACjB,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,YAAY;aACZ;YACD,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,SAAS,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;SAC1C,CAAA;QACG,aAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAA,KAAK,CAA2B,CAAA;QACnD,aAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAA,IAAI,CAAC,CAAA;IACtC,CAAC,EAtDgB,QAAQ,GAAR,cAAQ,KAAR,cAAQ,QAsDxB;AACF,CAAC,EA5EgB,KAAK,KAAL,KAAK,QA4ErB"}
@@ -1,12 +1,11 @@
1
1
  import { gracely } from "gracely";
2
2
  import { http } from "cloudly-http";
3
- import { storage } from "cloudly-storage";
4
3
  import { pax2pay } from "../../index";
5
4
  import { reports } from "../../reports";
6
5
  export declare class Tpl {
7
6
  private readonly client;
8
7
  constructor(client: http.Client);
9
- getQuarterly(realm: pax2pay.Realm, processor: string, [start, end]: NonNullable<storage.KeyValueStore.ListOptions["range"]>, cursor?: string, limit?: number): Promise<(reports.visa.Data & {
8
+ getQuarterly(realm: pax2pay.Realm, processor: string, [start, end]: [string?, string?], cursor?: string, limit?: number): Promise<(reports.visa.Data & {
10
9
  cursor?: string;
11
10
  }) | gracely.Error>;
12
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Tpl.js","sourceRoot":"","sources":["../../../../Client/Processor/Tpl.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,GAAG;IACc;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,YAAY,CACjB,KAAoB,EACpB,SAAiB,EACjB,CAAC,KAAK,EAAE,GAAG,CAA0D,EACrE,MAAe,EACf,KAAc;QAEd,MAAM,MAAM,GACX,UAAU,KAAK,QAAQ,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QAC5G,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAC3B,cAAc,KAAK,IAAI,SAAS,oBAAoB,MAAM,EAAE,CAC5D,CAAA;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"Tpl.js","sourceRoot":"","sources":["../../../../Client/Processor/Tpl.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,GAAG;IACc;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,YAAY,CACjB,KAAoB,EACpB,SAAiB,EACjB,CAAC,KAAK,EAAE,GAAG,CAAqB,EAChC,MAAe,EACf,KAAc;QAEd,MAAM,MAAM,GACX,UAAU,KAAK,QAAQ,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QAC5G,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAC3B,cAAc,KAAK,IAAI,SAAS,oBAAoB,MAAM,EAAE,CAC5D,CAAA;IACF,CAAC;CACD"}
@@ -1,5 +1,4 @@
1
1
  import { gracely } from "gracely";
2
- import { storage } from "cloudly-storage";
3
2
  import { Realm } from "../Realm";
4
3
  import { Access } from "./Access";
5
4
  import { JWT } from "./JWT";
@@ -10,7 +9,7 @@ export declare class Identity {
10
9
  constructor(payload: JWT.Payload, jwt: string);
11
10
  authenticate(constraint: Access.Permission | Access.Permission[]): Identity | gracely.Error;
12
11
  static open(authorization: string | undefined, options?: {
13
- store?: storage.KeyValueStore<JWT.Payload.LongTerm>;
12
+ longTermTokenGetter?: JWT.LongTermTokenGetter;
14
13
  key?: string;
15
14
  }): Promise<Identity | gracely.Error>;
16
15
  }
@@ -23,7 +23,7 @@ export class Identity {
23
23
  }
24
24
  static async open(authorization, options) {
25
25
  const jwt = authorization?.startsWith("Bearer ") ? authorization.replace("Bearer ", "") : undefined;
26
- const payload = jwt ? await JWT.open({ public: options?.key }, options?.store).verify(jwt) : undefined;
26
+ const payload = jwt ? await JWT.open({ public: options?.key }, options?.longTermTokenGetter).verify(jwt) : undefined;
27
27
  return jwt && payload ? new Identity(payload, jwt) : gracely.client.unauthorized();
28
28
  }
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Identity.js","sourceRoot":"","sources":["../../../User/Identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE3B,MAAM,OAAO,QAAQ;IAKH;IACA;IALjB,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;IAC1B,CAAC;IACD,YACiB,OAAoB,EACpB,GAAW;QADX,YAAO,GAAP,OAAO,CAAa;QACpB,QAAG,GAAH,GAAG,CAAQ;IACzB,CAAC;IAEJ,YAAY,CAAC,UAAmD;QAC/D,IAAI,OAAgB,CAAA;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACP,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;IACnD,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,IAAI,CAChB,aAAiC,EACjC,OAA+E;QAE/E,MAAM,GAAG,GAAG,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACnG,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACtG,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;IACnF,CAAC;CACD"}
1
+ {"version":3,"file":"Identity.js","sourceRoot":"","sources":["../../../User/Identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE3B,MAAM,OAAO,QAAQ;IAKH;IACA;IALjB,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA;IAC1B,CAAC;IACD,YACiB,OAAoB,EACpB,GAAW;QADX,YAAO,GAAP,OAAO,CAAa;QACpB,QAAG,GAAH,GAAG,CAAQ;IACzB,CAAC;IAEJ,YAAY,CAAC,UAAmD;QAC/D,IAAI,OAAgB,CAAA;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACP,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;IACnD,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,IAAI,CAChB,aAAiC,EACjC,OAAyE;QAEzE,MAAM,GAAG,GAAG,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACnG,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACpH,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;IACnF,CAAC;CACD"}
@@ -1,10 +1,9 @@
1
- import { storage } from "cloudly-storage";
2
1
  import { Payload as JWTPayload } from "./Payload";
3
2
  import { Signer as JWTSigner } from "./Signer";
4
3
  export declare class JWT {
5
4
  #private;
6
5
  private readonly key?;
7
- private readonly store?;
6
+ private readonly longTermTokenGetter?;
8
7
  private get verifier();
9
8
  private get signer();
10
9
  get sign(): ((data: JWTPayload.Creatable, duration?: number | "infinite") => Promise<string | undefined>) | undefined;
@@ -14,10 +13,11 @@ export declare class JWT {
14
13
  static open(key?: {
15
14
  private?: string;
16
15
  public?: string;
17
- }, store?: storage.KeyValueStore<JWT.Payload.LongTerm>): JWT;
16
+ }, store?: (id: string) => Promise<JWT.Payload.LongTerm | undefined>): JWT;
18
17
  }
19
18
  export declare namespace JWT {
20
19
  export import Signer = JWTSigner;
20
+ type LongTermTokenGetter = (id: string) => Promise<JWT.Payload.LongTerm | undefined>;
21
21
  function unpack(token: string): Promise<JWT.Payload | undefined>;
22
22
  export import Payload = JWTPayload;
23
23
  const key = "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2W8CD2kpfS4QIRV2/rgm4NVvsvJsYNMHtnIl9ADvO3A81hAmRKvOAPVoXICe6+EuZ47jGjGL7f48GEoQuITfBPv/MosCDj1YhJ56ILDynCSd8FlxDrhv8pl5IquST7tcL6Hc6m+vuvoTLrFQ5QqNxv0a5eDd/YTrWv7SUuRfBEhYd/wMysGynN3QauHqy5ceBCt1nv1MJLGlSzczMRK7wjy1zi2g9NCHZBOoo1HXOpi727Xh+YXHc9EP2TN0oOXyxykv45nkGIDI0Qek3/pfkavClBffc1sEqA+rUx7YqRN9KGYxwLMLug+NOOh3ptqjfobXbR5fx/sUWhvcjUMTE1JreTrWYbGmVnjd/SeYSClfmGhdTBUfqnZbaABv0ruTXva18qRhP4y143vHMk/k8HzbuROTKAzrtEeLIjgwUgDcnE+JwDqcb8tKSGV6i++TiTldlSBCRTT4dK2hpHJje80b2abqtrbCkxbJlT98UsAAoiq2eW1X6lYmCfiGCJPkfswibQ2tPAKKNe/2xuHPsjx4FuXGmV0dbzmCwSIQoApXqOvKzoNFi6AaKIjxfNmiEigLwKpNrw08H0lVZbq/9MMxI3TzMTZjY9QmBKVLSGy3Z6IJqZpyK22lv7whJcllG0Qw8tv8+7wmC8SR3+4jpuxuFGZ+69CW+otx+CPMJjcCAwEAAQ==";
@@ -3,7 +3,7 @@ import { Payload as JWTPayload } from "./Payload";
3
3
  import { Signer as JWTSigner } from "./Signer";
4
4
  export class JWT {
5
5
  key;
6
- store;
6
+ longTermTokenGetter;
7
7
  #verifier;
8
8
  get verifier() {
9
9
  if (!this.#verifier && this.key?.public) {
@@ -19,16 +19,16 @@ export class JWT {
19
19
  get sign() {
20
20
  return this.signer?.sign;
21
21
  }
22
- constructor(key, store) {
22
+ constructor(key, longTermTokenGetter) {
23
23
  this.key = key;
24
- this.store = store;
24
+ this.longTermTokenGetter = longTermTokenGetter;
25
25
  }
26
26
  async verify(token) {
27
27
  const verified = await this.verifier?.verify(token, JWT.Payload.configuration.aud);
28
28
  delete verified?.token;
29
29
  return JWT.Payload.type.is(verified) &&
30
30
  verified.iss == JWT.Payload.configuration.iss &&
31
- ("exp" in verified || (await this.store?.get(verified.id).then(s => s?.value)))
31
+ ("exp" in verified || (await this.longTermTokenGetter?.(verified.id)))
32
32
  ? verified
33
33
  : undefined;
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../User/JWT/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../User/JWT/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pax2pay/model-banking",
3
- "version": "0.1.638",
3
+ "version": "0.1.640",
4
4
  "description": "Library containing data model types and functions for the Pax2Pay Banking API.",
5
5
  "author": "Pax2Pay Ltd",
6
6
  "license": "MIT",
@@ -11,20 +11,6 @@
11
11
  "homepage": "https://pax2pay.com",
12
12
  "private": false,
13
13
  "type": "module",
14
- "module": "./dist/mjs/index.js",
15
- "types": "./dist/types/index.d.ts",
16
- "exports": {
17
- ".": {
18
- "import": {
19
- "types": "./dist/types/index.d.ts",
20
- "default": "./dist/mjs/index.js"
21
- },
22
- "require": {
23
- "types": "./dist/types/index.d.ts",
24
- "default": "./dist/cjs/index.js"
25
- }
26
- }
27
- },
28
14
  "git": {
29
15
  "tagName": "v${version}"
30
16
  },
@@ -61,7 +47,6 @@
61
47
  "dependencies": {
62
48
  "authly": "^3.1.2",
63
49
  "cloudly-http": "^0.1.7",
64
- "cloudly-storage": "^0.10.16",
65
50
  "cryptly": "^4.0.6",
66
51
  "gracely": "^2.0.13",
67
52
  "isly": "0.1.20",