@mnaoumov/typescript-lib 0.0.0 → 1.0.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 (182) hide show
  1. package/@types/debug/package.json +4 -0
  2. package/LICENSE +21 -0
  3. package/README.md +15 -1
  4. package/dist/lib/cjs/@types/debug.d.cts +21 -0
  5. package/dist/lib/cjs/abort-controller.cjs +144 -0
  6. package/dist/lib/cjs/abort-controller.d.cts +136 -0
  7. package/dist/lib/cjs/aggregate-error.cjs +40 -0
  8. package/dist/lib/cjs/aggregate-error.d.cts +24 -0
  9. package/dist/lib/cjs/array-buffer.cjs +38 -0
  10. package/dist/lib/cjs/array-buffer.d.cts +16 -0
  11. package/dist/lib/cjs/array.cjs +76 -0
  12. package/dist/lib/cjs/array.d.cts +46 -0
  13. package/dist/lib/cjs/async-events.cjs +408 -0
  14. package/dist/lib/cjs/async-events.d.cts +456 -0
  15. package/dist/lib/cjs/async-operation-hook.cjs +55 -0
  16. package/dist/lib/cjs/async-operation-hook.d.cts +59 -0
  17. package/dist/lib/cjs/async.cjs +463 -0
  18. package/dist/lib/cjs/async.d.cts +415 -0
  19. package/dist/lib/cjs/beeper.cjs +68 -0
  20. package/dist/lib/cjs/beeper.d.cts +21 -0
  21. package/dist/lib/cjs/blob.cjs +102 -0
  22. package/dist/lib/cjs/blob.d.cts +60 -0
  23. package/dist/lib/cjs/bytes.cjs +56 -0
  24. package/dist/lib/cjs/bytes.d.cts +17 -0
  25. package/dist/lib/cjs/debug-controller.cjs +22 -0
  26. package/dist/lib/cjs/debug-controller.d.cts +87 -0
  27. package/dist/lib/cjs/debug.cjs +204 -0
  28. package/dist/lib/cjs/debug.d.cts +66 -0
  29. package/dist/lib/cjs/desktop-zip-extractor.cjs +157 -0
  30. package/dist/lib/cjs/desktop-zip-extractor.d.cts +96 -0
  31. package/dist/lib/cjs/disposable.cjs +364 -0
  32. package/dist/lib/cjs/disposable.d.cts +387 -0
  33. package/dist/lib/cjs/enum.cjs +42 -0
  34. package/dist/lib/cjs/enum.d.cts +24 -0
  35. package/dist/lib/cjs/error.cjs +239 -0
  36. package/dist/lib/cjs/error.d.cts +182 -0
  37. package/dist/lib/cjs/function.cjs +83 -0
  38. package/dist/lib/cjs/function.d.cts +128 -0
  39. package/dist/lib/cjs/html-element.cjs +283 -0
  40. package/dist/lib/cjs/html-element.d.cts +200 -0
  41. package/dist/lib/cjs/index.cjs +137 -0
  42. package/dist/lib/cjs/index.d.cts +33 -0
  43. package/dist/lib/cjs/jpeg-metadata.cjs +170 -0
  44. package/dist/lib/cjs/jpeg-metadata.d.cts +42 -0
  45. package/dist/lib/cjs/library-references.d.cts +2 -0
  46. package/dist/lib/cjs/library.cjs +100 -0
  47. package/dist/lib/cjs/library.d.cts +96 -0
  48. package/dist/lib/cjs/object-utils.cjs +559 -0
  49. package/dist/lib/cjs/object-utils.d.cts +298 -0
  50. package/dist/lib/cjs/path.cjs +171 -0
  51. package/dist/lib/cjs/path.d.cts +155 -0
  52. package/dist/lib/cjs/reg-exp.cjs +196 -0
  53. package/dist/lib/cjs/reg-exp.d.cts +87 -0
  54. package/dist/lib/cjs/string.cjs +268 -0
  55. package/dist/lib/cjs/string.d.cts +362 -0
  56. package/dist/lib/cjs/transformers/date-transformer.cjs +71 -0
  57. package/dist/lib/cjs/transformers/date-transformer.d.cts +39 -0
  58. package/dist/lib/cjs/transformers/group-transformer.cjs +115 -0
  59. package/dist/lib/cjs/transformers/group-transformer.d.cts +70 -0
  60. package/dist/lib/cjs/transformers/index.cjs +65 -0
  61. package/dist/lib/cjs/transformers/index.d.cts +9 -0
  62. package/dist/lib/cjs/transformers/map-transformer.cjs +71 -0
  63. package/dist/lib/cjs/transformers/map-transformer.d.cts +41 -0
  64. package/dist/lib/cjs/transformers/set-transformer.cjs +71 -0
  65. package/dist/lib/cjs/transformers/set-transformer.d.cts +39 -0
  66. package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +69 -0
  67. package/dist/lib/cjs/transformers/skip-private-property-transformer.d.cts +36 -0
  68. package/dist/lib/cjs/transformers/transformer.cjs +112 -0
  69. package/dist/lib/cjs/transformers/transformer.d.cts +70 -0
  70. package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +72 -0
  71. package/dist/lib/cjs/transformers/two-way-map-transformer.d.cts +42 -0
  72. package/dist/lib/cjs/transformers/typed-transformer.cjs +36 -0
  73. package/dist/lib/cjs/transformers/typed-transformer.d.cts +39 -0
  74. package/dist/lib/cjs/two-way-map.cjs +150 -0
  75. package/dist/lib/cjs/two-way-map.d.cts +101 -0
  76. package/dist/lib/cjs/type-guards.cjs +70 -0
  77. package/dist/lib/cjs/type-guards.d.cts +84 -0
  78. package/dist/lib/cjs/type.cjs +63 -0
  79. package/dist/lib/cjs/type.d.cts +122 -0
  80. package/dist/lib/cjs/typescript-lib-state.cjs +68 -0
  81. package/dist/lib/cjs/typescript-lib-state.d.cts +56 -0
  82. package/dist/lib/cjs/url.cjs +78 -0
  83. package/dist/lib/cjs/url.d.cts +74 -0
  84. package/dist/lib/cjs/value-provider.cjs +42 -0
  85. package/dist/lib/cjs/value-provider.d.cts +29 -0
  86. package/dist/lib/cjs/value-wrapper.cjs +86 -0
  87. package/dist/lib/cjs/value-wrapper.d.cts +47 -0
  88. package/dist/lib/esm/@types/debug.d.mts +21 -0
  89. package/dist/lib/esm/abort-controller.d.mts +136 -0
  90. package/dist/lib/esm/abort-controller.mjs +115 -0
  91. package/dist/lib/esm/aggregate-error.d.mts +24 -0
  92. package/dist/lib/esm/aggregate-error.mjs +16 -0
  93. package/dist/lib/esm/array-buffer.d.mts +16 -0
  94. package/dist/lib/esm/array-buffer.mjs +14 -0
  95. package/dist/lib/esm/array.d.mts +46 -0
  96. package/dist/lib/esm/array.mjs +49 -0
  97. package/dist/lib/esm/async-events.d.mts +456 -0
  98. package/dist/lib/esm/async-events.mjs +383 -0
  99. package/dist/lib/esm/async-operation-hook.d.mts +59 -0
  100. package/dist/lib/esm/async-operation-hook.mjs +27 -0
  101. package/dist/lib/esm/async.d.mts +415 -0
  102. package/dist/lib/esm/async.mjs +435 -0
  103. package/dist/lib/esm/beeper.d.mts +21 -0
  104. package/dist/lib/esm/beeper.mjs +44 -0
  105. package/dist/lib/esm/blob.d.mts +60 -0
  106. package/dist/lib/esm/blob.mjs +77 -0
  107. package/dist/lib/esm/bytes.d.mts +17 -0
  108. package/dist/lib/esm/bytes.mjs +32 -0
  109. package/dist/lib/esm/debug-controller.d.mts +87 -0
  110. package/dist/lib/esm/debug-controller.mjs +6 -0
  111. package/dist/lib/esm/debug.d.mts +66 -0
  112. package/dist/lib/esm/debug.mjs +168 -0
  113. package/dist/lib/esm/desktop-zip-extractor.d.mts +96 -0
  114. package/dist/lib/esm/desktop-zip-extractor.mjs +136 -0
  115. package/dist/lib/esm/disposable.d.mts +387 -0
  116. package/dist/lib/esm/disposable.mjs +324 -0
  117. package/dist/lib/esm/enum.d.mts +24 -0
  118. package/dist/lib/esm/enum.mjs +17 -0
  119. package/dist/lib/esm/error.d.mts +182 -0
  120. package/dist/lib/esm/error.mjs +204 -0
  121. package/dist/lib/esm/function.d.mts +128 -0
  122. package/dist/lib/esm/function.mjs +52 -0
  123. package/dist/lib/esm/html-element.d.mts +200 -0
  124. package/dist/lib/esm/html-element.mjs +247 -0
  125. package/dist/lib/esm/index.d.mts +33 -0
  126. package/dist/lib/esm/index.mjs +72 -0
  127. package/dist/lib/esm/jpeg-metadata.d.mts +42 -0
  128. package/dist/lib/esm/jpeg-metadata.mjs +145 -0
  129. package/dist/lib/esm/library-references.d.mts +2 -0
  130. package/dist/lib/esm/library.d.mts +96 -0
  131. package/dist/lib/esm/library.mjs +74 -0
  132. package/dist/lib/esm/object-utils.d.mts +298 -0
  133. package/dist/lib/esm/object-utils.mjs +523 -0
  134. package/dist/lib/esm/path.d.mts +155 -0
  135. package/dist/lib/esm/path.mjs +122 -0
  136. package/dist/lib/esm/reg-exp.d.mts +87 -0
  137. package/dist/lib/esm/reg-exp.mjs +169 -0
  138. package/dist/lib/esm/string.d.mts +362 -0
  139. package/dist/lib/esm/string.mjs +230 -0
  140. package/dist/lib/esm/transformers/date-transformer.d.mts +39 -0
  141. package/dist/lib/esm/transformers/date-transformer.mjs +47 -0
  142. package/dist/lib/esm/transformers/group-transformer.d.mts +70 -0
  143. package/dist/lib/esm/transformers/group-transformer.mjs +94 -0
  144. package/dist/lib/esm/transformers/index.d.mts +9 -0
  145. package/dist/lib/esm/transformers/index.mjs +24 -0
  146. package/dist/lib/esm/transformers/map-transformer.d.mts +41 -0
  147. package/dist/lib/esm/transformers/map-transformer.mjs +47 -0
  148. package/dist/lib/esm/transformers/set-transformer.d.mts +39 -0
  149. package/dist/lib/esm/transformers/set-transformer.mjs +47 -0
  150. package/dist/lib/esm/transformers/skip-private-property-transformer.d.mts +36 -0
  151. package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +45 -0
  152. package/dist/lib/esm/transformers/transformer.d.mts +70 -0
  153. package/dist/lib/esm/transformers/transformer.mjs +88 -0
  154. package/dist/lib/esm/transformers/two-way-map-transformer.d.mts +42 -0
  155. package/dist/lib/esm/transformers/two-way-map-transformer.mjs +48 -0
  156. package/dist/lib/esm/transformers/typed-transformer.d.mts +39 -0
  157. package/dist/lib/esm/transformers/typed-transformer.mjs +12 -0
  158. package/dist/lib/esm/two-way-map.d.mts +101 -0
  159. package/dist/lib/esm/two-way-map.mjs +126 -0
  160. package/dist/lib/esm/type-guards.d.mts +84 -0
  161. package/dist/lib/esm/type-guards.mjs +41 -0
  162. package/dist/lib/esm/type.d.mts +122 -0
  163. package/dist/lib/esm/type.mjs +39 -0
  164. package/dist/lib/esm/typescript-lib-state.d.mts +56 -0
  165. package/dist/lib/esm/typescript-lib-state.mjs +40 -0
  166. package/dist/lib/esm/url.d.mts +74 -0
  167. package/dist/lib/esm/url.mjs +50 -0
  168. package/dist/lib/esm/value-provider.d.mts +29 -0
  169. package/dist/lib/esm/value-provider.mjs +18 -0
  170. package/dist/lib/esm/value-wrapper.d.mts +47 -0
  171. package/dist/lib/esm/value-wrapper.mjs +62 -0
  172. package/package.json +153 -13
  173. package/transformers/date-transformer/package.json +6 -0
  174. package/transformers/group-transformer/package.json +6 -0
  175. package/transformers/index/package.json +6 -0
  176. package/transformers/map-transformer/package.json +6 -0
  177. package/transformers/package.json +6 -0
  178. package/transformers/set-transformer/package.json +6 -0
  179. package/transformers/skip-private-property-transformer/package.json +6 -0
  180. package/transformers/transformer/package.json +6 -0
  181. package/transformers/two-way-map-transformer/package.json +6 -0
  182. package/transformers/typed-transformer/package.json +6 -0
