@venizia/ardor-kernel 0.3.7 → 0.4.1

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.
Files changed (96) hide show
  1. package/README.md +2 -2
  2. package/dist/base/applications/abstract.d.ts +11 -14
  3. package/dist/base/applications/abstract.d.ts.map +1 -1
  4. package/dist/base/applications/abstract.js +18 -15
  5. package/dist/base/applications/abstract.js.map +1 -1
  6. package/dist/base/services/auth.d.ts +11 -3
  7. package/dist/base/services/auth.d.ts.map +1 -1
  8. package/dist/base/services/auth.js +47 -17
  9. package/dist/base/services/auth.js.map +1 -1
  10. package/dist/base/services/network-request.d.ts +25 -93
  11. package/dist/base/services/network-request.d.ts.map +1 -1
  12. package/dist/base/services/network-request.js +66 -306
  13. package/dist/base/services/network-request.js.map +1 -1
  14. package/dist/common/constants.d.ts +1 -4
  15. package/dist/common/constants.d.ts.map +1 -1
  16. package/dist/common/constants.js +1 -4
  17. package/dist/common/constants.js.map +1 -1
  18. package/dist/common/keys.d.ts +3 -0
  19. package/dist/common/keys.d.ts.map +1 -1
  20. package/dist/common/keys.js +3 -0
  21. package/dist/common/keys.js.map +1 -1
  22. package/dist/common/types.d.ts +43 -25
  23. package/dist/common/types.d.ts.map +1 -1
  24. package/dist/helpers/auth-token-store.d.ts +14 -0
  25. package/dist/helpers/auth-token-store.d.ts.map +1 -0
  26. package/dist/helpers/auth-token-store.js +34 -0
  27. package/dist/helpers/auth-token-store.js.map +1 -0
  28. package/dist/helpers/index.d.ts +1 -0
  29. package/dist/helpers/index.d.ts.map +1 -1
  30. package/dist/helpers/index.js +1 -0
  31. package/dist/helpers/index.js.map +1 -1
  32. package/dist/helpers/logger.d.ts +12 -12
  33. package/dist/helpers/logger.d.ts.map +1 -1
  34. package/dist/helpers/logger.js +0 -4
  35. package/dist/helpers/logger.js.map +1 -1
  36. package/dist/helpers/networks/auth-recovery.d.ts +27 -0
  37. package/dist/helpers/networks/auth-recovery.d.ts.map +1 -0
  38. package/dist/helpers/networks/auth-recovery.js +45 -0
  39. package/dist/helpers/networks/auth-recovery.js.map +1 -0
  40. package/dist/helpers/networks/index.d.ts +3 -3
  41. package/dist/helpers/networks/index.d.ts.map +1 -1
  42. package/dist/helpers/networks/index.js +3 -3
  43. package/dist/helpers/networks/index.js.map +1 -1
  44. package/dist/helpers/networks/request-body-encoder.d.ts +17 -0
  45. package/dist/helpers/networks/request-body-encoder.d.ts.map +1 -0
  46. package/dist/helpers/networks/request-body-encoder.js +72 -0
  47. package/dist/helpers/networks/request-body-encoder.js.map +1 -0
  48. package/dist/helpers/networks/response-reader.d.ts +39 -0
  49. package/dist/helpers/networks/response-reader.d.ts.map +1 -0
  50. package/dist/helpers/networks/response-reader.js +149 -0
  51. package/dist/helpers/networks/response-reader.js.map +1 -0
  52. package/dist/utilities/index.d.ts +0 -2
  53. package/dist/utilities/index.d.ts.map +1 -1
  54. package/dist/utilities/index.js +0 -2
  55. package/dist/utilities/index.js.map +1 -1
  56. package/dist/utilities/runtime-config.d.ts +3 -4
  57. package/dist/utilities/runtime-config.d.ts.map +1 -1
  58. package/dist/utilities/runtime-config.js +3 -4
  59. package/dist/utilities/runtime-config.js.map +1 -1
  60. package/package.json +40 -58
  61. package/dist/helpers/networks/base-request.d.ts +0 -36
  62. package/dist/helpers/networks/base-request.d.ts.map +0 -1
  63. package/dist/helpers/networks/base-request.js +0 -64
  64. package/dist/helpers/networks/base-request.js.map +0 -1
  65. package/dist/helpers/networks/common/index.d.ts +0 -2
  66. package/dist/helpers/networks/common/index.d.ts.map +0 -1
  67. package/dist/helpers/networks/common/index.js +0 -2
  68. package/dist/helpers/networks/common/index.js.map +0 -1
  69. package/dist/helpers/networks/common/types.d.ts +0 -4
  70. package/dist/helpers/networks/common/types.d.ts.map +0 -1
  71. package/dist/helpers/networks/common/types.js +0 -2
  72. package/dist/helpers/networks/common/types.js.map +0 -1
  73. package/dist/helpers/networks/fetchers/abstract.d.ts +0 -40
  74. package/dist/helpers/networks/fetchers/abstract.d.ts.map +0 -1
  75. package/dist/helpers/networks/fetchers/abstract.js +0 -35
  76. package/dist/helpers/networks/fetchers/abstract.js.map +0 -1
  77. package/dist/helpers/networks/fetchers/index.d.ts +0 -3
  78. package/dist/helpers/networks/fetchers/index.d.ts.map +0 -1
  79. package/dist/helpers/networks/fetchers/index.js +0 -3
  80. package/dist/helpers/networks/fetchers/index.js.map +0 -1
  81. package/dist/helpers/networks/fetchers/node-fetch.d.ts +0 -14
  82. package/dist/helpers/networks/fetchers/node-fetch.d.ts.map +0 -1
  83. package/dist/helpers/networks/fetchers/node-fetch.js +0 -43
  84. package/dist/helpers/networks/fetchers/node-fetch.js.map +0 -1
  85. package/dist/helpers/socket-io-client.d.ts +0 -40
  86. package/dist/helpers/socket-io-client.d.ts.map +0 -1
  87. package/dist/helpers/socket-io-client.js +0 -107
  88. package/dist/helpers/socket-io-client.js.map +0 -1
  89. package/dist/utilities/parse.d.ts +0 -47
  90. package/dist/utilities/parse.d.ts.map +0 -1
  91. package/dist/utilities/parse.js +0 -110
  92. package/dist/utilities/parse.js.map +0 -1
  93. package/dist/utilities/url.d.ts +0 -8
  94. package/dist/utilities/url.d.ts.map +0 -1
  95. package/dist/utilities/url.js +0 -21
  96. package/dist/utilities/url.js.map +0 -1
