@ecodev/natural 62.1.2 → 63.0.0

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 (183) hide show
  1. package/fesm2022/ecodev-natural-vanilla.mjs +1193 -0
  2. package/fesm2022/ecodev-natural-vanilla.mjs.map +1 -0
  3. package/fesm2022/ecodev-natural.mjs +436 -425
  4. package/fesm2022/ecodev-natural.mjs.map +1 -1
  5. package/lib/classes/network-activity.service.d.ts +54 -0
  6. package/lib/classes/validators.d.ts +1 -1
  7. package/lib/modules/columns-picker/columns-picker.component.d.ts +2 -2
  8. package/lib/modules/common/services/seo.provider.d.ts +2 -2
  9. package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +1 -1
  10. package/lib/modules/file/abstract-file.d.ts +6 -3
  11. package/lib/modules/file/component/file.component.d.ts +2 -2
  12. package/lib/modules/file/file-drop.directive.d.ts +2 -3
  13. package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +2 -3
  14. package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +3 -3
  15. package/lib/modules/icon/icon.module.d.ts +2 -2
  16. package/lib/modules/panels/panels.service.d.ts +1 -2
  17. package/lib/modules/relations/relations.component.d.ts +3 -3
  18. package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +2 -3
  19. package/lib/modules/search/group/group.component.d.ts +2 -3
  20. package/lib/modules/search/input/input.component.d.ts +5 -5
  21. package/lib/modules/search/search/search.component.d.ts +2 -2
  22. package/lib/modules/select/abstract-select.component.d.ts +3 -3
  23. package/lib/modules/select/select/select.component.d.ts +1 -1
  24. package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +1 -1
  25. package/lib/modules/table-button/table-button.component.d.ts +4 -2
  26. package/package.json +16 -14
  27. package/public-api.d.ts +1 -0
  28. package/src/lib/_natural.theme.scss +1 -2
  29. package/vanilla/index.d.ts +5 -0
  30. package/vanilla/package.json +3 -0
  31. package/vanilla/public-api.d.ts +11 -0
  32. package/vanilla/src/lib/classes/crypto.d.ts +8 -0
  33. package/vanilla/src/lib/classes/data-source.d.ts +32 -0
  34. package/vanilla/src/lib/classes/query-variable-manager-utils.d.ts +2 -0
  35. package/vanilla/src/lib/classes/query-variable-manager.d.ts +91 -0
  36. package/vanilla/src/lib/classes/signing.d.ts +7 -0
  37. package/vanilla/src/lib/classes/utility.d.ts +77 -0
  38. package/vanilla/src/lib/modules/search/classes/graphql-doctrine.types.d.ts +83 -0
  39. package/vanilla/src/lib/modules/search/classes/utils.d.ts +17 -0
  40. package/vanilla/src/lib/modules/search/types/dropdown-component.d.ts +20 -0
  41. package/vanilla/src/lib/modules/search/types/facet.d.ts +75 -0
  42. package/vanilla/src/lib/modules/search/types/values.d.ts +32 -0
  43. package/vanilla/src/lib/services/abstract-model.service.d.ts +244 -0
  44. package/vanilla/src/lib/services/debounce.service.d.ts +52 -0
  45. package/vanilla/src/lib/types/types.d.ts +100 -0
  46. package/esm2022/ecodev-natural.mjs +0 -5
  47. package/esm2022/lib/classes/abstract-detail.mjs +0 -229
  48. package/esm2022/lib/classes/abstract-editable-list.mjs +0 -99
  49. package/esm2022/lib/classes/abstract-list.mjs +0 -461
  50. package/esm2022/lib/classes/abstract-navigable-list.mjs +0 -133
  51. package/esm2022/lib/classes/apollo-utils.mjs +0 -59
  52. package/esm2022/lib/classes/crypto.mjs +0 -23
  53. package/esm2022/lib/classes/cumulative-changes.mjs +0 -50
  54. package/esm2022/lib/classes/data-source.mjs +0 -71
  55. package/esm2022/lib/classes/providers.mjs +0 -13
  56. package/esm2022/lib/classes/query-variable-manager-utils.mjs +0 -14
  57. package/esm2022/lib/classes/query-variable-manager.mjs +0 -172
  58. package/esm2022/lib/classes/rxjs.mjs +0 -54
  59. package/esm2022/lib/classes/signing.mjs +0 -38
  60. package/esm2022/lib/classes/tld.mjs +0 -1476
  61. package/esm2022/lib/classes/utility.mjs +0 -234
  62. package/esm2022/lib/classes/validators.mjs +0 -179
  63. package/esm2022/lib/directives/http-prefix.directive.mjs +0 -47
  64. package/esm2022/lib/modules/alert/alert.service.mjs +0 -53
  65. package/esm2022/lib/modules/alert/confirm.component.mjs +0 -16
  66. package/esm2022/lib/modules/alert/public-api.mjs +0 -6
  67. package/esm2022/lib/modules/avatar/component/avatar.component.mjs +0 -203
  68. package/esm2022/lib/modules/avatar/public-api.mjs +0 -6
  69. package/esm2022/lib/modules/avatar/service/avatar.service.mjs +0 -63
  70. package/esm2022/lib/modules/avatar/sources/gravatar.mjs +0 -29
  71. package/esm2022/lib/modules/avatar/sources/image.mjs +0 -13
  72. package/esm2022/lib/modules/avatar/sources/initials.mjs +0 -39
  73. package/esm2022/lib/modules/avatar/sources/source.mjs +0 -16
  74. package/esm2022/lib/modules/columns-picker/columns-picker.component.mjs +0 -145
  75. package/esm2022/lib/modules/columns-picker/public-api.mjs +0 -5
  76. package/esm2022/lib/modules/columns-picker/types.mjs +0 -2
  77. package/esm2022/lib/modules/common/directives/background-density.directive.mjs +0 -63
  78. package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +0 -93
  79. package/esm2022/lib/modules/common/directives/src-density.directive.mjs +0 -72
  80. package/esm2022/lib/modules/common/pipes/capitalize.pipe.mjs +0 -24
  81. package/esm2022/lib/modules/common/pipes/ellipsis.pipe.mjs +0 -17
  82. package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +0 -24
  83. package/esm2022/lib/modules/common/pipes/time-ago.pipe.mjs +0 -140
  84. package/esm2022/lib/modules/common/public-api.mjs +0 -14
  85. package/esm2022/lib/modules/common/services/memory-storage.mjs +0 -110
  86. package/esm2022/lib/modules/common/services/seo.provider.mjs +0 -23
  87. package/esm2022/lib/modules/common/services/seo.service.mjs +0 -235
  88. package/esm2022/lib/modules/detail-header/detail-header.component.mjs +0 -84
  89. package/esm2022/lib/modules/detail-header/public-api.mjs +0 -5
  90. package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +0 -72
  91. package/esm2022/lib/modules/dialog-trigger/public-api.mjs +0 -5
  92. package/esm2022/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +0 -100
  93. package/esm2022/lib/modules/dropdown-components/public-api.mjs +0 -14
  94. package/esm2022/lib/modules/dropdown-components/type-boolean/type-boolean.component.mjs +0 -39
  95. package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +0 -173
  96. package/esm2022/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +0 -134
  97. package/esm2022/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +0 -80
  98. package/esm2022/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +0 -48
  99. package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +0 -110
  100. package/esm2022/lib/modules/dropdown-components/type-options/type-options.component.mjs +0 -64
  101. package/esm2022/lib/modules/dropdown-components/type-select/type-select.component.mjs +0 -175
  102. package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +0 -62
  103. package/esm2022/lib/modules/dropdown-components/types.mjs +0 -41
  104. package/esm2022/lib/modules/dropdown-components/utils.mjs +0 -35
  105. package/esm2022/lib/modules/file/abstract-file.mjs +0 -230
  106. package/esm2022/lib/modules/file/component/file.component.mjs +0 -172
  107. package/esm2022/lib/modules/file/file-drop.directive.mjs +0 -111
  108. package/esm2022/lib/modules/file/file-select.directive.mjs +0 -26
  109. package/esm2022/lib/modules/file/file.service.mjs +0 -43
  110. package/esm2022/lib/modules/file/public-api.mjs +0 -9
  111. package/esm2022/lib/modules/file/types.mjs +0 -2
  112. package/esm2022/lib/modules/file/utils.mjs +0 -129
  113. package/esm2022/lib/modules/fixed-button/fixed-button.component.mjs +0 -30
  114. package/esm2022/lib/modules/fixed-button/public-api.mjs +0 -5
  115. package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +0 -56
  116. package/esm2022/lib/modules/fixed-button-detail/public-api.mjs +0 -5
  117. package/esm2022/lib/modules/hierarchic-selector/classes/flat-node.mjs +0 -18
  118. package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-configuration.mjs +0 -2
  119. package/esm2022/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.mjs +0 -2
  120. package/esm2022/lib/modules/hierarchic-selector/classes/model-node.mjs +0 -14
  121. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +0 -398
  122. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +0 -243
  123. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +0 -38
  124. package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +0 -22
  125. package/esm2022/lib/modules/hierarchic-selector/public-api.mjs +0 -10
  126. package/esm2022/lib/modules/icon/icon.directive.mjs +0 -96
  127. package/esm2022/lib/modules/icon/icon.module.mjs +0 -33
  128. package/esm2022/lib/modules/icon/public-api.mjs +0 -6
  129. package/esm2022/lib/modules/logger/error-handler.mjs +0 -87
  130. package/esm2022/lib/modules/logger/error.module.mjs +0 -22
  131. package/esm2022/lib/modules/logger/public-api.mjs +0 -6
  132. package/esm2022/lib/modules/matomo/matomo.service.mjs +0 -96
  133. package/esm2022/lib/modules/matomo/public-api.mjs +0 -5
  134. package/esm2022/lib/modules/panels/abstract-panel.mjs +0 -76
  135. package/esm2022/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.mjs +0 -12
  136. package/esm2022/lib/modules/panels/panels.component.mjs +0 -27
  137. package/esm2022/lib/modules/panels/panels.module.mjs +0 -10
  138. package/esm2022/lib/modules/panels/panels.service.mjs +0 -329
  139. package/esm2022/lib/modules/panels/panels.urlmatcher.mjs +0 -75
  140. package/esm2022/lib/modules/panels/public-api.mjs +0 -11
  141. package/esm2022/lib/modules/panels/types.mjs +0 -3
  142. package/esm2022/lib/modules/relations/public-api.mjs +0 -5
  143. package/esm2022/lib/modules/relations/relations.component.mjs +0 -254
  144. package/esm2022/lib/modules/search/classes/graphql-doctrine.mjs +0 -111
  145. package/esm2022/lib/modules/search/classes/graphql-doctrine.types.mjs +0 -14
  146. package/esm2022/lib/modules/search/classes/transformers.mjs +0 -142
  147. package/esm2022/lib/modules/search/classes/url.mjs +0 -53
  148. package/esm2022/lib/modules/search/classes/utils.mjs +0 -25
  149. package/esm2022/lib/modules/search/dropdown-container/dropdown-container-animations.mjs +0 -44
  150. package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +0 -87
  151. package/esm2022/lib/modules/search/dropdown-container/dropdown-ref.mjs +0 -24
  152. package/esm2022/lib/modules/search/dropdown-container/dropdown.service.mjs +0 -90
  153. package/esm2022/lib/modules/search/facet-selector/facet-selector.component.mjs +0 -45
  154. package/esm2022/lib/modules/search/group/group.component.mjs +0 -53
  155. package/esm2022/lib/modules/search/input/input.component.mjs +0 -365
  156. package/esm2022/lib/modules/search/public-api.mjs +0 -7
  157. package/esm2022/lib/modules/search/search/search.component.mjs +0 -102
  158. package/esm2022/lib/modules/search/types/dropdown-component.mjs +0 -2
  159. package/esm2022/lib/modules/search/types/facet.mjs +0 -2
  160. package/esm2022/lib/modules/search/types/values.mjs +0 -2
  161. package/esm2022/lib/modules/select/abstract-select.component.mjs +0 -232
  162. package/esm2022/lib/modules/select/public-api.mjs +0 -7
  163. package/esm2022/lib/modules/select/select/select.component.mjs +0 -310
  164. package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +0 -57
  165. package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +0 -155
  166. package/esm2022/lib/modules/sidenav/public-api.mjs +0 -9
  167. package/esm2022/lib/modules/sidenav/sidenav/sidenav.component.mjs +0 -15
  168. package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +0 -90
  169. package/esm2022/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +0 -11
  170. package/esm2022/lib/modules/sidenav/sidenav-stack.service.mjs +0 -50
  171. package/esm2022/lib/modules/sidenav/sidenav.service.mjs +0 -196
  172. package/esm2022/lib/modules/stamp/public-api.mjs +0 -5
  173. package/esm2022/lib/modules/stamp/stamp.component.mjs +0 -23
  174. package/esm2022/lib/modules/table-button/public-api.mjs +0 -5
  175. package/esm2022/lib/modules/table-button/table-button.component.mjs +0 -78
  176. package/esm2022/lib/services/abstract-model.service.mjs +0 -526
  177. package/esm2022/lib/services/debounce.service.mjs +0 -149
  178. package/esm2022/lib/services/enum.service.mjs +0 -64
  179. package/esm2022/lib/services/link-mutation.service.mjs +0 -154
  180. package/esm2022/lib/services/persistence.service.mjs +0 -115
  181. package/esm2022/lib/services/swiss-parsing-date-adapter.service.mjs +0 -63
  182. package/esm2022/lib/types/types.mjs +0 -2
  183. package/esm2022/public-api.mjs +0 -46