@@ -0,0 +1,88 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ import { getAllKeys } from "../object-utils.mjs";
7
+ class Transformer {
8
+ /**
9
+ * Gets the transformer with the given id.
10
+ *
11
+ * @param transformerId - The id of the transformer to get.
12
+ * @returns The transformer with the given id.
13
+ */
14
+ // eslint-disable-next-line @typescript-eslint/prefer-return-this-type -- The overridden method might return a different type.
15
+ getTransformer(transformerId) {
16
+ if (transformerId === this.id) {
17
+ return this;
18
+ }
19
+ throw new Error(`Transformer with id ${transformerId} not found`);
20
+ }
21
+ /**
22
+ * Transforms the given object recursively.
23
+ *
24
+ * @param value - The value to transform.
25
+ * @returns The transformed value.
26
+ */
27
+ transformObjectRecursively(value) {
28
+ return this.transformValueRecursively(value, "");
29
+ }
30
+ /**
31
+ * Gets the id of the transformer that can transform the given value.
32
+ *
33
+ * @param value - The value to get the transformer id for.
34
+ * @param key - The key of the value to get the transformer id for.
35
+ * @returns The id of the transformer that can transform the given value.
36
+ */
37
+ getTransformerId(value, key) {
38
+ return this.canTransform(value, key) ? this.id : null;
39
+ }
40
+ /**
41
+ * Transforms the given value recursively.
42
+ *
43
+ * @param value - The value to transform.
44
+ * @param key - The key of the value to transform.
45
+ * @returns The transformed value.
46
+ */
47
+ transformValueRecursively(value, key) {
48
+ const transformerId = this.getTransformerId(value, key);
49
+ if (transformerId) {
50
+ const transformedValue = this.transformValue(value, key);
51
+ if (transformedValue === void 0) {
52
+ return void 0;
53
+ }
54
+ const wrapper = {
55
+ __transformerId: transformerId,
56
+ transformedValue
57
+ };
58
+ return wrapper;
59
+ }
60
+ if (value === null) {
61
+ return null;
62
+ }
63
+ if (typeof value !== "object") {
64
+ return value;
65
+ }
66
+ if (Array.isArray(value)) {
67
+ return value.map((childValue, index) => this.transformValueRecursively(childValue, String(index)));
68
+ }
69
+ const transformedValueWrapper = value;
70
+ if (transformedValueWrapper.__transformerId) {
71
+ return this.getTransformer(transformedValueWrapper.__transformerId).restoreValue(transformedValueWrapper.transformedValue, key);
72
+ }
73
+ const record = {};
74
+ for (const childKey of getAllKeys(value)) {
75
+ const childValue = value[childKey];
76
+ const transformedChildValue = this.transformValueRecursively(childValue, childKey);
77
+ if (transformedChildValue === void 0) {
78
+ continue;
79
+ }
80
+ record[childKey] = transformedChildValue;
81
+ }
82
+ return record;
83
+ }
84
+ }
85
+ export {
86
+ Transformer
87
+ };
88
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zZm9ybWVycy90cmFuc2Zvcm1lci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEEgYmFzZSBjbGFzcyBmb3IgdHJhbnNmb3JtZXJzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY09iamVjdCB9IGZyb20gJy4uL3R5cGUtZ3VhcmRzLnRzJztcblxuaW1wb3J0IHsgZ2V0QWxsS2V5cyB9IGZyb20gJy4uL29iamVjdC11dGlscy50cyc7XG5cbi8qKlxuICogQSB3cmFwcGVyIGZvciBhIHRyYW5zZm9ybWVkIHZhbHVlLlxuICovXG5pbnRlcmZhY2UgVHJhbnNmb3JtZWRWYWx1ZVdyYXBwZXIge1xuICAvKipcbiAgICogQW4gaWQgb2YgdGhlIHRyYW5zZm9ybWVyIHRoYXQgdHJhbnNmb3JtZWQgdGhlIHZhbHVlLlxuICAgKi9cbiAgX190cmFuc2Zvcm1lcklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdHJhbnNmb3JtZWQgdmFsdWUuXG4gICAqL1xuICB0cmFuc2Zvcm1lZFZhbHVlOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEEgYmFzZSBjbGFzcyBmb3IgdHJhbnNmb3JtZXJzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNmb3JtZXIge1xuICAvKipcbiAgICogQW4gaWQgb2YgdGhlIHRyYW5zZm9ybWVyLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldCBpZCgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIHRyYW5zZm9ybWVyIGNhbiB0cmFuc2Zvcm0gdGhlIGdpdmVuIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBjaGVjay5cbiAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHRyYW5zZm9ybWVyIGNhbiB0cmFuc2Zvcm0gdGhlIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNhblRyYW5zZm9ybSh2YWx1ZTogdW5rbm93biwga2V5OiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0cmFuc2Zvcm1lciB3aXRoIHRoZSBnaXZlbiBpZC5cbiAgICpcbiAgICogQHBhcmFtIHRyYW5zZm9ybWVySWQgLSBUaGUgaWQgb2YgdGhlIHRyYW5zZm9ybWVyIHRvIGdldC5cbiAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVyIHdpdGggdGhlIGdpdmVuIGlkLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItcmV0dXJuLXRoaXMtdHlwZSAtLSBUaGUgb3ZlcnJpZGRlbiBtZXRob2QgbWlnaHQgcmV0dXJuIGEgZGlmZmVyZW50IHR5cGUuXG4gIHB1YmxpYyBnZXRUcmFuc2Zvcm1lcih0cmFuc2Zvcm1lcklkOiBzdHJpbmcpOiBUcmFuc2Zvcm1lciB7XG4gICAgaWYgKHRyYW5zZm9ybWVySWQgPT09IHRoaXMuaWQpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgVHJhbnNmb3JtZXIgd2l0aCBpZCAke3RyYW5zZm9ybWVySWR9IG5vdCBmb3VuZGApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgdGhlIGdpdmVuIG9iamVjdCByZWN1cnNpdmVseS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHRyYW5zZm9ybS5cbiAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVkIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIHRyYW5zZm9ybU9iamVjdFJlY3Vyc2l2ZWx5KHZhbHVlOiBvYmplY3QpOiBHZW5lcmljT2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1WYWx1ZVJlY3Vyc2l2ZWx5KHZhbHVlLCAnJykgYXMgR2VuZXJpY09iamVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHRyYW5zZm9ybS5cbiAgICogQHBhcmFtIGtleSAtIFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHRyYW5zZm9ybS5cbiAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVkIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHRyYW5zZm9ybVZhbHVlKHZhbHVlOiB1bmtub3duLCBrZXk6IHN0cmluZyk6IHVua25vd247XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGlkIG9mIHRoZSB0cmFuc2Zvcm1lciB0aGF0IGNhbiB0cmFuc2Zvcm0gdGhlIGdpdmVuIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gZ2V0IHRoZSB0cmFuc2Zvcm1lciBpZCBmb3IuXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byBnZXQgdGhlIHRyYW5zZm9ybWVyIGlkIGZvci5cbiAgICogQHJldHVybnMgVGhlIGlkIG9mIHRoZSB0cmFuc2Zvcm1lciB0aGF0IGNhbiB0cmFuc2Zvcm0gdGhlIGdpdmVuIHZhbHVlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFRyYW5zZm9ybWVySWQodmFsdWU6IHVua25vd24sIGtleTogc3RyaW5nKTogbnVsbCB8IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2FuVHJhbnNmb3JtKHZhbHVlLCBrZXkpID8gdGhpcy5pZCA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZXMgdGhlIGdpdmVuIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdHJhbnNmb3JtZWRWYWx1ZSAtIFRoZSB2YWx1ZSB0byByZXN0b3JlLlxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmVzdG9yZS5cbiAgICogQHJldHVybnMgVGhlIHJlc3RvcmVkIHZhbHVlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlc3RvcmVWYWx1ZSh0cmFuc2Zvcm1lZFZhbHVlOiB1bmtub3duLCBrZXk6IHN0cmluZyk6IHVua25vd247XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgdGhlIGdpdmVuIHZhbHVlIHJlY3Vyc2l2ZWx5LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gdHJhbnNmb3JtLlxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gdHJhbnNmb3JtLlxuICAgKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZWQgdmFsdWUuXG4gICAqL1xuICBwcml2YXRlIHRyYW5zZm9ybVZhbHVlUmVjdXJzaXZlbHkodmFsdWU6IHVua25vd24sIGtleTogc3RyaW5nKTogdW5rbm93biB7XG4gICAgY29uc3QgdHJhbnNmb3JtZXJJZCA9IHRoaXMuZ2V0VHJhbnNmb3JtZXJJZCh2YWx1ZSwga2V5KTtcbiAgICBpZiAodHJhbnNmb3JtZXJJZCkge1xuICAgICAgY29uc3QgdHJhbnNmb3JtZWRWYWx1ZSA9IHRoaXMudHJhbnNmb3JtVmFsdWUodmFsdWUsIGtleSk7XG4gICAgICBpZiAodHJhbnNmb3JtZWRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdyYXBwZXI6IFRyYW5zZm9ybWVkVmFsdWVXcmFwcGVyID0ge1xuICAgICAgICBfX3RyYW5zZm9ybWVySWQ6IHRyYW5zZm9ybWVySWQsXG4gICAgICAgIHRyYW5zZm9ybWVkVmFsdWVcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB3cmFwcGVyO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGNoaWxkVmFsdWUsIGluZGV4KSA9PiB0aGlzLnRyYW5zZm9ybVZhbHVlUmVjdXJzaXZlbHkoY2hpbGRWYWx1ZSwgU3RyaW5nKGluZGV4KSkpO1xuICAgIH1cblxuICAgIGNvbnN0IHRyYW5zZm9ybWVkVmFsdWVXcmFwcGVyID0gdmFsdWUgYXMgUGFydGlhbDxUcmFuc2Zvcm1lZFZhbHVlV3JhcHBlcj47XG4gICAgaWYgKHRyYW5zZm9ybWVkVmFsdWVXcmFwcGVyLl9fdHJhbnNmb3JtZXJJZCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNmb3JtZXIodHJhbnNmb3JtZWRWYWx1ZVdyYXBwZXIuX190cmFuc2Zvcm1lcklkKS5yZXN0b3JlVmFsdWUodHJhbnNmb3JtZWRWYWx1ZVdyYXBwZXIudHJhbnNmb3JtZWRWYWx1ZSwga2V5KTtcbiAgICB9XG5cbiAgICBjb25zdCByZWNvcmQ6IEdlbmVyaWNPYmplY3QgPSB7fTtcblxuICAgIGZvciAoY29uc3QgY2hpbGRLZXkgb2YgZ2V0QWxsS2V5cyh2YWx1ZSkpIHtcbiAgICAgIGNvbnN0IGNoaWxkVmFsdWUgPSB2YWx1ZVtjaGlsZEtleV07XG4gICAgICBjb25zdCB0cmFuc2Zvcm1lZENoaWxkVmFsdWUgPSB0aGlzLnRyYW5zZm9ybVZhbHVlUmVjdXJzaXZlbHkoY2hpbGRWYWx1ZSwgY2hpbGRLZXkpO1xuICAgICAgLy8gSlNPTiBjYW5ub3QgaG9sZCBgdW5kZWZpbmVkYCwgc28gYSBrZXkga2VwdCB3aXRoIHRoYXQgdmFsdWUgdmFuaXNoZXMgb24gdGhlIGZpcnN0IHNhdmUgYW5kIG1ha2VzIHRoZVxuICAgICAgLy8gc2F2ZWQgcmVjb3JkIGRpZmZlciBmcm9tIHRoZSBvbmUgaXQgd2FzIGJ1aWx0IGZyb20gLS0gd2hpY2ggaXMgd2hhdCBtYWRlIGV2ZXJ5IHNldHRpbmdzIGxvYWQgcmV3cml0ZVxuICAgICAgLy8gYGRhdGEuanNvbmAuIGBTa2lwUHJpdmF0ZVByb3BlcnR5VHJhbnNmb3JtZXJgIHJldHVybnMgYHVuZGVmaW5lZGAgZm9yIGV2ZXJ5IGBfYC1wcmVmaXhlZCBrZXkuXG4gICAgICBpZiAodHJhbnNmb3JtZWRDaGlsZFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHJlY29yZFtjaGlsZEtleV0gPSB0cmFuc2Zvcm1lZENoaWxkVmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlY29yZDtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFRQSxTQUFTLGtCQUFrQjtBQW9CcEIsTUFBZSxZQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQXNCekIsZUFBZSxlQUFvQztBQUN4RCxRQUFJLGtCQUFrQixLQUFLLElBQUk7QUFDN0IsYUFBTztBQUFBLElBQ1Q7QUFFQSxVQUFNLElBQUksTUFBTSx1QkFBdUIsYUFBYSxZQUFZO0FBQUEsRUFDbEU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFPLDJCQUEyQixPQUE4QjtBQUM5RCxXQUFPLEtBQUssMEJBQTBCLE9BQU8sRUFBRTtBQUFBLEVBQ2pEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQWtCVSxpQkFBaUIsT0FBZ0IsS0FBNEI7QUFDckUsV0FBTyxLQUFLLGFBQWEsT0FBTyxHQUFHLElBQUksS0FBSyxLQUFLO0FBQUEsRUFDbkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBa0JRLDBCQUEwQixPQUFnQixLQUFzQjtBQUN0RSxVQUFNLGdCQUFnQixLQUFLLGlCQUFpQixPQUFPLEdBQUc7QUFDdEQsUUFBSSxlQUFlO0FBQ2pCLFlBQU0sbUJBQW1CLEtBQUssZUFBZSxPQUFPLEdBQUc7QUFDdkQsVUFBSSxxQkFBcUIsUUFBVztBQUNsQyxlQUFPO0FBQUEsTUFDVDtBQUVBLFlBQU0sVUFBbUM7QUFBQSxRQUN2QyxpQkFBaUI7QUFBQSxRQUNqQjtBQUFBLE1BQ0Y7QUFFQSxhQUFPO0FBQUEsSUFDVDtBQUVBLFFBQUksVUFBVSxNQUFNO0FBQ2xCLGFBQU87QUFBQSxJQUNUO0FBRUEsUUFBSSxPQUFPLFVBQVUsVUFBVTtBQUM3QixhQUFPO0FBQUEsSUFDVDtBQUVBLFFBQUksTUFBTSxRQUFRLEtBQUssR0FBRztBQUN4QixhQUFPLE1BQU0sSUFBSSxDQUFDLFlBQVksVUFBVSxLQUFLLDBCQUEwQixZQUFZLE9BQU8sS0FBSyxDQUFDLENBQUM7QUFBQSxJQUNuRztBQUVBLFVBQU0sMEJBQTBCO0FBQ2hDLFFBQUksd0JBQXdCLGlCQUFpQjtBQUMzQyxhQUFPLEtBQUssZUFBZSx3QkFBd0IsZUFBZSxFQUFFLGFBQWEsd0JBQXdCLGtCQUFrQixHQUFHO0FBQUEsSUFDaEk7QUFFQSxVQUFNLFNBQXdCLENBQUM7QUFFL0IsZUFBVyxZQUFZLFdBQVcsS0FBSyxHQUFHO0FBQ3hDLFlBQU0sYUFBYSxNQUFNLFFBQVE7QUFDakMsWUFBTSx3QkFBd0IsS0FBSywwQkFBMEIsWUFBWSxRQUFRO0FBSWpGLFVBQUksMEJBQTBCLFFBQVc7QUFDdkM7QUFBQSxNQUNGO0FBRUEsYUFBTyxRQUFRLElBQUk7QUFBQSxJQUNyQjtBQUVBLFdBQU87QUFBQSxFQUNUO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,42 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * A transformer that can transform a TwoWayMap to an array of entries and back.
6
+ */
7
+ import { TwoWayMap } from '../two-way-map.mjs';
8
+ import { TypedTransformer } from './typed-transformer.mjs';
9
+ type MapEntry = readonly [key: unknown, value: unknown];
10
+ /**
11
+ * A transformer that can transform a TwoWayMap to an array of entries and back.
12
+ */
13
+ export declare class TwoWayMapTransformer extends TypedTransformer<TwoWayMap<unknown, unknown>, MapEntry[]> {
14
+ /**
15
+ * Gets the ID of the transformer.
16
+ *
17
+ * @returns The ID of the transformer.
18
+ */
19
+ get id(): string;
20
+ /**
21
+ * Checks if the value is a TwoWayMap.
22
+ *
23
+ * @param value - The value to check.
24
+ * @returns `true` if the value is a TwoWayMap, `false` otherwise.
25
+ */
26
+ canTransform(value: unknown): value is TwoWayMap<unknown, unknown>;
27
+ /**
28
+ * Restores a TwoWayMap from an array of entries.
29
+ *
30
+ * @param transformedValue - The array of entries.
31
+ * @returns The TwoWayMap.
32
+ */
33
+ restoreValue(transformedValue: MapEntry[]): TwoWayMap<unknown, unknown>;
34
+ /**
35
+ * Transforms a TwoWayMap to an array of entries.
36
+ *
37
+ * @param value - The TwoWayMap.
38
+ * @returns The array of entries.
39
+ */
40
+ transformValue(value: TwoWayMap<unknown, unknown>): MapEntry[];
41
+ }
42
+ export {};
@@ -0,0 +1,48 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ import { TwoWayMap } from "../two-way-map.mjs";
7
+ import { TypedTransformer } from "./typed-transformer.mjs";
8
+ class TwoWayMapTransformer extends TypedTransformer {
9
+ /**
10
+ * Gets the ID of the transformer.
11
+ *
12
+ * @returns The ID of the transformer.
13
+ */
14
+ get id() {
15
+ return "two-way-map";
16
+ }
17
+ /**
18
+ * Checks if the value is a TwoWayMap.
19
+ *
20
+ * @param value - The value to check.
21
+ * @returns `true` if the value is a TwoWayMap, `false` otherwise.
22
+ */
23
+ canTransform(value) {
24
+ return value instanceof TwoWayMap;
25
+ }
26
+ /**
27
+ * Restores a TwoWayMap from an array of entries.
28
+ *
29
+ * @param transformedValue - The array of entries.
30
+ * @returns The TwoWayMap.
31
+ */
32
+ restoreValue(transformedValue) {
33
+ return new TwoWayMap(transformedValue);
34
+ }
35
+ /**
36
+ * Transforms a TwoWayMap to an array of entries.
37
+ *
38
+ * @param value - The TwoWayMap.
39
+ * @returns The array of entries.
40
+ */
41
+ transformValue(value) {
42
+ return [...value.entries()];
43
+ }
44
+ }
45
+ export {
46
+ TwoWayMapTransformer
47
+ };
48
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zZm9ybWVycy90d28td2F5LW1hcC10cmFuc2Zvcm1lci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEEgdHJhbnNmb3JtZXIgdGhhdCBjYW4gdHJhbnNmb3JtIGEgVHdvV2F5TWFwIHRvIGFuIGFycmF5IG9mIGVudHJpZXMgYW5kIGJhY2suXG4gKi9cblxuaW1wb3J0IHsgVHdvV2F5TWFwIH0gZnJvbSAnLi4vdHdvLXdheS1tYXAudHMnO1xuaW1wb3J0IHsgVHlwZWRUcmFuc2Zvcm1lciB9IGZyb20gJy4vdHlwZWQtdHJhbnNmb3JtZXIudHMnO1xuXG50eXBlIE1hcEVudHJ5ID0gcmVhZG9ubHkgW2tleTogdW5rbm93biwgdmFsdWU6IHVua25vd25dO1xuXG4vKipcbiAqIEEgdHJhbnNmb3JtZXIgdGhhdCBjYW4gdHJhbnNmb3JtIGEgVHdvV2F5TWFwIHRvIGFuIGFycmF5IG9mIGVudHJpZXMgYW5kIGJhY2suXG4gKi9cbmV4cG9ydCBjbGFzcyBUd29XYXlNYXBUcmFuc2Zvcm1lciBleHRlbmRzIFR5cGVkVHJhbnNmb3JtZXI8VHdvV2F5TWFwPHVua25vd24sIHVua25vd24+LCBNYXBFbnRyeVtdPiB7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBJRCBvZiB0aGUgdHJhbnNmb3JtZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBJRCBvZiB0aGUgdHJhbnNmb3JtZXIuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICd0d28td2F5LW1hcCc7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSB2YWx1ZSBpcyBhIFR3b1dheU1hcC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlIGlzIGEgVHdvV2F5TWFwLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBjYW5UcmFuc2Zvcm0odmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUd29XYXlNYXA8dW5rbm93biwgdW5rbm93bj4ge1xuICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFR3b1dheU1hcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlcyBhIFR3b1dheU1hcCBmcm9tIGFuIGFycmF5IG9mIGVudHJpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB0cmFuc2Zvcm1lZFZhbHVlIC0gVGhlIGFycmF5IG9mIGVudHJpZXMuXG4gICAqIEByZXR1cm5zIFRoZSBUd29XYXlNYXAuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVzdG9yZVZhbHVlKHRyYW5zZm9ybWVkVmFsdWU6IE1hcEVudHJ5W10pOiBUd29XYXlNYXA8dW5rbm93biwgdW5rbm93bj4ge1xuICAgIHJldHVybiBuZXcgVHdvV2F5TWFwPHVua25vd24sIHVua25vd24+KHRyYW5zZm9ybWVkVmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgYSBUd29XYXlNYXAgdG8gYW4gYXJyYXkgb2YgZW50cmllcy5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIFR3b1dheU1hcC5cbiAgICogQHJldHVybnMgVGhlIGFycmF5IG9mIGVudHJpZXMuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgdHJhbnNmb3JtVmFsdWUodmFsdWU6IFR3b1dheU1hcDx1bmtub3duLCB1bmtub3duPik6IE1hcEVudHJ5W10ge1xuICAgIHJldHVybiBbLi4udmFsdWUuZW50cmllcygpXTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFNQSxTQUFTLGlCQUFpQjtBQUMxQixTQUFTLHdCQUF3QjtBQU8xQixNQUFNLDZCQUE2QixpQkFBMEQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNbEcsSUFBb0IsS0FBYTtBQUMvQixXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLGFBQWEsT0FBc0Q7QUFDakYsV0FBTyxpQkFBaUI7QUFBQSxFQUMxQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLGFBQWEsa0JBQTJEO0FBQ3RGLFdBQU8sSUFBSSxVQUE0QixnQkFBZ0I7QUFBQSxFQUN6RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLGVBQWUsT0FBZ0Q7QUFDN0UsV0FBTyxDQUFDLEdBQUcsTUFBTSxRQUFRLENBQUM7QUFBQSxFQUM1QjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,39 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * A base class for transformers that can transform and restore a specific type.
6
+ */
7
+ import { Transformer } from './transformer.mjs';
8
+ /**
9
+ * A transformer that can transform and restore a specific type.
10
+ *
11
+ * @typeParam Source - The type of the source value.
12
+ * @typeParam Transformed - The type of the transformed value.
13
+ */
14
+ export declare abstract class TypedTransformer<Source, Transformed> extends Transformer {
15
+ /**
16
+ * Determines if the transformer can transform the given value.
17
+ *
18
+ * @param value - The value to check.
19
+ * @param key - The key of the value to check.
20
+ * @returns A boolean indicating if the transformer can transform the value.
21
+ */
22
+ abstract canTransform(value: unknown, key: string): value is Source;
23
+ /**
24
+ * Restores the given value.
25
+ *
26
+ * @param transformedValue - The value to restore.
27
+ * @param key - The key of the value to restore.
28
+ * @returns The restored value.
29
+ */
30
+ abstract restoreValue(transformedValue: Transformed, key: string): Source;
31
+ /**
32
+ * Transforms the given value.
33
+ *
34
+ * @param value - The value to transform.
35
+ * @param key - The key of the value to transform.
36
+ * @returns The transformed value.
37
+ */
38
+ abstract transformValue(value: Source, key: string): Transformed;
39
+ }
@@ -0,0 +1,12 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ import { Transformer } from "./transformer.mjs";
7
+ class TypedTransformer extends Transformer {
8
+ }
9
+ export {
10
+ TypedTransformer
11
+ };
12
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zZm9ybWVycy90eXBlZC10cmFuc2Zvcm1lci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEEgYmFzZSBjbGFzcyBmb3IgdHJhbnNmb3JtZXJzIHRoYXQgY2FuIHRyYW5zZm9ybSBhbmQgcmVzdG9yZSBhIHNwZWNpZmljIHR5cGUuXG4gKi9cblxuaW1wb3J0IHsgVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVyLnRzJztcblxuLyoqXG4gKiBBIHRyYW5zZm9ybWVyIHRoYXQgY2FuIHRyYW5zZm9ybSBhbmQgcmVzdG9yZSBhIHNwZWNpZmljIHR5cGUuXG4gKlxuICogQHR5cGVQYXJhbSBTb3VyY2UgLSBUaGUgdHlwZSBvZiB0aGUgc291cmNlIHZhbHVlLlxuICogQHR5cGVQYXJhbSBUcmFuc2Zvcm1lZCAtIFRoZSB0eXBlIG9mIHRoZSB0cmFuc2Zvcm1lZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFR5cGVkVHJhbnNmb3JtZXI8U291cmNlLCBUcmFuc2Zvcm1lZD4gZXh0ZW5kcyBUcmFuc2Zvcm1lciB7XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSB0cmFuc2Zvcm1lciBjYW4gdHJhbnNmb3JtIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSB0cmFuc2Zvcm1lciBjYW4gdHJhbnNmb3JtIHRoZSB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBvdmVycmlkZSBjYW5UcmFuc2Zvcm0odmFsdWU6IHVua25vd24sIGtleTogc3RyaW5nKTogdmFsdWUgaXMgU291cmNlO1xuXG4gIC8qKlxuICAgKiBSZXN0b3JlcyB0aGUgZ2l2ZW4gdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB0cmFuc2Zvcm1lZFZhbHVlIC0gVGhlIHZhbHVlIHRvIHJlc3RvcmUuXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byByZXN0b3JlLlxuICAgKiBAcmV0dXJucyBUaGUgcmVzdG9yZWQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgb3ZlcnJpZGUgcmVzdG9yZVZhbHVlKHRyYW5zZm9ybWVkVmFsdWU6IFRyYW5zZm9ybWVkLCBrZXk6IHN0cmluZyk6IFNvdXJjZTtcblxuICAvKipcbiAgICogVHJhbnNmb3JtcyB0aGUgZ2l2ZW4gdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB0cmFuc2Zvcm0uXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IG9mIHRoZSB2YWx1ZSB0byB0cmFuc2Zvcm0uXG4gICAqIEByZXR1cm5zIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBvdmVycmlkZSB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZTogU291cmNlLCBrZXk6IHN0cmluZyk6IFRyYW5zZm9ybWVkO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFNQSxTQUFTLG1CQUFtQjtBQVFyQixNQUFlLHlCQUE4QyxZQUFZO0FBMkJoRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,101 @@
1
+ /// <reference path="./library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Two-way map.
6
+ */
7
+ /**
8
+ * A map that allows you to look up a value by its key and vice versa.
9
+ *
10
+ * @typeParam Key - The type of the keys.
11
+ * @typeParam Value - The type of the values.
12
+ * @example
13
+ * ```ts
14
+ * const map = new TwoWayMap<string, number>();
15
+ * map.set('foo', 42);
16
+ * map.getValue('foo'); // 42
17
+ * map.getKey(42); // 'foo'
18
+ * map.deleteKey('foo');
19
+ * map.deleteValue(42);
20
+ * map.clear();
21
+ * ```
22
+ */
23
+ export declare class TwoWayMap<Key, Value> {
24
+ private readonly keyValueMap;
25
+ private readonly valueKeyMap;
26
+ /**
27
+ * Creates a new two-way map.
28
+ *
29
+ * @param entries - Entries to initialize the map with.
30
+ */
31
+ constructor(entries?: (readonly [key: Key, value: Value])[]);
32
+ /**
33
+ * Clears the map.
34
+ */
35
+ clear(): void;
36
+ /**
37
+ * Deletes a key from the map.
38
+ *
39
+ * @param key - The key.
40
+ */
41
+ deleteKey(key: Key): void;
42
+ /**
43
+ * Deletes a value from the map.
44
+ *
45
+ * @param value - The value.
46
+ */
47
+ deleteValue(value: Value): void;
48
+ /**
49
+ * Gets all entries in the map.
50
+ *
51
+ * @returns An iterator over all entries in the map.
52
+ */
53
+ entries(): IterableIterator<readonly [key: Key, value: Value]>;
54
+ /**
55
+ * Gets a key by its value.
56
+ *
57
+ * @param value - The value.
58
+ * @returns The key.
59
+ */
60
+ getKey(value: Value): Key | undefined;
61
+ /**
62
+ * Gets a value by its key.
63
+ *
64
+ * @param key - The key.
65
+ * @returns The value.
66
+ */
67
+ getValue(key: Key): undefined | Value;
68
+ /**
69
+ * Checks if the map has a key.
70
+ *
71
+ * @param key - The key.
72
+ * @returns `true` if the map has the key, `false` otherwise.
73
+ */
74
+ hasKey(key: Key): boolean;
75
+ /**
76
+ * Checks if the map has a value.
77
+ *
78
+ * @param value - The value.
79
+ * @returns `true` if the map has the value, `false` otherwise.
80
+ */
81
+ hasValue(value: Value): boolean;
82
+ /**
83
+ * Gets all keys in the map.
84
+ *
85
+ * @returns An iterator over all keys in the map.
86
+ */
87
+ keys(): IterableIterator<Key>;
88
+ /**
89
+ * Sets a key-value pair in the map.
90
+ *
91
+ * @param key - The key.
92
+ * @param value - The value.
93
+ */
94
+ set(key: Key, value: Value): void;
95
+ /**
96
+ * Gets all values in the map.
97
+ *
98
+ * @returns An iterator over all values in the map.
99
+ */
100
+ values(): IterableIterator<Value>;
101
+ }
@@ -0,0 +1,126 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ class TwoWayMap {
7
+ keyValueMap = /* @__PURE__ */ new Map();
8
+ valueKeyMap = /* @__PURE__ */ new Map();
9
+ /**
10
+ * Creates a new two-way map.
11
+ *
12
+ * @param entries - Entries to initialize the map with.
13
+ */
14
+ constructor(entries = []) {
15
+ for (const [key, value] of entries) {
16
+ this.set(key, value);
17
+ }
18
+ }
19
+ /**
20
+ * Clears the map.
21
+ */
22
+ clear() {
23
+ this.keyValueMap.clear();
24
+ this.valueKeyMap.clear();
25
+ }
26
+ /**
27
+ * Deletes a key from the map.
28
+ *
29
+ * @param key - The key.
30
+ */
31
+ deleteKey(key) {
32
+ const value = this.getValue(key);
33
+ if (value !== void 0) {
34
+ this.valueKeyMap.delete(value);
35
+ }
36
+ this.keyValueMap.delete(key);
37
+ }
38
+ /**
39
+ * Deletes a value from the map.
40
+ *
41
+ * @param value - The value.
42
+ */
43
+ deleteValue(value) {
44
+ const key = this.getKey(value);
45
+ if (key !== void 0) {
46
+ this.keyValueMap.delete(key);
47
+ }
48
+ this.valueKeyMap.delete(value);
49
+ }
50
+ /**
51
+ * Gets all entries in the map.
52
+ *
53
+ * @returns An iterator over all entries in the map.
54
+ */
55
+ entries() {
56
+ return this.keyValueMap.entries();
57
+ }
58
+ /**
59
+ * Gets a key by its value.
60
+ *
61
+ * @param value - The value.
62
+ * @returns The key.
63
+ */
64
+ getKey(value) {
65
+ return this.valueKeyMap.get(value);
66
+ }
67
+ /**
68
+ * Gets a value by its key.
69
+ *
70
+ * @param key - The key.
71
+ * @returns The value.
72
+ */
73
+ getValue(key) {
74
+ return this.keyValueMap.get(key);
75
+ }
76
+ /**
77
+ * Checks if the map has a key.
78
+ *
79
+ * @param key - The key.
80
+ * @returns `true` if the map has the key, `false` otherwise.
81
+ */
82
+ hasKey(key) {
83
+ return this.keyValueMap.has(key);
84
+ }
85
+ /**
86
+ * Checks if the map has a value.
87
+ *
88
+ * @param value - The value.
89
+ * @returns `true` if the map has the value, `false` otherwise.
90
+ */
91
+ hasValue(value) {
92
+ return this.valueKeyMap.has(value);
93
+ }
94
+ /**
95
+ * Gets all keys in the map.
96
+ *
97
+ * @returns An iterator over all keys in the map.
98
+ */
99
+ keys() {
100
+ return this.keyValueMap.keys();
101
+ }
102
+ /**
103
+ * Sets a key-value pair in the map.
104
+ *
105
+ * @param key - The key.
106
+ * @param value - The value.
107
+ */
108
+ set(key, value) {
109
+ this.deleteKey(key);
110
+ this.deleteValue(value);
111
+ this.keyValueMap.set(key, value);
112
+ this.valueKeyMap.set(value, key);
113
+ }
114
+ /**
115
+ * Gets all values in the map.
116
+ *
117
+ * @returns An iterator over all values in the map.
118
+ */
119
+ values() {
120
+ return this.valueKeyMap.keys();
121
+ }
122
+ }
123
+ export {
124
+ TwoWayMap
125
+ };
126
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3R3by13YXktbWFwLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVHdvLXdheSBtYXAuXG4gKi9cblxuLyoqXG4gKiBBIG1hcCB0aGF0IGFsbG93cyB5b3UgdG8gbG9vayB1cCBhIHZhbHVlIGJ5IGl0cyBrZXkgYW5kIHZpY2UgdmVyc2EuXG4gKlxuICogQHR5cGVQYXJhbSBLZXkgLSBUaGUgdHlwZSBvZiB0aGUga2V5cy5cbiAqIEB0eXBlUGFyYW0gVmFsdWUgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWVzLlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjb25zdCBtYXAgPSBuZXcgVHdvV2F5TWFwPHN0cmluZywgbnVtYmVyPigpO1xuICogbWFwLnNldCgnZm9vJywgNDIpO1xuICogbWFwLmdldFZhbHVlKCdmb28nKTsgLy8gNDJcbiAqIG1hcC5nZXRLZXkoNDIpOyAvLyAnZm9vJ1xuICogbWFwLmRlbGV0ZUtleSgnZm9vJyk7XG4gKiBtYXAuZGVsZXRlVmFsdWUoNDIpO1xuICogbWFwLmNsZWFyKCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFR3b1dheU1hcDxLZXksIFZhbHVlPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkga2V5VmFsdWVNYXAgPSBuZXcgTWFwPEtleSwgVmFsdWU+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsdWVLZXlNYXAgPSBuZXcgTWFwPFZhbHVlLCBLZXk+KCk7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgdHdvLXdheSBtYXAuXG4gICAqXG4gICAqIEBwYXJhbSBlbnRyaWVzIC0gRW50cmllcyB0byBpbml0aWFsaXplIHRoZSBtYXAgd2l0aC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihlbnRyaWVzOiAocmVhZG9ubHkgW2tleTogS2V5LCB2YWx1ZTogVmFsdWVdKVtdID0gW10pIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBlbnRyaWVzKSB7XG4gICAgICB0aGlzLnNldChrZXksIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBtYXAuXG4gICAqL1xuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5rZXlWYWx1ZU1hcC5jbGVhcigpO1xuICAgIHRoaXMudmFsdWVLZXlNYXAuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEga2V5IGZyb20gdGhlIG1hcC5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIFRoZSBrZXkuXG4gICAqL1xuICBwdWJsaWMgZGVsZXRlS2V5KGtleTogS2V5KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKGtleSk7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudmFsdWVLZXlNYXAuZGVsZXRlKHZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5rZXlWYWx1ZU1hcC5kZWxldGUoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEgdmFsdWUgZnJvbSB0aGUgbWFwLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgZGVsZXRlVmFsdWUodmFsdWU6IFZhbHVlKTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5nZXRLZXkodmFsdWUpO1xuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5rZXlWYWx1ZU1hcC5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZUtleU1hcC5kZWxldGUodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIGVudHJpZXMgaW4gdGhlIG1hcC5cbiAgICpcbiAgICogQHJldHVybnMgQW4gaXRlcmF0b3Igb3ZlciBhbGwgZW50cmllcyBpbiB0aGUgbWFwLlxuICAgKi9cbiAgcHVibGljIGVudHJpZXMoKTogSXRlcmFibGVJdGVyYXRvcjxyZWFkb25seSBba2V5OiBLZXksIHZhbHVlOiBWYWx1ZV0+IHtcbiAgICByZXR1cm4gdGhpcy5rZXlWYWx1ZU1hcC5lbnRyaWVzKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGtleSBieSBpdHMgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZS5cbiAgICogQHJldHVybnMgVGhlIGtleS5cbiAgICovXG4gIHB1YmxpYyBnZXRLZXkodmFsdWU6IFZhbHVlKTogS2V5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUtleU1hcC5nZXQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSB2YWx1ZSBieSBpdHMga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIGtleS5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIGdldFZhbHVlKGtleTogS2V5KTogdW5kZWZpbmVkIHwgVmFsdWUge1xuICAgIHJldHVybiB0aGlzLmtleVZhbHVlTWFwLmdldChrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgbWFwIGhhcyBhIGtleS5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIFRoZSBrZXkuXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbWFwIGhhcyB0aGUga2V5LCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBoYXNLZXkoa2V5OiBLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5rZXlWYWx1ZU1hcC5oYXMoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIG1hcCBoYXMgYSB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlLlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG1hcCBoYXMgdGhlIHZhbHVlLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBoYXNWYWx1ZSh2YWx1ZTogVmFsdWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUtleU1hcC5oYXModmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIGtleXMgaW4gdGhlIG1hcC5cbiAgICpcbiAgICogQHJldHVybnMgQW4gaXRlcmF0b3Igb3ZlciBhbGwga2V5cyBpbiB0aGUgbWFwLlxuICAgKi9cbiAgcHVibGljIGtleXMoKTogSXRlcmFibGVJdGVyYXRvcjxLZXk+IHtcbiAgICByZXR1cm4gdGhpcy5rZXlWYWx1ZU1hcC5rZXlzKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBhIGtleS12YWx1ZSBwYWlyIGluIHRoZSBtYXAuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUga2V5LlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgc2V0KGtleTogS2V5LCB2YWx1ZTogVmFsdWUpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZUtleShrZXkpO1xuICAgIHRoaXMuZGVsZXRlVmFsdWUodmFsdWUpO1xuXG4gICAgdGhpcy5rZXlWYWx1ZU1hcC5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgdGhpcy52YWx1ZUtleU1hcC5zZXQodmFsdWUsIGtleSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbGwgdmFsdWVzIGluIHRoZSBtYXAuXG4gICAqXG4gICAqIEByZXR1cm5zIEFuIGl0ZXJhdG9yIG92ZXIgYWxsIHZhbHVlcyBpbiB0aGUgbWFwLlxuICAgKi9cbiAgcHVibGljIHZhbHVlcygpOiBJdGVyYWJsZUl0ZXJhdG9yPFZhbHVlPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVLZXlNYXAua2V5cygpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQXNCTyxNQUFNLFVBQXNCO0FBQUEsRUFDaEIsY0FBYyxvQkFBSSxJQUFnQjtBQUFBLEVBQ2xDLGNBQWMsb0JBQUksSUFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPNUMsWUFBWSxVQUFpRCxDQUFDLEdBQUc7QUFDdEUsZUFBVyxDQUFDLEtBQUssS0FBSyxLQUFLLFNBQVM7QUFDbEMsV0FBSyxJQUFJLEtBQUssS0FBSztBQUFBLElBQ3JCO0FBQUEsRUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS08sUUFBYztBQUNuQixTQUFLLFlBQVksTUFBTTtBQUN2QixTQUFLLFlBQVksTUFBTTtBQUFBLEVBQ3pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sVUFBVSxLQUFnQjtBQUMvQixVQUFNLFFBQVEsS0FBSyxTQUFTLEdBQUc7QUFDL0IsUUFBSSxVQUFVLFFBQVc7QUFDdkIsV0FBSyxZQUFZLE9BQU8sS0FBSztBQUFBLElBQy9CO0FBQ0EsU0FBSyxZQUFZLE9BQU8sR0FBRztBQUFBLEVBQzdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sWUFBWSxPQUFvQjtBQUNyQyxVQUFNLE1BQU0sS0FBSyxPQUFPLEtBQUs7QUFDN0IsUUFBSSxRQUFRLFFBQVc7QUFDckIsV0FBSyxZQUFZLE9BQU8sR0FBRztBQUFBLElBQzdCO0FBQ0EsU0FBSyxZQUFZLE9BQU8sS0FBSztBQUFBLEVBQy9CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sVUFBK0Q7QUFDcEUsV0FBTyxLQUFLLFlBQVksUUFBUTtBQUFBLEVBQ2xDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxPQUFPLE9BQStCO0FBQzNDLFdBQU8sS0FBSyxZQUFZLElBQUksS0FBSztBQUFBLEVBQ25DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxTQUFTLEtBQTZCO0FBQzNDLFdBQU8sS0FBSyxZQUFZLElBQUksR0FBRztBQUFBLEVBQ2pDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxPQUFPLEtBQW1CO0FBQy9CLFdBQU8sS0FBSyxZQUFZLElBQUksR0FBRztBQUFBLEVBQ2pDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxTQUFTLE9BQXVCO0FBQ3JDLFdBQU8sS0FBSyxZQUFZLElBQUksS0FBSztBQUFBLEVBQ25DO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sT0FBOEI7QUFDbkMsV0FBTyxLQUFLLFlBQVksS0FBSztBQUFBLEVBQy9CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRTyxJQUFJLEtBQVUsT0FBb0I7QUFDdkMsU0FBSyxVQUFVLEdBQUc7QUFDbEIsU0FBSyxZQUFZLEtBQUs7QUFFdEIsU0FBSyxZQUFZLElBQUksS0FBSyxLQUFLO0FBQy9CLFNBQUssWUFBWSxJQUFJLE9BQU8sR0FBRztBQUFBLEVBQ2pDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sU0FBa0M7QUFDdkMsV0FBTyxLQUFLLFlBQVksS0FBSztBQUFBLEVBQy9CO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,84 @@
1
+ /// <reference path="./library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Contains utility functions for type guards.
6
+ */
7
+ /**
8
+ * A type that represents a generic object.
9
+ *
10
+ * @typeParam T - The base type to intersect with.
11
+ */
12
+ export type GenericObject<T = unknown> = Record<string | symbol, unknown> & T;
13
+ type NullableConstraint<T> = null extends T ? unknown : undefined extends T ? unknown : never;
14
+ /**
15
+ * Asserts that a condition is `true`. Throws if it is not.
16
+ *
17
+ * Use in place of `/* v8 ignore *\/` for defensive guards that should
18
+ * never trigger at runtime but would otherwise create uncovered branches.
19
+ *
20
+ * @param isTrue - The condition to assert.
21
+ * @param errorOrMessage - The error or message to throw if the condition is `false`.
22
+ */
23
+ export declare function assert(isTrue: boolean, errorOrMessage: Error | string): asserts isTrue;
24
+ /**
25
+ * Asserts that a value is a generic object, narrowing its type in place.
26
+ *
27
+ * @typeParam T - The type of the value.
28
+ * @param _object - The value to assert.
29
+ */
30
+ export declare function assertGenericObject<T>(_object: T): asserts _object is GenericObject<T>;
31
+ /**
32
+ * Asserts at compile time that every case of a discriminated union has been
33
+ * handled. Place at the `default` branch of a `switch` over a union or enum.
34
+ *
35
+ * If a new variant is added to the union without a matching `case`, the call
36
+ * to {@link assertNever} fails to compile because `value` is no longer `never`.
37
+ * If reached at runtime (e.g. because the value was bypassed via JSON or a
38
+ * type assertion), it throws a descriptive `Error`.
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * switch (mode) {
43
+ * case 'a': return doA();
44
+ * case 'b': return doB();
45
+ * default: assertNever(mode);
46
+ * }
47
+ * ```
48
+ *
49
+ * @param value - The exhaustively-handled value, narrowed to `never` by control flow.
50
+ * @throws Always, if reached at runtime.
51
+ */
52
+ export declare function assertNever(value: never): never;
53
+ /**
54
+ * Asserts that a value is not `null` or `undefined`, narrowing its type in place.
55
+ *
56
+ * Only callable when `T` includes `null` or `undefined`. Passing an already non-nullable type is a compile error.
57
+ *
58
+ * @typeParam T - The type of the value.
59
+ * @param value - The value to check.
60
+ * @param errorOrMessage - Optional {@link Error} or error message string.
61
+ * @throws If the value is `null` or `undefined`.
62
+ */
63
+ export declare function assertNonNullable<T extends NullableConstraint<T>>(value: T, errorOrMessage?: Error | string): asserts value is NonNullable<T>;
64
+ /**
65
+ * Ensures that a value is a generic object, returning it with narrowed type.
66
+ *
67
+ * @typeParam T - The type of the value.
68
+ * @param $object - The value to ensure.
69
+ * @returns The value as a generic object.
70
+ */
71
+ export declare function ensureGenericObject<T>($object: T): GenericObject<T>;
72
+ /**
73
+ * Ensures that a value is not `null` or `undefined` and returns it with narrowed type.
74
+ *
75
+ * Only callable when `T` includes `null` or `undefined`. Passing an already non-nullable type is a compile error.
76
+ *
77
+ * @typeParam T - The type of the value.
78
+ * @param value - The value to check.
79
+ * @param errorOrMessage - Optional {@link Error} or error message string.
80
+ * @returns The value with `null` and `undefined` excluded from its type.
81
+ * @throws If the value is `null` or `undefined`.
82
+ */
83
+ export declare function ensureNonNullable<T extends NullableConstraint<T>>(value: T, errorOrMessage?: Error | string): NonNullable<T>;
84
+ export {};
@@ -0,0 +1,41 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ import { noop } from "./function.mjs";
7
+ function assert(isTrue, errorOrMessage) {
8
+ if (!isTrue) {
9
+ throw typeof errorOrMessage === "string" ? new Error(errorOrMessage) : errorOrMessage;
10
+ }
11
+ }
12
+ function assertGenericObject(_object) {
13
+ noop();
14
+ }
15
+ function assertNever(value) {
16
+ throw new Error(`Unhandled value: ${String(value)}`);
17
+ }
18
+ function assertNonNullable(value, errorOrMessage) {
19
+ if (value !== null && value !== void 0) {
20
+ return;
21
+ }
22
+ errorOrMessage ??= value === null ? "Value is null" : "Value is undefined";
23
+ const error = typeof errorOrMessage === "string" ? new Error(errorOrMessage) : errorOrMessage;
24
+ throw error;
25
+ }
26
+ function ensureGenericObject($object) {
27
+ return $object;
28
+ }
29
+ function ensureNonNullable(value, errorOrMessage) {
30
+ assertNonNullable(value, errorOrMessage);
31
+ return value;
32
+ }
33
+ export {
34
+ assert,
35
+ assertGenericObject,
36
+ assertNever,
37
+ assertNonNullable,
38
+ ensureGenericObject,
39
+ ensureNonNullable
40
+ };
41
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3R5cGUtZ3VhcmRzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHR5cGUgZ3VhcmRzLlxuICovXG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL2Z1bmN0aW9uLnRzJztcblxuLyoqXG4gKiBBIHR5cGUgdGhhdCByZXByZXNlbnRzIGEgZ2VuZXJpYyBvYmplY3QuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIGJhc2UgdHlwZSB0byBpbnRlcnNlY3Qgd2l0aC5cbiAqL1xuZXhwb3J0IHR5cGUgR2VuZXJpY09iamVjdDxUID0gdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nIHwgc3ltYm9sLCB1bmtub3duPiAmIFQ7XG5cbnR5cGUgTnVsbGFibGVDb25zdHJhaW50PFQ+ID0gbnVsbCBleHRlbmRzIFQgPyB1bmtub3duIDogdW5kZWZpbmVkIGV4dGVuZHMgVCA/IHVua25vd24gOiBuZXZlcjtcblxuLyoqXG4gKiBBc3NlcnRzIHRoYXQgYSBjb25kaXRpb24gaXMgYHRydWVgLiBUaHJvd3MgaWYgaXQgaXMgbm90LlxuICpcbiAqIFVzZSBpbiBwbGFjZSBvZiBgLyogdjggaWdub3JlICpcXC9gIGZvciBkZWZlbnNpdmUgZ3VhcmRzIHRoYXQgc2hvdWxkXG4gKiBuZXZlciB0cmlnZ2VyIGF0IHJ1bnRpbWUgYnV0IHdvdWxkIG90aGVyd2lzZSBjcmVhdGUgdW5jb3ZlcmVkIGJyYW5jaGVzLlxuICpcbiAqIEBwYXJhbSBpc1RydWUgLSBUaGUgY29uZGl0aW9uIHRvIGFzc2VydC5cbiAqIEBwYXJhbSBlcnJvck9yTWVzc2FnZSAtIFRoZSBlcnJvciBvciBtZXNzYWdlIHRvIHRocm93IGlmIHRoZSBjb25kaXRpb24gaXMgYGZhbHNlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydChpc1RydWU6IGJvb2xlYW4sIGVycm9yT3JNZXNzYWdlOiBFcnJvciB8IHN0cmluZyk6IGFzc2VydHMgaXNUcnVlIHtcbiAgaWYgKCFpc1RydWUpIHtcbiAgICB0aHJvdyB0eXBlb2YgZXJyb3JPck1lc3NhZ2UgPT09ICdzdHJpbmcnID8gbmV3IEVycm9yKGVycm9yT3JNZXNzYWdlKSA6IGVycm9yT3JNZXNzYWdlO1xuICB9XG59XG5cbi8qKlxuICogQXNzZXJ0cyB0aGF0IGEgdmFsdWUgaXMgYSBnZW5lcmljIG9iamVjdCwgbmFycm93aW5nIGl0cyB0eXBlIGluIHBsYWNlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZS5cbiAqIEBwYXJhbSBfb2JqZWN0IC0gVGhlIHZhbHVlIHRvIGFzc2VydC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydEdlbmVyaWNPYmplY3Q8VD4oX29iamVjdDogVCk6IGFzc2VydHMgX29iamVjdCBpcyBHZW5lcmljT2JqZWN0PFQ+IHtcbiAgbm9vcCgpO1xufVxuXG4vKipcbiAqIEFzc2VydHMgYXQgY29tcGlsZSB0aW1lIHRoYXQgZXZlcnkgY2FzZSBvZiBhIGRpc2NyaW1pbmF0ZWQgdW5pb24gaGFzIGJlZW5cbiAqIGhhbmRsZWQuIFBsYWNlIGF0IHRoZSBgZGVmYXVsdGAgYnJhbmNoIG9mIGEgYHN3aXRjaGAgb3ZlciBhIHVuaW9uIG9yIGVudW0uXG4gKlxuICogSWYgYSBuZXcgdmFyaWFudCBpcyBhZGRlZCB0byB0aGUgdW5pb24gd2l0aG91dCBhIG1hdGNoaW5nIGBjYXNlYCwgdGhlIGNhbGxcbiAqIHRvIHtAbGluayBhc3NlcnROZXZlcn0gZmFpbHMgdG8gY29tcGlsZSBiZWNhdXNlIGB2YWx1ZWAgaXMgbm8gbG9uZ2VyIGBuZXZlcmAuXG4gKiBJZiByZWFjaGVkIGF0IHJ1bnRpbWUgKGUuZy4gYmVjYXVzZSB0aGUgdmFsdWUgd2FzIGJ5cGFzc2VkIHZpYSBKU09OIG9yIGFcbiAqIHR5cGUgYXNzZXJ0aW9uKSwgaXQgdGhyb3dzIGEgZGVzY3JpcHRpdmUgYEVycm9yYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIHN3aXRjaCAobW9kZSkge1xuICogICBjYXNlICdhJzogcmV0dXJuIGRvQSgpO1xuICogICBjYXNlICdiJzogcmV0dXJuIGRvQigpO1xuICogICBkZWZhdWx0OiBhc3NlcnROZXZlcihtb2RlKTtcbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBleGhhdXN0aXZlbHktaGFuZGxlZCB2YWx1ZSwgbmFycm93ZWQgdG8gYG5ldmVyYCBieSBjb250cm9sIGZsb3cuXG4gKiBAdGhyb3dzIEFsd2F5cywgaWYgcmVhY2hlZCBhdCBydW50aW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0TmV2ZXIodmFsdWU6IG5ldmVyKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgRXJyb3IoYFVuaGFuZGxlZCB2YWx1ZTogJHtTdHJpbmcodmFsdWUpfWApO1xufVxuXG4vKipcbiAqIEFzc2VydHMgdGhhdCBhIHZhbHVlIGlzIG5vdCBgbnVsbGAgb3IgYHVuZGVmaW5lZGAsIG5hcnJvd2luZyBpdHMgdHlwZSBpbiBwbGFjZS5cbiAqXG4gKiBPbmx5IGNhbGxhYmxlIHdoZW4gYFRgIGluY2x1ZGVzIGBudWxsYCBvciBgdW5kZWZpbmVkYC4gUGFzc2luZyBhbiBhbHJlYWR5IG5vbi1udWxsYWJsZSB0eXBlIGlzIGEgY29tcGlsZSBlcnJvci5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUuXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcGFyYW0gZXJyb3JPck1lc3NhZ2UgLSBPcHRpb25hbCB7QGxpbmsgRXJyb3J9IG9yIGVycm9yIG1lc3NhZ2Ugc3RyaW5nLlxuICogQHRocm93cyBJZiB0aGUgdmFsdWUgaXMgYG51bGxgIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0Tm9uTnVsbGFibGU8VCBleHRlbmRzIE51bGxhYmxlQ29uc3RyYWludDxUPj4odmFsdWU6IFQsIGVycm9yT3JNZXNzYWdlPzogRXJyb3IgfCBzdHJpbmcpOiBhc3NlcnRzIHZhbHVlIGlzIE5vbk51bGxhYmxlPFQ+IHtcbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBlcnJvck9yTWVzc2FnZSA/Pz0gdmFsdWUgPT09IG51bGwgPyAnVmFsdWUgaXMgbnVsbCcgOiAnVmFsdWUgaXMgdW5kZWZpbmVkJztcbiAgY29uc3QgZXJyb3IgPSB0eXBlb2YgZXJyb3JPck1lc3NhZ2UgPT09ICdzdHJpbmcnID8gbmV3IEVycm9yKGVycm9yT3JNZXNzYWdlKSA6IGVycm9yT3JNZXNzYWdlO1xuICB0aHJvdyBlcnJvcjtcbn1cblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQgYSB2YWx1ZSBpcyBhIGdlbmVyaWMgb2JqZWN0LCByZXR1cm5pbmcgaXQgd2l0aCBuYXJyb3dlZCB0eXBlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZS5cbiAqIEBwYXJhbSAkb2JqZWN0IC0gVGhlIHZhbHVlIHRvIGVuc3VyZS5cbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSBhcyBhIGdlbmVyaWMgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlR2VuZXJpY09iamVjdDxUPigkb2JqZWN0OiBUKTogR2VuZXJpY09iamVjdDxUPiB7XG4gIHJldHVybiAkb2JqZWN0IGFzIEdlbmVyaWNPYmplY3Q8VD47XG59XG5cbi8qKlxuICogRW5zdXJlcyB0aGF0IGEgdmFsdWUgaXMgbm90IGBudWxsYCBvciBgdW5kZWZpbmVkYCBhbmQgcmV0dXJucyBpdCB3aXRoIG5hcnJvd2VkIHR5cGUuXG4gKlxuICogT25seSBjYWxsYWJsZSB3aGVuIGBUYCBpbmNsdWRlcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAuIFBhc3NpbmcgYW4gYWxyZWFkeSBub24tbnVsbGFibGUgdHlwZSBpcyBhIGNvbXBpbGUgZXJyb3IuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlLlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIGVycm9yT3JNZXNzYWdlIC0gT3B0aW9uYWwge0BsaW5rIEVycm9yfSBvciBlcnJvciBtZXNzYWdlIHN0cmluZy5cbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSB3aXRoIGBudWxsYCBhbmQgYHVuZGVmaW5lZGAgZXhjbHVkZWQgZnJvbSBpdHMgdHlwZS5cbiAqIEB0aHJvd3MgSWYgdGhlIHZhbHVlIGlzIGBudWxsYCBvciBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZU5vbk51bGxhYmxlPFQgZXh0ZW5kcyBOdWxsYWJsZUNvbnN0cmFpbnQ8VD4+KHZhbHVlOiBULCBlcnJvck9yTWVzc2FnZT86IEVycm9yIHwgc3RyaW5nKTogTm9uTnVsbGFibGU8VD4ge1xuICBhc3NlcnROb25OdWxsYWJsZSh2YWx1ZSwgZXJyb3JPck1lc3NhZ2UpO1xuICByZXR1cm4gdmFsdWU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQU1BLFNBQVMsWUFBWTtBQW9CZCxTQUFTLE9BQU8sUUFBaUIsZ0JBQWdEO0FBQ3RGLE1BQUksQ0FBQyxRQUFRO0FBQ1gsVUFBTSxPQUFPLG1CQUFtQixXQUFXLElBQUksTUFBTSxjQUFjLElBQUk7QUFBQSxFQUN6RTtBQUNGO0FBUU8sU0FBUyxvQkFBdUIsU0FBaUQ7QUFDdEYsT0FBSztBQUNQO0FBdUJPLFNBQVMsWUFBWSxPQUFxQjtBQUMvQyxRQUFNLElBQUksTUFBTSxvQkFBb0IsT0FBTyxLQUFLLENBQUMsRUFBRTtBQUNyRDtBQVlPLFNBQVMsa0JBQW1ELE9BQVUsZ0JBQWtFO0FBQzdJLE1BQUksVUFBVSxRQUFRLFVBQVUsUUFBVztBQUN6QztBQUFBLEVBQ0Y7QUFFQSxxQkFBbUIsVUFBVSxPQUFPLGtCQUFrQjtBQUN0RCxRQUFNLFFBQVEsT0FBTyxtQkFBbUIsV0FBVyxJQUFJLE1BQU0sY0FBYyxJQUFJO0FBQy9FLFFBQU07QUFDUjtBQVNPLFNBQVMsb0JBQXVCLFNBQThCO0FBQ25FLFNBQU87QUFDVDtBQWFPLFNBQVMsa0JBQW1ELE9BQVUsZ0JBQWlEO0FBQzVILG9CQUFrQixPQUFPLGNBQWM7QUFDdkMsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=