package/README.md CHANGED
@@ -20,9 +20,9 @@ which re-exports this package.
20
20
  | Decorators | `api()` - logs and rethrows a failing API method |
21
21
  | Bindings | `CoreBindings`, `LocalStorageKeys` |
22
22
  | Constants | `RequestMethods`, `RequestTypes`, `RequestBodyTypes`, `RequestCountData`, `HeaderConstants`, `Environments`, `App` |
23
- | Network | `BaseNetworkRequest`, `NodeFetchNetworkRequest`, `NodeFetcher` (fetch only) |
23
+ | Network | `NetworkHeaders`, `RequestBodyEncoder`, `ResponseReader`, `AuthRecovery`, `AuthTokenStore` (the fetch transport is IGNIS's `NodeFetchNetworkRequest`) |
24
24
  | Helpers | `Logger`, `BaseHelper`, `SocketIOClientHelper` |
25
- | Utilities | `isDefined`, `isString`, `isNumber`, `isObject`, `isBrowser`, `isValidDate`, `isEditableTarget`, `isInteger`, `isFloat`, `toInteger`, `toFloat`, `toBoolean`, `toStringDecimal`, `getNumberValue`, `generateUniqueId`, `toCamelCase`, `keysToCamelCase`, `toDataUrl`, `toQueryString`, `parseQueryString` |
25
+ | Utilities | `isDefined`, `isString`, `isNumber`, `isObject`, `isBrowser`, `isValidDate`, `isEditableTarget`, `toDataUrl` |
26
26
  | Types | `IdType`, `AnyType`, `AnyObject`, `ValueOrPromise`, `ValueOf`, `TConstValue`, `TPaths`, `TFullPaths`, `ISendParams`, `IRestDataProviderOptions`, `IApplicationInfo`, ... |
27
27
 
28
28
  ## License
@@ -21,12 +21,13 @@ export declare abstract class AbstractArdorApplication extends Container impleme
21
21
  abstract getAppInfo(): ValueOrPromise<IApplicationInfo>;
22
22
  /** What `start()` resolved from `artifacts()`; unset when `preConfigure()` runs without it. */
23
23
  private resolvedIndexes;
24
+ /** Stays synchronous unless `getAppInfo()` returns a promise: a subclass may still return either. */
24
25
  preConfigure(): ValueOrPromise<void>;
26
+ private bindInfoAndArtifacts;
25
27
  /**
26
- * Binds every stereotyped class under the key and scope it declares, then each of its `@provide`
27
- * methods under the method's key, as IGNIS's `bindProvidedKeys` does: a lazy provider that
28
- * resolves the class and calls the method on first `get()`, SINGLETON unless `scope` says
29
- * otherwise. One data provider then serves react-admin, the auth provider and every hook.
28
+ * Binds every stereotyped class under its key and scope, then each `@provide` method under its
29
+ * own key, as IGNIS's `bindProvidedKeys` does: a lazy provider, SINGLETON unless `scope` says
30
+ * otherwise.
30
31
  */
31
32
  registerArtifacts(): void;
32
33
  /** Classes bound under literal keys before `bindContext()` runs. */
@@ -39,19 +40,15 @@ export declare abstract class AbstractArdorApplication extends Container impleme
39
40
  /** The feature packages this application mounts, bound under `CoreBindings.FEATURES`. */
40
41
  features(): Array<IFeatureBase>;
41
42
  /**
42
- * `artifacts()` with each group that carries no `content` replaced by the flat index its
43
- * `resolve()` returns. Resolving imports the group's modules, which decorates their classes, so it
44
- * must finish before `registerArtifacts()` reads the discovery list. A group with `content` was
45
- * inlined by a bundler plugin and is left alone, like a plain index.
43
+ * `artifacts()` with each group without `content` replaced by the index its `resolve()` returns.
44
+ * Resolving imports the modules, which decorates their classes: it must finish before
45
+ * `registerArtifacts()` reads the discovery list.
46
46
  */
47
47
  private resolveArtifactIndexes;
48
48
  /**
49
- * Every class an index lists must have been discovered: one that was not lost its decorator, or
50
- * the index is stale, and its binding was silently never made.
51
- *
52
- * An IGNIS artifact group (`isArtifactGroup`) is not an index: its kind fields are getters that
53
- * throw when read. Only the `content` a bundler plugin inlined is a flat index, so that is what
54
- * gets checked; a group without content is resolved by IGNIS and has nothing to check here.
49
+ * Every class a flat index lists must be discovered, or its binding is silently never made. An
50
+ * artifact group (`isArtifactGroup`) is not an index - its kind fields throw when read - so only
51
+ * its inlined `content` is checked.
55
52
  */
56
53
  private assertIndexed;
57
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../src/base/applications/abstract.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,OAAO,EAEZ,SAAS,EAET,KAAK,aAAa,EAClB,KAAK,MAAM,EACZ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAYlB,kGAAkG;AAClG,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;GAIG;AACH,8BAAsB,wBAAyB,SAAQ,SAAU,YAAW,iBAAiB;IAC3F,QAAQ,CAAC,WAAW,IAAI,cAAc,CAAC,IAAI,CAAC;IAC5C,QAAQ,CAAC,UAAU,IAAI,cAAc,CAAC,gBAAgB,CAAC;IAEvD,+FAA+F;IAC/F,OAAO,CAAC,eAAe,CAAoC;IAE3D,YAAY,IAAI,cAAc,CAAC,IAAI,CAAC;IAgBpC;;;;;OAKG;IACH,iBAAiB,IAAI,IAAI;IA4CzB,oEAAoE;IACpE,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAI9C;;;OAGG;IACH,SAAS,IAAI,KAAK,CAAC,cAAc,CAAC;IAIlC,yFAAyF;IACzF,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC;IAI/B;;;;;OAKG;YACW,sBAAsB;IA8BpC;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IA8BrB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAyBxB,aAAa,IAAI,cAAc,CAAC,IAAI,CAAC;IAErC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC;IASvE,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC;IAS1E,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC;IAS1E,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC;IASzE,sFAAsF;IACtF,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;IAS7D,KAAK;IAMX,oGAAoG;IACpG,OAAO,CAAC,gBAAgB;CA0BzB;AAED,8BAAsB,oBAAqB,SAAQ,wBAAwB;CAAG"}
1
+ {"version":3,"file":"abstract.d.ts","sourceRoot":"","sources":["../../../src/base/applications/abstract.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,OAAO,EAEZ,SAAS,EAET,KAAK,aAAa,EAClB,KAAK,MAAM,EACZ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAYlB,kGAAkG;AAClG,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;GAIG;AACH,8BAAsB,wBAAyB,SAAQ,SAAU,YAAW,iBAAiB;IAC3F,QAAQ,CAAC,WAAW,IAAI,cAAc,CAAC,IAAI,CAAC;IAC5C,QAAQ,CAAC,UAAU,IAAI,cAAc,CAAC,gBAAgB,CAAC;IAEvD,+FAA+F;IAC/F,OAAO,CAAC,eAAe,CAAoC;IAE3D,qGAAqG;IACrG,YAAY,IAAI,cAAc,CAAC,IAAI,CAAC;IAYpC,OAAO,CAAC,oBAAoB;IAe5B;;;;OAIG;IACH,iBAAiB,IAAI,IAAI;IA4CzB,oEAAoE;IACpE,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAI9C;;;OAGG;IACH,SAAS,IAAI,KAAK,CAAC,cAAc,CAAC;IAIlC,yFAAyF;IACzF,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC;IAI/B;;;;OAIG;YACW,sBAAsB;IA8BpC;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA8BrB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAyBxB,aAAa,IAAI,cAAc,CAAC,IAAI,CAAC;IAErC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC;IASvE,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC;IAS1E,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC;IAS1E,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,CAAC,CAAC;IASzE,sFAAsF;IACtF,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;IAS7D,KAAK;IAMX,oGAAoG;IACpG,OAAO,CAAC,gBAAgB;CA0BzB;AAED,8BAAsB,oBAAqB,SAAQ,wBAAwB;CAAG"}
@@ -16,9 +16,17 @@ const ArtifactIndexKinds = [
16
16
  * SINGLETON (IGNIS's server uses transient): a hook resolves on every render.
17
17
  */
18
18
  export class AbstractArdorApplication extends Container {
19
+ /** Stays synchronous unless `getAppInfo()` returns a promise: a subclass may still return either. */
19
20
  preConfigure() {
20
21
  this.bind({ key: CoreBindings.APPLICATION_INSTANCE }).toValue(this);
21
- this.bind({ key: CoreBindings.APPLICATION_INFO }).toValue(this.getAppInfo());
22
+ const info = this.getAppInfo();
23
+ if (info instanceof Promise) {
24
+ return info.then((resolved) => this.bindInfoAndArtifacts({ info: resolved }));
25
+ }
26
+ return this.bindInfoAndArtifacts({ info });
27
+ }
28
+ bindInfoAndArtifacts(opts) {
29
+ this.bind({ key: CoreBindings.APPLICATION_INFO }).toValue(opts.info);
22
30
  // Least explicit first, so the most explicit wins: stereotype, features, bindingList(), bindContext().
23
31
  this.registerArtifacts();
24
32
  this.registerFeatures({ features: this.features() });
@@ -29,10 +37,9 @@ export class AbstractArdorApplication extends Container {
29
37
  return this.bindContext();
30
38
  }
31
39
  /**
32
- * Binds every stereotyped class under the key and scope it declares, then each of its `@provide`
33
- * methods under the method's key, as IGNIS's `bindProvidedKeys` does: a lazy provider that
34
- * resolves the class and calls the method on first `get()`, SINGLETON unless `scope` says
35
- * otherwise. One data provider then serves react-admin, the auth provider and every hook.
40
+ * Binds every stereotyped class under its key and scope, then each `@provide` method under its
41
+ * own key, as IGNIS's `bindProvidedKeys` does: a lazy provider, SINGLETON unless `scope` says
42
+ * otherwise.
36
43
  */
37
44
  registerArtifacts() {
38
45
  const registry = MetadataRegistry.getInstance();
@@ -88,10 +95,9 @@ export class AbstractArdorApplication extends Container {
88
95
  return [];
89
96
  }
90
97
  /**
91
- * `artifacts()` with each group that carries no `content` replaced by the flat index its
92
- * `resolve()` returns. Resolving imports the group's modules, which decorates their classes, so it
93
- * must finish before `registerArtifacts()` reads the discovery list. A group with `content` was
94
- * inlined by a bundler plugin and is left alone, like a plain index.
98
+ * `artifacts()` with each group without `content` replaced by the index its `resolve()` returns.
99
+ * Resolving imports the modules, which decorates their classes: it must finish before
100
+ * `registerArtifacts()` reads the discovery list.
95
101
  */
96
102
  async resolveArtifactIndexes() {
97
103
  const resolved = [];
@@ -113,12 +119,9 @@ export class AbstractArdorApplication extends Container {
113
119
  return resolved;
114
120
  }
115
121
  /**
116
- * Every class an index lists must have been discovered: one that was not lost its decorator, or
117
- * the index is stale, and its binding was silently never made.
118
- *
119
- * An IGNIS artifact group (`isArtifactGroup`) is not an index: its kind fields are getters that
120
- * throw when read. Only the `content` a bundler plugin inlined is a flat index, so that is what
121
- * gets checked; a group without content is resolved by IGNIS and has nothing to check here.
122
+ * Every class a flat index lists must be discovered, or its binding is silently never made. An
123
+ * artifact group (`isArtifactGroup`) is not an index - its kind fields throw when read - so only
124
+ * its inlined `content` is checked.
122
125
  */
123
126
  assertIndexed(opts) {
124
127
  const { indexes, discovered } = opts;
@@ -1 +1 @@
1
- {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../src/base/applications/abstract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../src/base/applications/abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,aAAa,EACb,SAAS,EACT,QAAQ,GAGT,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,YAAY,GAMb,MAAM,UAAU,CAAC;AAElB,oFAAoF;AACpF,MAAM,kBAAkB,GAAG;IACzB,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,cAAc;IACd,UAAU;IACV,aAAa;CACyC,CAAC;AAWzD;;;;GAIG;AACH,MAAM,OAAgB,wBAAyB,SAAQ,SAAS;IAO9D,qGAAqG;IACrG,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEpE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE/B,IAAI,IAAI,YAAY,OAAO,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAEO,oBAAoB,CAAC,IAAgC;QAC3D,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErE,uGAAuG;QACvG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAErD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,mBAAmB,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC;YACjB,OAAO,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,EAAE;YACjD,UAAU,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC;SAC7B,CAAC,CAAC;QAEH,+FAA+F;QAC/F,mGAAmG;QACnG,mBAAmB,CAAC,wBAAwB,CAAC;YAC3C,MAAM,EAAE,mBAAmB;YAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAyB,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YACvF,CAAC,CAAC;SACH,CAAC,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,SAAS;YACX,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;iBACf,OAAO,CAAC,MAAyB,CAAC;iBAClC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;YAExF,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;gBAC5D,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;qBAC1B,UAAU,CAAC,CAAC,SAAS,EAAE,EAAE;oBACxB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAyC,EAAE,GAAG,EAAE,CAAC,CAAC;oBAChF,OAAO,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,CAAC,CAAC;qBACD,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,WAAW;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,yFAAyF;IACzF,QAAQ;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,sBAAsB;QAClC,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAE3C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,KAIb,CAAC;YAEF,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAClE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,+FAA+F;YAC/F,8FAA8F;YAC9F,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,QAAQ,CAAC;oBACb,OAAO,EACL,oLAAoL;iBACvL,CAAC,CAAC;YACL,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,IAAkE;QACtF,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAErC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,KAAgE,CAAC;YAC/E,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YACrE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;gBACtC,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC/D,6FAA6F;oBAC7F,4EAA4E;oBAC5E,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;wBACjC,MAAM,QAAQ,CAAC;4BACb,OAAO,EAAE,gBAAgB,IAAI,kDAAkD,QAAQ,uJAAuJ;yBAC/O,CAAC,CAAC;oBACL,CAAC;oBAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC5B,MAAM,QAAQ,CAAC;4BACb,OAAO,EAAE,gBAAgB,IAAI,WAAW,MAAM,CAAC,IAAI,yFAAyF;yBAC7I,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,IAAuC;QAC9D,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAC;QACpF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAEhC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,MAAM,QAAQ,CAAC;oBACb,OAAO,EAAE,sCAAsC,OAAO,CAAC,IAAI,oDAAoD;iBAChH,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAExB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;gBAClD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5B,MAAM,QAAQ,CAAC;wBACb,OAAO,EAAE,eAAe,OAAO,CAAC,IAAI,WAAW,MAAM,CAAC,IAAI,uGAAuG;qBAClK,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,aAAa,KAA0B,CAAC;IAExC,OAAO,CAAI,MAAiB,EAAE,IAA4B;QACxD,OAAO,IAAI,CAAC,gBAAgB,CAAC;YAC3B,MAAM;YACN,SAAS,EAAE,iBAAiB,CAAC,OAAO;YACpC,MAAM,EAAE,SAAS;YACjB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAI,MAAiB,EAAE,IAA4B;QAC3D,OAAO,IAAI,CAAC,gBAAgB,CAAC;YAC3B,MAAM;YACN,SAAS,EAAE,iBAAiB,CAAC,UAAU;YACvC,MAAM,EAAE,YAAY;YACpB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAI,MAAiB,EAAE,IAA4B;QAC3D,OAAO,IAAI,CAAC,gBAAgB,CAAC;YAC3B,MAAM;YACN,SAAS,EAAE,iBAAiB,CAAC,UAAU;YACvC,MAAM,EAAE,YAAY;YACpB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAI,MAAiB,EAAE,IAA4B;QAC1D,OAAO,IAAI,CAAC,gBAAgB,CAAC;YAC3B,MAAM;YACN,SAAS,EAAE,iBAAiB,CAAC,SAAS;YACtC,MAAM,EAAE,WAAW;YACnB,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,sFAAsF;IACtF,UAAU,CAAI,KAAa,EAAE,KAAgB,EAAE,IAAoB;QACjE,MAAM,EAAE,GAAG,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,mBAAmB,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;aACf,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC;aACjC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC3D,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,oGAAoG;IAC5F,gBAAgB,CAAI,IAK3B;QACC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC3C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAChF,MAAM,EAAE,GAAG,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC;YAC1C,MAAM;YACN,SAAS;YACT,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,QAAQ,EAAE,OAAO;SACjD,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,IAAI,QAAQ,EAAE,aAAa,IAAI,IAAI,CAAC;QAClF,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YAC5C,MAAM,QAAQ,CAAC;gBACb,OAAO,EAAE,IAAI,MAAM,MAAM,GAAG,6EAA6E;aAC1G,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAI,EAAE,GAAG,EAAE,CAAC;aACzB,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9E,CAAC;CACF;AAED,MAAM,OAAgB,oBAAqB,SAAQ,wBAAwB;CAAG"}
@@ -1,10 +1,18 @@
1
- import { type IdType } from '../../common/index.js';
1
+ import { type AnyType, type IAuthTokenRecord, type IdType } from '../../common/index.js';
2
2
  import { BaseService } from './base.js';
3
3
  export declare class DefaultAuthService extends BaseService {
4
4
  constructor();
5
- getUser(): any;
5
+ /** What is stored under the key, or `null` when nothing is, also outside a browser. */
6
+ private readStored;
7
+ /**
8
+ * The stored value parsed, or `undefined` when nothing usable is stored. Only the error NAME is
9
+ * logged: the message of a JSON parse error quotes the text it could not parse, which can be a token.
10
+ */
11
+ private parseStored;
12
+ getUser(): AnyType;
6
13
  getRoles(): Set<string>;
7
- getAuth(): any;
14
+ /** The stored token, `null` for every visitor who has not signed in. */
15
+ getAuth(): IAuthTokenRecord | null;
8
16
  saveAuth(opts: {
9
17
  userId: number | string;
10
18
  username?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/base/services/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAoB,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,qBAAa,kBAAmB,SAAQ,WAAW;;IAKjD,OAAO;IAKP,QAAQ;IAMR,OAAO;IAeP,QAAQ,CAAC,IAAI,EAAE;QACb,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;QAExB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAEvC;;;WAGG;QACH,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;KAC/B;IAgBD,OAAO;CASR"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/base/services/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,MAAM,EAAoB,MAAM,UAAU,CAAC;AAE9F,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,qBAAa,kBAAmB,SAAQ,WAAW;;IAKjD,uFAAuF;IACvF,OAAO,CAAC,UAAU;IAIlB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAmBnB,OAAO,IAAI,OAAO;IAUlB,QAAQ;IAUR,wEAAwE;IACxE,OAAO,IAAI,gBAAgB,GAAG,IAAI;IAIlC,QAAQ,CAAC,IAAI,EAAE;QACb,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;QAExB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAEvC;;;WAGG;QACH,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;KAC/B;IAoBD,OAAO;CAgBR"}
@@ -1,43 +1,73 @@
1
+ import { getError } from '@venizia/ignis-inversion';
1
2
  import { LocalStorageKeys } from '../../common/index.js';
3
+ import { AuthTokenStore } from '../../helpers/index.js';
2
4
  import { BaseService } from './base.js';
3
5
  export class DefaultAuthService extends BaseService {
4
6
  constructor() {
5
7
  super({ scope: DefaultAuthService.name });
6
8
  }
7
- getUser() {
8
- const identity = localStorage.getItem(LocalStorageKeys.KEY_AUTH_IDENTITY);
9
- return JSON.parse(identity?.length ? identity : '{}');
10
- }
11
- getRoles() {
12
- const stored = localStorage.getItem(LocalStorageKeys.KEY_AUTH_PERMISSION);
13
- const roles = JSON.parse(stored?.length ? stored : '[]');
14
- return new Set(roles);
9
+ /** What is stored under the key, or `null` when nothing is, also outside a browser. */
10
+ readStored(opts) {
11
+ return typeof localStorage === 'undefined' ? null : localStorage.getItem(opts.key);
15
12
  }
16
- getAuth() {
17
- // Nothing stored is not an error: it is every visitor who has not signed in.
18
- const stored = localStorage.getItem(LocalStorageKeys.KEY_AUTH_TOKEN);
19
- if (stored === null) {
20
- return null;
13
+ /**
14
+ * The stored value parsed, or `undefined` when nothing usable is stored. Only the error NAME is
15
+ * logged: the message of a JSON parse error quotes the text it could not parse, which can be a token.
16
+ */
17
+ parseStored(opts) {
18
+ const stored = this.readStored({ key: opts.key });
19
+ if (!stored?.length) {
20
+ return undefined;
21
21
  }
22
22
  try {
23
23
  return JSON.parse(stored);
24
24
  }
25
25
  catch (error) {
26
- this.logger.error('[getAuth] Failed to parse stored auth token | error: %s', error);
27
- return null;
26
+ this.logger.warn('[%s] %s is not valid JSON, read as empty | error: %s', opts.method, opts.key, error instanceof Error ? error.name : typeof error);
27
+ return undefined;
28
28
  }
29
29
  }
30
+ getUser() {
31
+ const identity = this.parseStored({
32
+ key: LocalStorageKeys.KEY_AUTH_IDENTITY,
33
+ method: 'getUser',
34
+ });
35
+ const isRecord = typeof identity === 'object' && identity !== null && !Array.isArray(identity);
36
+ return isRecord ? identity : {};
37
+ }
38
+ getRoles() {
39
+ const stored = this.parseStored({
40
+ key: LocalStorageKeys.KEY_AUTH_PERMISSION,
41
+ method: 'getRoles',
42
+ });
43
+ const roles = Array.isArray(stored) ? stored.filter((role) => typeof role === 'string') : [];
44
+ return new Set(roles);
45
+ }
46
+ /** The stored token, `null` for every visitor who has not signed in. */
47
+ getAuth() {
48
+ return AuthTokenStore.read() ?? null;
49
+ }
30
50
  saveAuth(opts) {
51
+ // Not a silent skip: a sign-in that is not kept would look like it worked.
52
+ if (typeof localStorage === 'undefined') {
53
+ throw getError({
54
+ message: '[saveAuth] localStorage is not available',
55
+ });
56
+ }
31
57
  const { token, userId, username = '', provider = '', referenceId = '', roles } = opts;
32
- localStorage.setItem(LocalStorageKeys.KEY_AUTH_TOKEN, JSON.stringify(Object.assign({}, token, { provider })));
58
+ AuthTokenStore.write({ token, provider });
33
59
  localStorage.setItem(LocalStorageKeys.KEY_AUTH_IDENTITY, JSON.stringify({ userId, username, referenceId, provider }));
34
60
  if (roles) {
35
61
  localStorage.setItem(LocalStorageKeys.KEY_AUTH_PERMISSION, JSON.stringify(roles));
36
62
  }
37
63
  }
38
64
  cleanUp() {
65
+ if (typeof localStorage === 'undefined') {
66
+ return;
67
+ }
39
68
  Object.keys(localStorage).forEach((key) => {
40
- if (!key.startsWith('@app/auth/') && !key.startsWith('@app/oauth2/')) {
69
+ if (!key.startsWith(LocalStorageKeys.PREFIX_AUTH) &&
70
+ !key.startsWith(LocalStorageKeys.PREFIX_OAUTH2)) {
41
71
  return;
42
72
  }
43
73
  localStorage.removeItem(key);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/base/services/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IACjD;QACE,KAAK,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO;QACL,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ;QACN,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,IAAI,GAAG,CAAS,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;QACL,6EAA6E;QAC7E,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACrE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,EAAE,KAAK,CAAC,CAAC;YACpF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAcR;QACC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACtF,YAAY,CAAC,OAAO,CAClB,gBAAgB,CAAC,cAAc,EAC/B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CACvD,CAAC;QACF,YAAY,CAAC,OAAO,CAClB,gBAAgB,CAAC,iBAAiB,EAClC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAC5D,CAAC;QAEF,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACrE,OAAO;YACT,CAAC;YAED,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/base/services/auth.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,10 @@
1
- import { type AnyType, type IApplicationInfo, type IAuthRecoveryOptions, type IGetRequestPropsParams, type IGetRequestPropsResult, type INoAuthOptions, RequestCountData, type TConstValue, type TNoAuthPathRegex, type TRequestMethod, type TRequestType } from '../../common/index.js';
2
- import { NodeFetchNetworkRequest } from '../../helpers/index.js';
1
+ import { NodeFetchNetworkRequest } from '@venizia/ignis-helpers/core';
2
+ import { type IApplicationInfo, type IAuthTokenRecord, type IAuthRecoveryOptions, type IDataSourceAuth, type IGetRequestPropsParams, type IGetRequestPropsResult, type INetworkResponse, type INoAuthOptions, RequestCountData, type TConstValue, type TNoAuthPathRegex, type TRequestMethod, type TRequestType } from '../../common/index.js';
3
+ import { type IEncodedBody, ResponseReader } from '../../helpers/index.js';
3
4
  import { BaseService } from './base.js';
4
- export interface IAuthTokenRecord {
5
- type?: string;
6
- value: string;
7
- provider?: string;
8
- }
9
- /** What an `HttpDataSource` hook reads from the request it is asked about. */
10
- export interface IDataSourceRequestContext {
11
- paths: Array<string>;
12
- }
13
5
  /**
14
- * The settings an `HttpDataSource` takes, bound to one `DefaultNetworkRequestService`, so a
15
- * repository sends what the data provider sends: the same headers, the same token on the same
16
- * paths, and one shared refresh per 401 burst. The hooks run on every send, the retry included.
17
- */
18
- export interface IDataSourceAuth {
19
- authTokenResolver: (context: IDataSourceRequestContext) => IAuthTokenRecord | undefined;
20
- headersResolver: (context: IDataSourceRequestContext) => Record<string, string>;
21
- onUnauthorized: (context: IDataSourceRequestContext) => Promise<boolean>;
22
- errorRootKey: string;
23
- }
24
- /**
25
- * The options hold data: the base URL, headers, the no-auth lists and the refresh path. Behaviour
26
- * is in the protected hooks, each taking one `opts` object - `resolveAuthToken`, `isNoAuthPath`,
27
- * `refreshToken`, `onAuthFailure` and `buildRequestTracingId` - which a subclass overrides, and
28
- * `DefaultRestDataProvider.createNetworkService` returns.
6
+ * The options hold data (the base URL, headers, the no-auth lists, the refresh path); behaviour is
7
+ * in the protected hooks, each taking one `opts` object, which a subclass overrides.
29
8
  */
30
9
  export declare class DefaultNetworkRequestService extends BaseService {
31
10
  protected noAuthPaths?: string[];
@@ -34,7 +13,7 @@ export declare class DefaultNetworkRequestService extends BaseService {
34
13
  protected networkRequest: NodeFetchNetworkRequest;
35
14
  protected baseUrl: string;
36
15
  protected authRecovery?: IAuthRecoveryOptions;
37
- private refreshing;
16
+ private readonly recovery;
38
17
  constructor(opts: INoAuthOptions & {
39
18
  name: string;
40
19
  baseUrl?: string;
@@ -42,9 +21,8 @@ export declare class DefaultNetworkRequestService extends BaseService {
42
21
  authRecovery?: IAuthRecoveryOptions;
43
22
  });
44
23
  /**
45
- * Reads the stored token, and `undefined` outside a browser. The default of `resolveAuthToken`,
46
- * and what to hand an `HttpDataSource` as its `authTokenResolver`, so both transports send the
47
- * same token.
24
+ * The stored token (`AuthTokenStore.read`), `undefined` outside a browser. The default of
25
+ * `resolveAuthToken`, and what to hand an `HttpDataSource` as its `authTokenResolver`.
48
26
  */
49
27
  static readAuthTokenFromStorage(): IAuthTokenRecord | undefined;
50
28
  /**
@@ -62,10 +40,8 @@ export declare class DefaultNetworkRequestService extends BaseService {
62
40
  paths?: string[];
63
41
  }): boolean;
64
42
  /**
65
- * Refreshes the session after a 401. Resolve `true` once it is refreshed - the request is then
66
- * retried with the new token; resolve `false` when this service has no refresh (the default); throw
67
- * when the refresh failed, and `onAuthFailure` runs. A request to `authRecovery.refreshTokenPath`
68
- * never gets here.
43
+ * Refreshes the session after a 401. `true`: refreshed, the request is retried; `false`: this
44
+ * service has no refresh (the default); a throw: the refresh failed and `onAuthFailure` runs.
69
45
  */
70
46
  protected refreshToken(): Promise<boolean>;
71
47
  /** Runs once when `refreshToken` threw. The place to send the user back to sign-in. */
@@ -79,19 +55,14 @@ export declare class DefaultNetworkRequestService extends BaseService {
79
55
  input?: TNoAuthPathRegex;
80
56
  }): RegExp[];
81
57
  /**
82
- * Refreshes the session, once for every 401 in flight on either transport: the callers share one
83
- * `refreshToken` call. `true` when the token was refreshed. Also what `DefaultAuthProvider.refreshToken`
84
- * calls, so a refresh is made in one place.
58
+ * Refreshes the session, once for every 401 in flight on either transport (see `AuthRecovery`).
59
+ * Also what `DefaultAuthProvider.refreshToken` calls, so a refresh is made in one place.
85
60
  */
86
61
  refresh(): Promise<boolean>;
87
- private canRecover;
88
62
  /**
89
- * Spread into an `HttpDataSource`'s settings. Each of its requests then carries, as read at send
90
- * time, the session headers (`setHeaders`) and the timezone; with the data provider's options,
91
- * the request channel and tracing id too. A no-auth path gets no token and no refresh, as on the
92
- * data provider. Any other 401 joins this service's `refresh`: one `refreshToken` call for every
93
- * 401 in flight on either transport, `onAuthFailure` on a failed one, and no retry when the
94
- * service has no refresh. The refresh is shared, so one call's abort never cancels it.
63
+ * Spread into an `HttpDataSource`'s settings, so its requests carry the session headers and the
64
+ * timezone as read at send time (and the channel and tracing id, given the data provider's
65
+ * options), and a 401 joins this service's shared `refresh`. A no-auth path gets no token.
95
66
  */
96
67
  getDataSourceAuth(opts?: Pick<IGetRequestPropsParams, 'restDataProviderOptions' | 'applicationInfo'>): IDataSourceAuth;
97
68
  getRequestAuthorizationHeader(): {
@@ -107,69 +78,30 @@ export declare class DefaultNetworkRequestService extends BaseService {
107
78
  }): void;
108
79
  /** The timezone, then whatever `setHeaders` holds now. Both transports send these. */
109
80
  protected getSessionHeaders(): Record<string, string>;
110
- /** The request channel, `web` unless configured, and a fresh tracing id. */
81
+ /** The request channel (`RequestChannel.WEB` unless configured) and a fresh tracing id. */
111
82
  protected getTracingHeaders(opts: Pick<IGetRequestPropsParams, 'restDataProviderOptions' | 'applicationInfo'>): Record<string, string>;
112
83
  getRequestHeader(opts: {
113
84
  resource: string;
114
85
  }): Record<string, string>;
115
- protected isFileList(opts: {
116
- value: unknown;
117
- }): boolean;
118
- /** A multipart text value: JSON for objects and arrays, ISO-8601 for a `Date`, `String()` otherwise. */
119
- protected encodeFormValue(opts: {
120
- key: string;
121
- value: unknown;
122
- bodyType: string;
123
- }): string;
124
- /** Skips only `undefined` and `null`: `0`, `false` and `''` are values the caller meant to send. */
125
- protected appendFormDataValue(opts: {
126
- formData: FormData;
127
- key: string;
128
- value: unknown;
129
- }): void;
130
- /** The file name a `Content-Disposition` header names, `filename*` before `filename`. */
131
- protected parseFilenameFromContentDisposition(opts: {
132
- header: string;
133
- }): string | undefined;
86
+ /** The body as it is sent and the content type to send it under. Override to encode another way. */
87
+ protected encodeBody(opts: {
88
+ bodyType?: string;
89
+ body: unknown;
90
+ }): IEncodedBody;
134
91
  getRequestProps(params: IGetRequestPropsParams): IGetRequestPropsResult;
135
- /** The total from `Content-Range`, or the page's own row count when the header is absent or malformed. */
136
- private resolveTotal;
137
- /**
138
- * A failed response as an `ApplicationError`, mapped like IGNIS `HttpDataSource`: the HTTP status,
139
- * the server's code and args, its `extra` with the `requestId` added, and `details.cause`.
140
- * `message` is the server's text, not a log line, because react-admin shows it to the user.
141
- */
142
- private toResponseError;
143
- convertResponse<TData = AnyType>(opts: {
144
- response: {
145
- data: TData | {
146
- data: TData;
147
- count?: number;
148
- };
149
- headers: Record<string, AnyType>;
150
- };
151
- type: string;
152
- requestCountData?: TConstValue<typeof RequestCountData>;
153
- }): {
92
+ /** Reads a response by the request type. See `ResponseReader.convert`. */
93
+ convertResponse<TData = unknown>(opts: Parameters<typeof ResponseReader.convert<TData>>[0]): {
154
94
  data: TData;
155
95
  count?: number;
156
96
  total?: number;
157
97
  };
158
- private parseResponse;
159
- doRequest<ReturnType = AnyType>(opts: IGetRequestPropsResult & {
98
+ doRequest<TResult = unknown>(opts: IGetRequestPropsResult & {
160
99
  baseUrl?: string;
161
100
  query?: any;
162
101
  type: TRequestType;
163
102
  method: TRequestMethod;
164
103
  paths: string[];
165
104
  requestCountData?: TConstValue<typeof RequestCountData>;
166
- }): Promise<{
167
- data: ReturnType;
168
- count?: number;
169
- total?: number;
170
- filename?: string;
171
- contentDisposition?: string;
172
- extra?: Record<string, unknown>;
173
- }>;
105
+ }): Promise<INetworkResponse<TResult>>;
174
106
  }
175
107
  //# sourceMappingURL=network-request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"network-request.d.ts","sourceRoot":"","sources":["../../../src/base/services/network-request.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EAInB,gBAAgB,EAGhB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAkB,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,8EAA8E;AAC9E,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,gBAAgB,GAAG,SAAS,CAAC;IACxF,eAAe,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChF,cAAc,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,4BAA6B,SAAQ,WAAW;IAC3D,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IACtC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,SAAS,CAAC,cAAc,EAAE,uBAAuB,CAAC;IAClD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAE9C,OAAO,CAAC,UAAU,CAAiC;gBAGjD,IAAI,EAAE,cAAc,GAAG;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,WAAW,CAAC;QACtB,YAAY,CAAC,EAAE,oBAAoB,CAAC;KACrC;IAgBH;;;;OAIG;IACH,MAAM,CAAC,wBAAwB,IAAI,gBAAgB,GAAG,SAAS;IAmB/D;;;OAGG;IACH,SAAS,CAAC,gBAAgB,IAAI,gBAAgB,GAAG,SAAS;IAI1D;;;;OAIG;IACH,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO;IA2B9E;;;;;OAKG;IACH,SAAS,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAI1C,uFAAuF;IACvF,SAAS,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,wGAAwG;IACxG,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE;QAAE,eAAe,EAAE,gBAAgB,CAAA;KAAE,GAAG,MAAM;IAMpF,sGAAsG;IACtG,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,gBAAgB,CAAA;KAAE,GAAG,MAAM,EAAE;IA8B9E;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAmB3B,OAAO,CAAC,UAAU;IAelB;;;;;;;OAOG;IACH,iBAAiB,CACf,IAAI,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,yBAAyB,GAAG,iBAAiB,CAAC,GACjF,eAAe;IAmBlB,6BAA6B;;;;IAgB7B,qGAAqG;IACrG,UAAU,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE;IAIzC,aAAa,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;IAWtC,sFAAsF;IACtF,SAAS,CAAC,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAYrD,4EAA4E;IAC5E,SAAS,CAAC,iBAAiB,CACzB,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,yBAAyB,GAAG,iBAAiB,CAAC,GAChF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAYzB,gBAAgB,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAoBpE,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO;IAIvD,wGAAwG;IACxG,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAqB1F,oGAAoG;IACpG,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAkB9F,yFAAyF;IACzF,SAAS,CAAC,mCAAmC,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,GAAG,SAAS;IA6B3F,eAAe,CAAC,MAAM,EAAE,sBAAsB;IAwF9C,0GAA0G;IAC1G,OAAO,CAAC,YAAY;IAOpB;;;;OAIG;YACW,eAAe;IAyB7B,eAAe,CAAC,KAAK,GAAG,OAAO,EAAE,IAAI,EAAE;QACrC,QAAQ,EAAE;YACR,IAAI,EAAE,KAAK,GAAG;gBAAE,IAAI,EAAE,KAAK,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAC9C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAClC,CAAC;QACF,IAAI,EAAE,MAAM,CAAC;QACb,gBAAgB,CAAC,EAAE,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAC;KACzD,GAAG;QACF,IAAI,EAAE,KAAK,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;YAwDa,aAAa;IAuDrB,SAAS,CAAC,UAAU,GAAG,OAAO,EAClC,IAAI,EAAE,sBAAsB,GAAG;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,GAAG,CAAC;QACZ,IAAI,EAAE,YAAY,CAAC;QACnB,MAAM,EAAE,cAAc,CAAC;QACvB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,gBAAgB,CAAC,EAAE,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAC;KACzD,GACA,OAAO,CAAC;QACT,IAAI,EAAE,UAAU,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC;CA0DH"}
1
+ {"version":3,"file":"network-request.d.ts","sourceRoot":"","sources":["../../../src/base/services/network-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAItE,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEnB,gBAAgB,EAEhB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAGL,KAAK,YAAY,EAGjB,cAAc,EACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC;;;GAGG;AACH,qBAAa,4BAA6B,SAAQ,WAAW;IAC3D,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IACtC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,SAAS,CAAC,cAAc,EAAE,uBAAuB,CAAC;IAClD,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAE9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;gBAGtC,IAAI,EAAE,cAAc,GAAG;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,WAAW,CAAC;QACtB,YAAY,CAAC,EAAE,oBAAoB,CAAC;KACrC;IAwBH;;;OAGG;IACH,MAAM,CAAC,wBAAwB,IAAI,gBAAgB,GAAG,SAAS;IAM/D;;;OAGG;IACH,SAAS,CAAC,gBAAgB,IAAI,gBAAgB,GAAG,SAAS;IAI1D;;;;OAIG;IACH,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO;IAyB9E;;;OAGG;IACH,SAAS,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAI1C,uFAAuF;IACvF,SAAS,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,wGAAwG;IACxG,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE;QAAE,eAAe,EAAE,gBAAgB,CAAA;KAAE,GAAG,MAAM;IAMpF,sGAAsG;IACtG,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,gBAAgB,CAAA;KAAE,GAAG,MAAM,EAAE;IAkC9E;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAM3B;;;;OAIG;IACH,iBAAiB,CACf,IAAI,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,yBAAyB,GAAG,iBAAiB,CAAC,GACjF,eAAe;IAmBlB,6BAA6B;;;;IAgB7B,qGAAqG;IACrG,UAAU,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE;IAIzC,aAAa,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;IAWtC,sFAAsF;IACtF,SAAS,CAAC,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAYrD,2FAA2F;IAC3F,SAAS,CAAC,iBAAiB,CACzB,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,yBAAyB,GAAG,iBAAiB,CAAC,GAChF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAYzB,gBAAgB,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAmBpE,oGAAoG;IACpG,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,YAAY;IAI9E,eAAe,CAAC,MAAM,EAAE,sBAAsB;IAkC9C,0EAA0E;IAC1E,eAAe,CAAC,KAAK,GAAG,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;IAIpF,SAAS,CAAC,OAAO,GAAG,OAAO,EAC/B,IAAI,EAAE,sBAAsB,GAAG;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,GAAG,CAAC;QACZ,IAAI,EAAE,YAAY,CAAC;QACnB,MAAM,EAAE,cAAc,CAAC;QACvB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,gBAAgB,CAAC,EAAE,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAC;KACzD,GACA,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;CA8DtC"}