@@ -1,54 +0,0 @@
1
- import { map, take, takeUntil, tap, timer } from 'rxjs';
2
- import { DestroyRef } from '@angular/core';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- /**
5
- * Behave like setTimeout(), but with a mandatory cancel mechanism.
6
- *
7
- * This is typically useful to replace setTimeout() in components where the callback
8
- * would crash if executed after the component destruction. That can easily happen
9
- * when the user navigates quickly between pages.
10
- *
11
- * Typical usage in a component would be:
12
- *
13
- * ```ts
14
- * cancellableTimeout(inject(DestroyRef)).subscribe(myCallback);
15
- * ```
16
- *
17
- * or
18
- *
19
- * ```ts
20
- * cancellableTimeout(this.ngUnsubscribe).subscribe(myCallback);
21
- * ```
22
- *
23
- * Instead of the more error-prone:
24
- *
25
- * ```ts
26
- * public foo(): void {
27
- * this.timeout = setTimeout(myCallBack);
28
- * }
29
- *
30
- * public ngOnDestroy(): void {
31
- * if (this.timeout) {
32
- * clearTimeout(this.timeout);
33
- * this.timeout = null;
34
- * }
35
- * }
36
- * ```
37
- */
38
- export function cancellableTimeout(canceller, milliSeconds = 0) {
39
- return timer(milliSeconds).pipe(take(1), canceller instanceof DestroyRef ? takeUntilDestroyed(canceller) : takeUntil(canceller), map(() => undefined));
40
- }
41
- /**
42
- * For debugging purpose only, will dump in console everything that happen to
43
- * the observable
44
- */
45
- export function debug(debugName) {
46
- return tap({
47
- subscribe: () => console.log('SUBSCRIBE', debugName),
48
- unsubscribe: () => console.log('UNSUBSCRIBE', debugName),
49
- next: value => console.log('NEXT', debugName, value),
50
- error: error => console.log('ERROR', debugName, error),
51
- complete: () => console.log('COMPLETE', debugName),
52
- });
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL3J4anMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEdBQUcsRUFBd0MsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUEyQyxFQUFFLFlBQVksR0FBRyxDQUFDO0lBQzVGLE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDM0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsWUFBWSxVQUFVLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQ3RGLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FDdkIsQ0FBQztBQUNOLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFJLFNBQWlCO0lBQ3RDLE9BQU8sR0FBRyxDQUFJO1FBQ1YsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztRQUNwRCxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDO1FBQ3hELElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDcEQsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQztRQUN0RCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO0tBQ3JELENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge21hcCwgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlLCB0YWtlLCB0YWtlVW50aWwsIHRhcCwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtEZXN0cm95UmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbi8qKlxuICogQmVoYXZlIGxpa2Ugc2V0VGltZW91dCgpLCBidXQgd2l0aCBhIG1hbmRhdG9yeSBjYW5jZWwgbWVjaGFuaXNtLlxuICpcbiAqIFRoaXMgaXMgdHlwaWNhbGx5IHVzZWZ1bCB0byByZXBsYWNlIHNldFRpbWVvdXQoKSBpbiBjb21wb25lbnRzIHdoZXJlIHRoZSBjYWxsYmFja1xuICogd291bGQgY3Jhc2ggaWYgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGNvbXBvbmVudCBkZXN0cnVjdGlvbi4gVGhhdCBjYW4gZWFzaWx5IGhhcHBlblxuICogd2hlbiB0aGUgdXNlciBuYXZpZ2F0ZXMgcXVpY2tseSBiZXR3ZWVuIHBhZ2VzLlxuICpcbiAqIFR5cGljYWwgdXNhZ2UgaW4gYSBjb21wb25lbnQgd291bGQgYmU6XG4gKlxuICogYGBgdHNcbiAqIGNhbmNlbGxhYmxlVGltZW91dChpbmplY3QoRGVzdHJveVJlZikpLnN1YnNjcmliZShteUNhbGxiYWNrKTtcbiAqIGBgYFxuICpcbiAqIG9yXG4gKlxuICogYGBgdHNcbiAqIGNhbmNlbGxhYmxlVGltZW91dCh0aGlzLm5nVW5zdWJzY3JpYmUpLnN1YnNjcmliZShteUNhbGxiYWNrKTtcbiAqIGBgYFxuICpcbiAqIEluc3RlYWQgb2YgdGhlIG1vcmUgZXJyb3ItcHJvbmU6XG4gKlxuICogYGBgdHNcbiAqIHB1YmxpYyBmb28oKTogdm9pZCB7XG4gKiAgICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dChteUNhbGxCYWNrKTtcbiAqIH1cbiAqXG4gKiBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gKiAgICAgaWYgKHRoaXMudGltZW91dCkge1xuICogICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcbiAqICAgICAgICAgdGhpcy50aW1lb3V0ID0gbnVsbDtcbiAqICAgICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYW5jZWxsYWJsZVRpbWVvdXQoY2FuY2VsbGVyOiBPYnNlcnZhYmxlPHVua25vd24+IHwgRGVzdHJveVJlZiwgbWlsbGlTZWNvbmRzID0gMCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aW1lcihtaWxsaVNlY29uZHMpLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIGNhbmNlbGxlciBpbnN0YW5jZW9mIERlc3Ryb3lSZWYgPyB0YWtlVW50aWxEZXN0cm95ZWQoY2FuY2VsbGVyKSA6IHRha2VVbnRpbChjYW5jZWxsZXIpLFxuICAgICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKSxcbiAgICApO1xufVxuXG4vKipcbiAqIEZvciBkZWJ1Z2dpbmcgcHVycG9zZSBvbmx5LCB3aWxsIGR1bXAgaW4gY29uc29sZSBldmVyeXRoaW5nIHRoYXQgaGFwcGVuIHRvXG4gKiB0aGUgb2JzZXJ2YWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVidWc8VD4oZGVidWdOYW1lOiBzdHJpbmcpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICAgIHJldHVybiB0YXA8VD4oe1xuICAgICAgICBzdWJzY3JpYmU6ICgpID0+IGNvbnNvbGUubG9nKCdTVUJTQ1JJQkUnLCBkZWJ1Z05hbWUpLFxuICAgICAgICB1bnN1YnNjcmliZTogKCkgPT4gY29uc29sZS5sb2coJ1VOU1VCU0NSSUJFJywgZGVidWdOYW1lKSxcbiAgICAgICAgbmV4dDogdmFsdWUgPT4gY29uc29sZS5sb2coJ05FWFQnLCBkZWJ1Z05hbWUsIHZhbHVlKSxcbiAgICAgICAgZXJyb3I6IGVycm9yID0+IGNvbnNvbGUubG9nKCdFUlJPUicsIGRlYnVnTmFtZSwgZXJyb3IpLFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gY29uc29sZS5sb2coJ0NPTVBMRVRFJywgZGVidWdOYW1lKSxcbiAgICB9KTtcbn1cbiJdfQ==
@@ -1,38 +0,0 @@
1
- import { hmacSha256 } from './crypto';
2
- import { from, switchMap } from 'rxjs';
3
- function getOperations(req) {
4
- if (req.body instanceof FormData) {
5
- const operations = req.body.get('operations');
6
- if (typeof operations !== 'string') {
7
- throw new Error('Cannot sign a GraphQL query that is using FormData but that is missing the key `operations`');
8
- }
9
- return operations;
10
- }
11
- else {
12
- return JSON.stringify(req.body);
13
- }
14
- }
15
- /**
16
- * Sign all HTTP POST requests that are GraphQL queries against `/graphql` endpoint with a custom signature.
17
- *
18
- * The server will validate the signature before executing the GraphQL query.
19
- */
20
- export function graphqlQuerySigner(key) {
21
- return (req, next) => {
22
- const mustSign = req.method === 'POST' && /\/graphql(\?|$)/.exec(req.url);
23
- if (!mustSign) {
24
- return next(req);
25
- }
26
- const operations = getOperations(req);
27
- const timestamp = Math.round(Date.now() / 1000);
28
- const payload = timestamp + operations;
29
- return from(hmacSha256(key, payload)).pipe(switchMap(hash => {
30
- const header = `v1.${timestamp}.${hash}`;
31
- const signedRequest = req.clone({
32
- headers: req.headers.set('X-Signature', header),
33
- });
34
- return next(signedRequest);
35
- }));
36
- };
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL3NpZ25pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVyQyxTQUFTLGFBQWEsQ0FBQyxHQUF5QjtJQUM1QyxJQUFJLEdBQUcsQ0FBQyxJQUFJLFlBQVksUUFBUSxFQUFFLENBQUM7UUFDL0IsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksS0FBSyxDQUNYLDZGQUE2RixDQUNoRyxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7U0FBTSxDQUFDO1FBQ0osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsR0FBVztJQUMxQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ2pCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxTQUFTLEdBQUcsVUFBVSxDQUFDO1FBRXZDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3RDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNiLE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3pDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQzVCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDO2FBQ2xELENBQUMsQ0FBQztZQUVILE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwSW50ZXJjZXB0b3JGbiwgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7aG1hY1NoYTI1Nn0gZnJvbSAnLi9jcnlwdG8nO1xuaW1wb3J0IHtmcm9tLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuXG5mdW5jdGlvbiBnZXRPcGVyYXRpb25zKHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4pOiBzdHJpbmcge1xuICAgIGlmIChyZXEuYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgICAgIGNvbnN0IG9wZXJhdGlvbnMgPSByZXEuYm9keS5nZXQoJ29wZXJhdGlvbnMnKTtcbiAgICAgICAgaWYgKHR5cGVvZiBvcGVyYXRpb25zICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICdDYW5ub3Qgc2lnbiBhIEdyYXBoUUwgcXVlcnkgdGhhdCBpcyB1c2luZyBGb3JtRGF0YSBidXQgdGhhdCBpcyBtaXNzaW5nIHRoZSBrZXkgYG9wZXJhdGlvbnNgJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9wZXJhdGlvbnM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHJlcS5ib2R5KTtcbiAgICB9XG59XG5cbi8qKlxuICogU2lnbiBhbGwgSFRUUCBQT1NUIHJlcXVlc3RzIHRoYXQgYXJlIEdyYXBoUUwgcXVlcmllcyBhZ2FpbnN0IGAvZ3JhcGhxbGAgZW5kcG9pbnQgd2l0aCBhIGN1c3RvbSBzaWduYXR1cmUuXG4gKlxuICogVGhlIHNlcnZlciB3aWxsIHZhbGlkYXRlIHRoZSBzaWduYXR1cmUgYmVmb3JlIGV4ZWN1dGluZyB0aGUgR3JhcGhRTCBxdWVyeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyYXBocWxRdWVyeVNpZ25lcihrZXk6IHN0cmluZyk6IEh0dHBJbnRlcmNlcHRvckZuIHtcbiAgICByZXR1cm4gKHJlcSwgbmV4dCkgPT4ge1xuICAgICAgICBjb25zdCBtdXN0U2lnbiA9IHJlcS5tZXRob2QgPT09ICdQT1NUJyAmJiAvXFwvZ3JhcGhxbChcXD98JCkvLmV4ZWMocmVxLnVybCk7XG4gICAgICAgIGlmICghbXVzdFNpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0KHJlcSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvcGVyYXRpb25zID0gZ2V0T3BlcmF0aW9ucyhyZXEpO1xuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSBNYXRoLnJvdW5kKERhdGUubm93KCkgLyAxMDAwKTtcbiAgICAgICAgY29uc3QgcGF5bG9hZCA9IHRpbWVzdGFtcCArIG9wZXJhdGlvbnM7XG5cbiAgICAgICAgcmV0dXJuIGZyb20oaG1hY1NoYTI1NihrZXksIHBheWxvYWQpKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKGhhc2ggPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlciA9IGB2MS4ke3RpbWVzdGFtcH0uJHtoYXNofWA7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2lnbmVkUmVxdWVzdCA9IHJlcS5jbG9uZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldCgnWC1TaWduYXR1cmUnLCBoZWFkZXIpLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5leHQoc2lnbmVkUmVxdWVzdCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9O1xufVxuIl19