@cratis/fundamentals 7.16.7 → 7.17.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 (246) hide show
  1. package/ConceptAs.ts +3 -0
  2. package/DateOnly.ts +112 -0
  3. package/Guid.ts +3 -0
  4. package/JsonSerializer.ts +108 -39
  5. package/TimeOnly.ts +108 -0
  6. package/TimeSpan.ts +4 -0
  7. package/ValueMap.ts +3 -0
  8. package/dist/ConceptAs.d.ts +2 -0
  9. package/dist/ConceptAs.d.ts.map +1 -1
  10. package/dist/ConceptAs.js +2 -0
  11. package/dist/ConceptAs.js.map +1 -1
  12. package/dist/DateOnly.d.ts +14 -0
  13. package/dist/DateOnly.d.ts.map +1 -0
  14. package/dist/DateOnly.js +51 -0
  15. package/dist/DateOnly.js.map +1 -0
  16. package/dist/Guid.d.ts +2 -0
  17. package/dist/Guid.d.ts.map +1 -1
  18. package/dist/Guid.js +2 -0
  19. package/dist/Guid.js.map +1 -1
  20. package/dist/JsonSerializer.d.ts +2 -0
  21. package/dist/JsonSerializer.d.ts.map +1 -1
  22. package/dist/JsonSerializer.js +45 -35
  23. package/dist/JsonSerializer.js.map +1 -1
  24. package/dist/TimeOnly.d.ts +13 -0
  25. package/dist/TimeOnly.d.ts.map +1 -0
  26. package/dist/TimeOnly.js +58 -0
  27. package/dist/TimeOnly.js.map +1 -0
  28. package/dist/TimeSpan.d.ts +2 -0
  29. package/dist/TimeSpan.d.ts.map +1 -1
  30. package/dist/TimeSpan.js +2 -0
  31. package/dist/TimeSpan.js.map +1 -1
  32. package/dist/ValueMap.d.ts +2 -0
  33. package/dist/ValueMap.d.ts.map +1 -1
  34. package/dist/ValueMap.js +2 -0
  35. package/dist/ValueMap.js.map +1 -1
  36. package/dist/cjs/ConceptAs.d.ts +2 -0
  37. package/dist/cjs/ConceptAs.d.ts.map +1 -1
  38. package/dist/cjs/ConceptAs.js +3 -0
  39. package/dist/cjs/ConceptAs.js.map +1 -1
  40. package/dist/cjs/DateOnly.d.ts +14 -0
  41. package/dist/cjs/DateOnly.d.ts.map +1 -0
  42. package/dist/cjs/DateOnly.js +56 -0
  43. package/dist/cjs/DateOnly.js.map +1 -0
  44. package/dist/cjs/Guid.d.ts +2 -0
  45. package/dist/cjs/Guid.d.ts.map +1 -1
  46. package/dist/cjs/Guid.js +3 -0
  47. package/dist/cjs/Guid.js.map +1 -1
  48. package/dist/cjs/JsonSerializer.d.ts +2 -0
  49. package/dist/cjs/JsonSerializer.d.ts.map +1 -1
  50. package/dist/cjs/JsonSerializer.js +46 -34
  51. package/dist/cjs/JsonSerializer.js.map +1 -1
  52. package/dist/cjs/TimeOnly.d.ts +13 -0
  53. package/dist/cjs/TimeOnly.d.ts.map +1 -0
  54. package/dist/cjs/TimeOnly.js +63 -0
  55. package/dist/cjs/TimeOnly.js.map +1 -0
  56. package/dist/cjs/TimeSpan.d.ts +2 -0
  57. package/dist/cjs/TimeSpan.d.ts.map +1 -1
  58. package/dist/cjs/TimeSpan.js +2 -0
  59. package/dist/cjs/TimeSpan.js.map +1 -1
  60. package/dist/cjs/ValueMap.d.ts +2 -0
  61. package/dist/cjs/ValueMap.d.ts.map +1 -1
  62. package/dist/cjs/ValueMap.js +3 -0
  63. package/dist/cjs/ValueMap.js.map +1 -1
  64. package/dist/cjs/duplicateInstanceGuard.d.ts +2 -0
  65. package/dist/cjs/duplicateInstanceGuard.d.ts.map +1 -0
  66. package/dist/cjs/duplicateInstanceGuard.js +53 -0
  67. package/dist/cjs/duplicateInstanceGuard.js.map +1 -0
  68. package/dist/cjs/geospatial/LineString.d.ts +2 -0
  69. package/dist/cjs/geospatial/LineString.d.ts.map +1 -1
  70. package/dist/cjs/geospatial/LineString.js +3 -0
  71. package/dist/cjs/geospatial/LineString.js.map +1 -1
  72. package/dist/cjs/geospatial/Point.d.ts +2 -0
  73. package/dist/cjs/geospatial/Point.d.ts.map +1 -1
  74. package/dist/cjs/geospatial/Point.js +2 -0
  75. package/dist/cjs/geospatial/Point.js.map +1 -1
  76. package/dist/cjs/geospatial/Polygon.d.ts +2 -0
  77. package/dist/cjs/geospatial/Polygon.d.ts.map +1 -1
  78. package/dist/cjs/geospatial/Polygon.js +3 -0
  79. package/dist/cjs/geospatial/Polygon.js.map +1 -1
  80. package/dist/cjs/geospatial/index.js +14 -0
  81. package/dist/cjs/geospatial/index.js.map +1 -0
  82. package/dist/cjs/index.d.ts +3 -0
  83. package/dist/cjs/index.d.ts.map +1 -1
  84. package/dist/cjs/index.js +14 -0
  85. package/dist/cjs/index.js.map +1 -1
  86. package/dist/cjs/json/DateOnlyJsonConverter.d.ts +9 -0
  87. package/dist/cjs/json/DateOnlyJsonConverter.d.ts.map +1 -0
  88. package/dist/cjs/json/DateOnlyJsonConverter.js +19 -0
  89. package/dist/cjs/json/DateOnlyJsonConverter.js.map +1 -0
  90. package/dist/cjs/json/JsonConverter.d.ts.map +1 -1
  91. package/dist/cjs/json/JsonConverter.js.map +1 -1
  92. package/dist/cjs/json/TimeOnlyJsonConverter.d.ts +9 -0
  93. package/dist/cjs/json/TimeOnlyJsonConverter.d.ts.map +1 -0
  94. package/dist/cjs/json/TimeOnlyJsonConverter.js +19 -0
  95. package/dist/cjs/json/TimeOnlyJsonConverter.js.map +1 -0
  96. package/dist/cjs/json/index.d.ts +2 -0
  97. package/dist/cjs/json/index.d.ts.map +1 -1
  98. package/dist/cjs/json/index.js +26 -0
  99. package/dist/cjs/json/index.js.map +1 -0
  100. package/dist/cjs/typeKey.d.ts +7 -0
  101. package/dist/cjs/typeKey.d.ts.map +1 -0
  102. package/dist/cjs/typeKey.js +14 -0
  103. package/dist/cjs/typeKey.js.map +1 -0
  104. package/dist/duplicateInstanceGuard.d.ts +2 -0
  105. package/dist/duplicateInstanceGuard.d.ts.map +1 -0
  106. package/dist/duplicateInstanceGuard.js +49 -0
  107. package/dist/duplicateInstanceGuard.js.map +1 -0
  108. package/dist/esm/ConceptAs.d.ts +2 -0
  109. package/dist/esm/ConceptAs.d.ts.map +1 -1
  110. package/dist/esm/ConceptAs.js +3 -0
  111. package/dist/esm/ConceptAs.js.map +1 -1
  112. package/dist/esm/DateOnly.d.ts +14 -0
  113. package/dist/esm/DateOnly.d.ts.map +1 -0
  114. package/dist/esm/DateOnly.js +54 -0
  115. package/dist/esm/DateOnly.js.map +1 -0
  116. package/dist/esm/Guid.d.ts +2 -0
  117. package/dist/esm/Guid.d.ts.map +1 -1
  118. package/dist/esm/Guid.js +3 -0
  119. package/dist/esm/Guid.js.map +1 -1
  120. package/dist/esm/JsonSerializer.d.ts +2 -0
  121. package/dist/esm/JsonSerializer.d.ts.map +1 -1
  122. package/dist/esm/JsonSerializer.js +46 -34
  123. package/dist/esm/JsonSerializer.js.map +1 -1
  124. package/dist/esm/TimeOnly.d.ts +13 -0
  125. package/dist/esm/TimeOnly.d.ts.map +1 -0
  126. package/dist/esm/TimeOnly.js +61 -0
  127. package/dist/esm/TimeOnly.js.map +1 -0
  128. package/dist/esm/TimeSpan.d.ts +2 -0
  129. package/dist/esm/TimeSpan.d.ts.map +1 -1
  130. package/dist/esm/TimeSpan.js +2 -0
  131. package/dist/esm/TimeSpan.js.map +1 -1
  132. package/dist/esm/ValueMap.d.ts +2 -0
  133. package/dist/esm/ValueMap.d.ts.map +1 -1
  134. package/dist/esm/ValueMap.js +3 -0
  135. package/dist/esm/ValueMap.js.map +1 -1
  136. package/dist/esm/duplicateInstanceGuard.d.ts +2 -0
  137. package/dist/esm/duplicateInstanceGuard.d.ts.map +1 -0
  138. package/dist/esm/duplicateInstanceGuard.js +51 -0
  139. package/dist/esm/duplicateInstanceGuard.js.map +1 -0
  140. package/dist/esm/geospatial/LineString.d.ts +2 -0
  141. package/dist/esm/geospatial/LineString.d.ts.map +1 -1
  142. package/dist/esm/geospatial/LineString.js +3 -0
  143. package/dist/esm/geospatial/LineString.js.map +1 -1
  144. package/dist/esm/geospatial/Point.d.ts +2 -0
  145. package/dist/esm/geospatial/Point.d.ts.map +1 -1
  146. package/dist/esm/geospatial/Point.js +2 -0
  147. package/dist/esm/geospatial/Point.js.map +1 -1
  148. package/dist/esm/geospatial/Polygon.d.ts +2 -0
  149. package/dist/esm/geospatial/Polygon.d.ts.map +1 -1
  150. package/dist/esm/geospatial/Polygon.js +3 -0
  151. package/dist/esm/geospatial/Polygon.js.map +1 -1
  152. package/dist/esm/geospatial/index.js +5 -0
  153. package/dist/esm/geospatial/index.js.map +1 -0
  154. package/dist/esm/index.d.ts +3 -0
  155. package/dist/esm/index.d.ts.map +1 -1
  156. package/dist/esm/index.js +5 -0
  157. package/dist/esm/index.js.map +1 -1
  158. package/dist/esm/json/DateOnlyJsonConverter.d.ts +9 -0
  159. package/dist/esm/json/DateOnlyJsonConverter.d.ts.map +1 -0
  160. package/dist/esm/json/DateOnlyJsonConverter.js +17 -0
  161. package/dist/esm/json/DateOnlyJsonConverter.js.map +1 -0
  162. package/dist/esm/json/JsonConverter.d.ts.map +1 -1
  163. package/dist/esm/json/JsonConverter.js.map +1 -1
  164. package/dist/esm/json/TimeOnlyJsonConverter.d.ts +9 -0
  165. package/dist/esm/json/TimeOnlyJsonConverter.d.ts.map +1 -0
  166. package/dist/esm/json/TimeOnlyJsonConverter.js +17 -0
  167. package/dist/esm/json/TimeOnlyJsonConverter.js.map +1 -0
  168. package/dist/esm/json/index.d.ts +2 -0
  169. package/dist/esm/json/index.d.ts.map +1 -1
  170. package/dist/esm/json/index.js +11 -0
  171. package/dist/esm/json/index.js.map +1 -0
  172. package/dist/esm/typeKey.d.ts +7 -0
  173. package/dist/esm/typeKey.d.ts.map +1 -0
  174. package/dist/esm/typeKey.js +8 -0
  175. package/dist/esm/typeKey.js.map +1 -0
  176. package/dist/geospatial/LineString.d.ts +2 -0
  177. package/dist/geospatial/LineString.d.ts.map +1 -1
  178. package/dist/geospatial/LineString.js +2 -0
  179. package/dist/geospatial/LineString.js.map +1 -1
  180. package/dist/geospatial/Point.d.ts +2 -0
  181. package/dist/geospatial/Point.d.ts.map +1 -1
  182. package/dist/geospatial/Point.js +2 -0
  183. package/dist/geospatial/Point.js.map +1 -1
  184. package/dist/geospatial/Polygon.d.ts +2 -0
  185. package/dist/geospatial/Polygon.d.ts.map +1 -1
  186. package/dist/geospatial/Polygon.js +2 -0
  187. package/dist/geospatial/Polygon.js.map +1 -1
  188. package/dist/index.d.ts +3 -0
  189. package/dist/index.d.ts.map +1 -1
  190. package/dist/index.js +3 -0
  191. package/dist/index.js.map +1 -1
  192. package/dist/json/DateOnlyJsonConverter.d.ts +9 -0
  193. package/dist/json/DateOnlyJsonConverter.d.ts.map +1 -0
  194. package/dist/json/DateOnlyJsonConverter.js +14 -0
  195. package/dist/json/DateOnlyJsonConverter.js.map +1 -0
  196. package/dist/json/JsonConverter.d.ts.map +1 -1
  197. package/dist/json/JsonConverter.js.map +1 -1
  198. package/dist/json/TimeOnlyJsonConverter.d.ts +9 -0
  199. package/dist/json/TimeOnlyJsonConverter.d.ts.map +1 -0
  200. package/dist/json/TimeOnlyJsonConverter.js +14 -0
  201. package/dist/json/TimeOnlyJsonConverter.js.map +1 -0
  202. package/dist/json/index.d.ts +2 -0
  203. package/dist/json/index.d.ts.map +1 -1
  204. package/dist/json/index.js +2 -0
  205. package/dist/json/index.js.map +1 -1
  206. package/dist/tsconfig.tsbuildinfo +1 -1
  207. package/dist/typeKey.d.ts +7 -0
  208. package/dist/typeKey.d.ts.map +1 -0
  209. package/dist/typeKey.js +6 -0
  210. package/dist/typeKey.js.map +1 -0
  211. package/duplicateInstanceGuard.ts +114 -0
  212. package/for_DateOnly/when_parsing_a_calendar_date.ts +13 -0
  213. package/for_DateOnly/when_reading_it_west_of_utc.ts +24 -0
  214. package/for_JsonSerializer/RegisteredConverterTypes.ts +45 -0
  215. package/for_JsonSerializer/when_a_converter_is_registered_for_a_concept.ts +46 -0
  216. package/for_JsonSerializer/when_a_converter_is_registered_for_a_type_that_already_has_one.ts +25 -0
  217. package/for_JsonSerializer/when_a_converter_is_registered_for_a_type_the_package_already_converts.ts +51 -0
  218. package/for_JsonSerializer/when_a_converter_is_registered_for_a_value_map.ts +49 -0
  219. package/for_JsonSerializer/when_a_converter_is_registered_for_an_unknown_type.ts +30 -0
  220. package/for_JsonSerializer/when_a_type_comes_from_another_copy_of_the_package.ts +63 -0
  221. package/for_JsonSerializer/when_deserializing_object_with_absent_collection.ts +36 -0
  222. package/for_JsonSerializer/when_deserializing_temporal_values.ts +31 -0
  223. package/for_JsonSerializer/when_metadata_is_written_by_another_copy_of_the_package.ts +46 -0
  224. package/for_JsonSerializer/when_no_converter_is_registered_for_a_type.ts +32 -0
  225. package/for_JsonSerializer/when_round_tripping_a_value_map_of_primitive_values.ts +35 -0
  226. package/for_JsonSerializer/when_round_tripping_concepts_outside_a_declared_field.ts +39 -0
  227. package/for_TimeOnly/when_parsing_a_time_of_day.ts +17 -0
  228. package/for_TimeOnly/when_parsing_the_shapes_the_server_sends.ts +24 -0
  229. package/for_duplicateInstanceGuard/given/a_realm.ts +62 -0
  230. package/for_duplicateInstanceGuard/when_a_second_copy_is_loaded.ts +28 -0
  231. package/for_duplicateInstanceGuard/when_a_third_copy_is_loaded.ts +20 -0
  232. package/for_duplicateInstanceGuard/when_checking_the_package_manifest.ts +26 -0
  233. package/for_duplicateInstanceGuard/when_one_copy_is_loaded.ts +17 -0
  234. package/for_duplicateInstanceGuard/when_one_copy_registers_more_than_once.ts +20 -0
  235. package/for_duplicateInstanceGuard/when_something_else_holds_the_global_key.ts +25 -0
  236. package/for_duplicateInstanceGuard/when_the_runtime_has_no_console.ts +30 -0
  237. package/geospatial/LineString.ts +3 -0
  238. package/geospatial/Point.ts +3 -0
  239. package/geospatial/Polygon.ts +3 -0
  240. package/index.ts +3 -0
  241. package/json/DateOnlyJsonConverter.ts +28 -0
  242. package/json/JsonConverter.ts +5 -0
  243. package/json/TimeOnlyJsonConverter.ts +28 -0
  244. package/json/index.ts +2 -0
  245. package/package.json +1 -1
  246. package/typeKey.ts +54 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Guid.d.ts","sourceRoot":"","sources":["../Guid.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAoB1C,qBAAa,IAAK,YAAW,UAAU;IAcvB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,SAAS;IAT7D,MAAM,CAAC,QAAQ,CAAC,KAAK,OAA8D;IAEnF,OAAO,CAAC,cAAc,CAAM;gBAOP,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,SAAS;IAsB7D,MAAM,CAAC,MAAM,IAAI,IAAI;IAgCrB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAehC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAUrC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC;IAUtD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAa9B,QAAQ,IAAI,MAAM;IAQlB,MAAM,IAAI,MAAM;CAGnB"}
1
+ {"version":3,"file":"Guid.d.ts","sourceRoot":"","sources":["../Guid.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,qBAAa,IAAK,YAAW,UAAU;IAgBvB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,SAAS;IAf7D,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU;IAMnC,MAAM,CAAC,QAAQ,CAAC,KAAK,OAA8D;IAEnF,OAAO,CAAC,cAAc,CAAM;gBAOP,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,SAAS;IAsB7D,MAAM,CAAC,MAAM,IAAI,IAAI;IAgCrB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAehC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAUrC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC;IAUtD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAa9B,QAAQ,IAAI,MAAM;IAQlB,MAAM,IAAI,MAAM;CAGnB"}
package/dist/Guid.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { typeKey } from './typeKey';
1
2
  const guidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
2
3
  const lookUpTable = [];
3
4
  (() => {
@@ -10,6 +11,7 @@ const getString = (num) => {
10
11
  };
11
12
  export class Guid {
12
13
  bytes;
14
+ static [typeKey] = 'Guid';
13
15
  static empty = new Guid([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
14
16
  _stringVersion = '';
15
17
  constructor(bytes) {
package/dist/Guid.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Guid.js","sourceRoot":"","sources":["../Guid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Guid.js","sourceRoot":"","sources":["../Guid.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { Constructor } from './Constructor';
2
+ import { JsonConverter } from './json';
2
3
  export declare class JsonSerializer {
3
4
  static readonly DerivedTypeIdProperty: string;
5
+ static registerConverter(converter: JsonConverter): void;
4
6
  static serialize(value: any): string;
5
7
  static deserialize<TResult extends object>(targetType: Constructor<TResult>, json: string): TResult;
6
8
  static deserializeArray<TResult extends object>(targetType: Constructor<TResult>, json: string): TResult[];
@@ -1 +1 @@
1
- {"version":3,"file":"JsonSerializer.d.ts","sourceRoot":"","sources":["../JsonSerializer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAgR5C,qBAAa,cAAc;IACvB,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAoB;IAOjE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;IAWpC,MAAM,CAAC,WAAW,CAAC,OAAO,SAAS,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAWnG,MAAM,CAAC,gBAAgB,CAAC,OAAO,SAAS,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE;IAW1G,MAAM,CAAC,uBAAuB,CAAC,OAAO,SAAS,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO;IAkDhH,MAAM,CAAC,4BAA4B,CAAC,OAAO,SAAS,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,EAAE;CAS3H"}
1
+ {"version":3,"file":"JsonSerializer.d.ts","sourceRoot":"","sources":["../JsonSerializer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO5C,OAAO,EACH,aAAa,EAUhB,MAAM,QAAQ,CAAC;AAsShB,qBAAa,cAAc;IACvB,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAoB;IAmBjE,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI;IASxD,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM;IAWpC,MAAM,CAAC,WAAW,CAAC,OAAO,SAAS,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAWnG,MAAM,CAAC,gBAAgB,CAAC,OAAO,SAAS,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE;IAW1G,MAAM,CAAC,uBAAuB,CAAC,OAAO,SAAS,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO;IA2DhH,MAAM,CAAC,4BAA4B,CAAC,OAAO,SAAS,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,EAAE;CAS3H"}
@@ -1,23 +1,39 @@
1
- import { ConceptAs } from './ConceptAs';
2
1
  import { DerivedType } from './DerivedType';
2
+ import { registerModuleInstance } from './duplicateInstanceGuard';
3
3
  import { Fields } from './Fields';
4
+ import { conceptAsTypeKey, declaredTypeKey, typeKeyOf, valueMapTypeKey } from './typeKey';
4
5
  import { ValueMap } from './ValueMap';
5
- import { DateJsonConverter, GuidJsonConverter, TimeSpanJsonConverter, PointJsonConverter, LineStringJsonConverter, PolygonJsonConverter, ValueMapJsonConverter } from './json';
6
+ import { DateJsonConverter, DateOnlyJsonConverter, GuidJsonConverter, TimeOnlyJsonConverter, TimeSpanJsonConverter, PointJsonConverter, LineStringJsonConverter, PolygonJsonConverter, ValueMapJsonConverter } from './json';
7
+ registerModuleInstance();
6
8
  const converters = [
7
9
  new DateJsonConverter(),
10
+ new DateOnlyJsonConverter(),
8
11
  new GuidJsonConverter(),
12
+ new TimeOnlyJsonConverter(),
9
13
  new TimeSpanJsonConverter(),
10
14
  new PointJsonConverter(),
11
15
  new LineStringJsonConverter(),
12
16
  new PolygonJsonConverter(),
13
17
  new ValueMapJsonConverter()
14
18
  ];
19
+ const keyedConverters = new Map();
15
20
  const typeConverters = new Map();
16
- const typeSerializers = new Map();
17
- for (const converter of converters) {
21
+ const registerConverterFor = (converter) => {
22
+ const key = declaredTypeKey(converter.type);
23
+ if (key !== undefined) {
24
+ keyedConverters.set(key, converter);
25
+ }
18
26
  typeConverters.set(converter.type, converter);
19
- typeSerializers.set(converter.type, converter);
20
- }
27
+ };
28
+ converters.forEach(registerConverterFor);
29
+ const converterFor = (type) => {
30
+ if (!type)
31
+ return undefined;
32
+ const key = declaredTypeKey(type);
33
+ const keyed = key === undefined ? undefined : keyedConverters.get(key);
34
+ return keyed ?? typeConverters.get(type);
35
+ };
36
+ const isValueMap = (type) => declaredTypeKey(type) === valueMapTypeKey;
21
37
  const primitiveConverters = new Map([
22
38
  [Number, (value) => value],
23
39
  [String, (value) => value],
@@ -28,27 +44,16 @@ const primitiveSerializers = new Map([
28
44
  [String, (value) => value],
29
45
  [Boolean, (value) => value]
30
46
  ]);
31
- const isConceptAs = (type) => {
32
- if (!type || !type.prototype)
33
- return false;
34
- let proto = type.prototype;
35
- while (proto) {
36
- if (proto === ConceptAs.prototype) {
37
- return true;
38
- }
39
- proto = Object.getPrototypeOf(proto);
40
- }
41
- return false;
42
- };
47
+ const isConceptAs = (type) => typeKeyOf(type) === conceptAsTypeKey;
43
48
  const serializeValueForType = (type, value) => {
44
49
  if (!value)
45
50
  return value;
46
- if (value instanceof ConceptAs) {
51
+ if (isConceptAs(value.constructor)) {
47
52
  const innerValue = value.value;
48
53
  return serializeValueForType(innerValue.constructor, innerValue);
49
54
  }
50
- if (typeConverters.has(type)) {
51
- const converter = typeConverters.get(type);
55
+ const converter = converterFor(type);
56
+ if (converter) {
52
57
  return converter.write(value);
53
58
  }
54
59
  if (primitiveConverters.has(type)) {
@@ -60,8 +65,8 @@ const deserializeValueFromType = (type, value) => {
60
65
  if (isConceptAs(type)) {
61
66
  return new type(value);
62
67
  }
63
- if (typeSerializers.has(type)) {
64
- const converter = typeSerializers.get(type);
68
+ const converter = converterFor(type);
69
+ if (converter) {
65
70
  return converter.read(value);
66
71
  }
67
72
  if (primitiveSerializers.has(type)) {
@@ -70,14 +75,14 @@ const deserializeValueFromType = (type, value) => {
70
75
  return JsonSerializer.deserialize(type, JSON.stringify(value));
71
76
  };
72
77
  const deserializeValueFromField = (field, value) => {
73
- if (field.type === ValueMap) {
78
+ if (isValueMap(field.type)) {
74
79
  return deserializeValueMapFromField(field, value);
75
80
  }
76
81
  if (isConceptAs(field.type)) {
77
82
  return new field.type(value);
78
83
  }
79
- if (typeSerializers.has(field.type)) {
80
- const converter = typeSerializers.get(field.type);
84
+ const converter = converterFor(field.type);
85
+ if (converter) {
81
86
  return converter.read(value);
82
87
  }
83
88
  if (primitiveSerializers.has(field.type)) {
@@ -116,8 +121,8 @@ const deserializeMapKey = (keyType, key) => {
116
121
  if (keyType === Boolean) {
117
122
  return key.toLowerCase() === 'true';
118
123
  }
119
- if (typeSerializers.has(keyType)) {
120
- const converter = typeSerializers.get(keyType);
124
+ const converter = converterFor(keyType);
125
+ if (converter) {
121
126
  return converter.read(key);
122
127
  }
123
128
  return JsonSerializer.deserialize(keyType, key);
@@ -126,11 +131,7 @@ const deserializeMapValue = (valueType, value) => {
126
131
  if (!valueType) {
127
132
  return value;
128
133
  }
129
- if (typeSerializers.has(valueType)) {
130
- const converter = typeSerializers.get(valueType);
131
- return converter.read(value);
132
- }
133
- return JsonSerializer.deserialize(valueType, JSON.stringify(value));
134
+ return deserializeValueFromType(valueType, value);
134
135
  };
135
136
  const deserializeValueMapFromField = (field, value) => {
136
137
  const valueMap = new ValueMap();
@@ -147,7 +148,10 @@ const deserializeValueMapFromField = (field, value) => {
147
148
  return valueMap;
148
149
  };
149
150
  const convertTypesOnInstance = (instance) => {
150
- if (typeConverters.has(instance.constructor)) {
151
+ if (isConceptAs(instance.constructor)) {
152
+ return serializeValueForType(instance.constructor, instance);
153
+ }
154
+ if (converterFor(instance.constructor)) {
151
155
  return serializeValueForType(instance.constructor, instance);
152
156
  }
153
157
  if (primitiveConverters.has(instance.constructor)) {
@@ -178,6 +182,9 @@ const convertTypesOnInstance = (instance) => {
178
182
  ValueMapJsonConverter.setHelpers(serializeMapKey, convertTypesOnInstance);
179
183
  export class JsonSerializer {
180
184
  static DerivedTypeIdProperty = "_derivedTypeId";
185
+ static registerConverter(converter) {
186
+ registerConverterFor(converter);
187
+ }
181
188
  static serialize(value) {
182
189
  const converted = convertTypesOnInstance(value);
183
190
  return JSON.stringify(converted);
@@ -192,7 +199,7 @@ export class JsonSerializer {
192
199
  }
193
200
  static deserializeFromInstance(targetType, instance) {
194
201
  const fields = Fields.getFieldsForType(targetType);
195
- if (typeSerializers.has(targetType)) {
202
+ if (converterFor(targetType)) {
196
203
  return deserializeValueFromType(targetType, instance);
197
204
  }
198
205
  const deserialized = new targetType();
@@ -206,6 +213,9 @@ export class JsonSerializer {
206
213
  value = deserializeValueFromField(field, value);
207
214
  }
208
215
  }
216
+ else if (field.enumerable && value === undefined) {
217
+ value = [];
218
+ }
209
219
  deserialized[field.name] = value;
210
220
  }
211
221
  const derivedTypeId = instance[JsonSerializer.DerivedTypeIdProperty];
@@ -1 +1 @@
1
- {"version":3,"file":"JsonSerializer.js","sourceRoot":"","sources":["../JsonSerializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonSerializer.js","sourceRoot":"","sources":["../JsonSerializer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAEH,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACxB,MAAM,QAAQ,CAAC;AAWhB,sBAAsB,EAAE,CAAC;AAGzB,MAAM,UAAU,GAAoB;IAChC,IAAI,iBAAiB,EAAE;IACvB,IAAI,qBAAqB,EAAE;IAC3B,IAAI,iBAAiB,EAAE;IACvB,IAAI,qBAAqB,EAAE;IAC3B,IAAI,qBAAqB,EAAE;IAC3B,IAAI,kBAAkB,EAAE;IACxB,IAAI,uBAAuB,EAAE;IAC7B,IAAI,oBAAoB,EAAE;IAC1B,IAAI,qBAAqB,EAAE;CAC9B,CAAC;AAOF,MAAM,eAAe,GAA+B,IAAI,GAAG,EAAyB,CAAC;AACrF,MAAM,cAAc,GAAoC,IAAI,GAAG,EAA8B,CAAC;AAE9F,MAAM,oBAAoB,GAAG,CAAC,SAAwB,EAAE,EAAE;IACtD,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACpB,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAOzC,MAAM,YAAY,GAAG,CAAC,IAA6B,EAA6B,EAAE;IAC9E,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvE,OAAO,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC,CAAC;AAOF,MAAM,UAAU,GAAG,CAAC,IAA6B,EAAW,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC;AAGzG,MAAM,mBAAmB,GAAqC,IAAI,GAAG,CAA8B;IAC/F,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC;IAClC,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC;IAClC,CAAC,OAAO,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAqC,IAAI,GAAG,CAA8B;IAChG,CAAC,MAAM,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC;IAC/B,CAAC,MAAM,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC;IAC/B,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC;CACnC,CAAC,CAAC;AAWH,MAAM,WAAW,GAAG,CAAC,IAAiB,EAAW,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,gBAAgB,CAAC;AAEzF,MAAM,qBAAqB,GAAG,CAAC,IAAiB,EAAE,KAAU,EAAE,EAAE;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAIzB,IAAI,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAG/B,OAAO,qBAAqB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;IAGD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAGD,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,IAAiB,EAAE,KAAU,EAAE,EAAE;IAE/D,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAGD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAGD,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,KAAY,EAAE,KAAU,EAAE,EAAE;IAC3D,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,4BAA4B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAGD,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAGD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAGD,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACtB,IAAI,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACzF,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,IAAI,IAAI,CAAC;IAC7E,CAAC;IAED,OAAO,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,GAAQ,EAAU,EAAE;IACzC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACjF,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,OAAoB,EAAE,GAAW,EAAO,EAAE;IACjE,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IACxC,CAAC;IAGD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,SAAkC,EAAE,KAAU,EAAO,EAAE;IAChF,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACjB,CAAC;IAMD,OAAO,wBAAwB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG,CAAC,KAAY,EAAE,KAAU,EAAsB,EAAE;IAClF,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAY,CAAC;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE5C,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,eAAe,GAAG,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACrE,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,QAAa,EAAE,EAAE;IAK7C,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,WAA0B,EAAE,QAAQ,CAAC,CAAC;IAChF,CAAC;IAGD,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IAGD,IAAI,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAChD,OAAO,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAE,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,SAAS,GAAQ,EAAE,CAAC;IAO1B,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAC9G,IAAI,aAAa,EAAE,CAAC;QAChB,SAAS,CAAC,cAAc,CAAC,qBAAqB,CAAC,GAAG,aAAa,CAAC;IACpE,CAAC;IACD,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAE1B,IAAI,QAAQ,KAAK,cAAc,CAAC,qBAAqB;YAAE,OAAO;QAC9D,IAAI,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACJ,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACtE,CAAC;QACL,CAAC;QAED,SAAS,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAIF,qBAAqB,CAAC,UAAU,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;AAK1E,MAAM,OAAO,cAAc;IACvB,MAAM,CAAU,qBAAqB,GAAW,gBAAgB,CAAC;IAmBjE,MAAM,CAAC,iBAAiB,CAAC,SAAwB;QAC7C,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAOD,MAAM,CAAC,SAAS,CAAC,KAAU;QACvB,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAQD,MAAM,CAAC,WAAW,CAAyB,UAAgC,EAAE,IAAY;QACrF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,uBAAuB,CAAU,UAAU,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAQD,MAAM,CAAC,gBAAgB,CAAyB,UAAgC,EAAE,IAAY;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,4BAA4B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAQD,MAAM,CAAC,uBAAuB,CAAyB,UAAgC,EAAE,QAAa;QAClG,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAyB,CAAC,CAAC;QAElE,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,UAAU,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oBACnB,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,yBAAyB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACJ,KAAK,GAAG,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACpD,CAAC;YACL,CAAC;iBAAM,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAQjD,KAAK,GAAG,EAAE,CAAC;YACf,CAAC;YAED,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACrC,CAAC;QAOD,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;QACrE,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YACvD,YAAwC,CAAC,cAAc,CAAC,qBAAqB,CAAC,GAAG,aAAa,CAAC;QACpG,CAAC;QAED,IAAK,UAA0B,IAAI,MAAM,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YAEH,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;gBAC/B,YAAY,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAQD,MAAM,CAAC,4BAA4B,CAAyB,UAAgC,EAAE,SAAc;QACxG,MAAM,YAAY,GAAc,EAAE,CAAC;QAEnC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAU,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnF,CAAC;QAED,OAAO,YAAY,CAAC;IACxB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { typeKey } from './typeKey';
2
+ export declare class TimeOnly {
3
+ static readonly [typeKey] = "TimeOnly";
4
+ hour: number;
5
+ minute: number;
6
+ second: number;
7
+ millisecond: number;
8
+ static from(hour: number, minute: number, second?: number, millisecond?: number): TimeOnly;
9
+ static parse(value: string): TimeOnly;
10
+ toString(): string;
11
+ equals(other: TimeOnly | undefined | null): boolean;
12
+ }
13
+ //# sourceMappingURL=TimeOnly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeOnly.d.ts","sourceRoot":"","sources":["../TimeOnly.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,qBAAa,QAAQ;IACjB,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,cAAc;IAMvC,IAAI,EAAG,MAAM,CAAC;IAMd,MAAM,EAAG,MAAM,CAAC;IAMhB,MAAM,EAAG,MAAM,CAAC;IAMhB,WAAW,EAAG,MAAM,CAAC;IAUrB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,EAAE,WAAW,GAAE,MAAU,GAAG,QAAQ;IAkBhG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAmBrC,QAAQ,IAAI,MAAM;IAalB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO;CAOtD"}
@@ -0,0 +1,58 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { field } from './fieldDecorator';
3
+ import { typeKey } from './typeKey';
4
+ const timeOnlyRegex = /^(\d{2}):(\d{2})(?::(\d{2}))?(?:\.(\d{1,7}))?$/;
5
+ export class TimeOnly {
6
+ static [typeKey] = 'TimeOnly';
7
+ hour;
8
+ minute;
9
+ second;
10
+ millisecond;
11
+ static from(hour, minute, second = 0, millisecond = 0) {
12
+ const timeOnly = new TimeOnly();
13
+ timeOnly.hour = hour;
14
+ timeOnly.minute = minute;
15
+ timeOnly.second = second;
16
+ timeOnly.millisecond = millisecond;
17
+ return timeOnly;
18
+ }
19
+ static parse(value) {
20
+ const match = timeOnlyRegex.exec(value);
21
+ if (match === null) {
22
+ throw new Error(`Invalid TimeOnly format: ${value}`);
23
+ }
24
+ const fraction = match[4] ? match[4].padEnd(3, '0').substring(0, 3) : '0';
25
+ return TimeOnly.from(parseInt(match[1], 10), parseInt(match[2], 10), match[3] ? parseInt(match[3], 10) : 0, parseInt(fraction, 10));
26
+ }
27
+ toString() {
28
+ const hour = this.hour.toString().padStart(2, '0');
29
+ const minute = this.minute.toString().padStart(2, '0');
30
+ const second = this.second.toString().padStart(2, '0');
31
+ const time = `${hour}:${minute}:${second}`;
32
+ return this.millisecond > 0 ? `${time}.${this.millisecond.toString().padStart(3, '0')}` : time;
33
+ }
34
+ equals(other) {
35
+ return !!other &&
36
+ this.hour === other.hour &&
37
+ this.minute === other.minute &&
38
+ this.second === other.second &&
39
+ this.millisecond === other.millisecond;
40
+ }
41
+ }
42
+ __decorate([
43
+ field(Number),
44
+ __metadata("design:type", Number)
45
+ ], TimeOnly.prototype, "hour", void 0);
46
+ __decorate([
47
+ field(Number),
48
+ __metadata("design:type", Number)
49
+ ], TimeOnly.prototype, "minute", void 0);
50
+ __decorate([
51
+ field(Number),
52
+ __metadata("design:type", Number)
53
+ ], TimeOnly.prototype, "second", void 0);
54
+ __decorate([
55
+ field(Number),
56
+ __metadata("design:type", Number)
57
+ ], TimeOnly.prototype, "millisecond", void 0);
58
+ //# sourceMappingURL=TimeOnly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeOnly.js","sourceRoot":"","sources":["../TimeOnly.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
+ import { typeKey } from './typeKey';
1
2
  export declare class TimeSpan {
3
+ static readonly [typeKey] = "TimeSpan";
2
4
  ticks: number;
3
5
  days: number;
4
6
  hours: number;
@@ -1 +1 @@
1
- {"version":3,"file":"TimeSpan.d.ts","sourceRoot":"","sources":["../TimeSpan.ts"],"names":[],"mappings":"AAUA,qBAAa,QAAQ;IAGjB,KAAK,EAAG,MAAM,CAAC;IAGf,IAAI,EAAG,MAAM,CAAC;IAGd,KAAK,EAAG,MAAM,CAAC;IAGf,YAAY,EAAG,MAAM,CAAC;IAGtB,YAAY,EAAG,MAAM,CAAC;IAGtB,WAAW,EAAG,MAAM,CAAC;IAGrB,OAAO,EAAG,MAAM,CAAC;IAGjB,OAAO,EAAG,MAAM,CAAC;IAGjB,SAAS,EAAG,MAAM,CAAC;IAGnB,UAAU,EAAG,MAAM,CAAC;IAGpB,iBAAiB,EAAG,MAAM,CAAC;IAG3B,iBAAiB,EAAG,MAAM,CAAC;IAG3B,gBAAgB,EAAG,MAAM,CAAC;IAG1B,YAAY,EAAG,MAAM,CAAC;IAGtB,YAAY,EAAG,MAAM,CAAC;IAStB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAoDrC,QAAQ,IAAI,MAAM;IA0ClB,MAAM,IAAI,MAAM;CAGnB"}
1
+ {"version":3,"file":"TimeSpan.d.ts","sourceRoot":"","sources":["../TimeSpan.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,qBAAa,QAAQ;IACjB,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,cAAc;IAIvC,KAAK,EAAG,MAAM,CAAC;IAGf,IAAI,EAAG,MAAM,CAAC;IAGd,KAAK,EAAG,MAAM,CAAC;IAGf,YAAY,EAAG,MAAM,CAAC;IAGtB,YAAY,EAAG,MAAM,CAAC;IAGtB,WAAW,EAAG,MAAM,CAAC;IAGrB,OAAO,EAAG,MAAM,CAAC;IAGjB,OAAO,EAAG,MAAM,CAAC;IAGjB,SAAS,EAAG,MAAM,CAAC;IAGnB,UAAU,EAAG,MAAM,CAAC;IAGpB,iBAAiB,EAAG,MAAM,CAAC;IAG3B,iBAAiB,EAAG,MAAM,CAAC;IAG3B,gBAAgB,EAAG,MAAM,CAAC;IAG1B,YAAY,EAAG,MAAM,CAAC;IAGtB,YAAY,EAAG,MAAM,CAAC;IAStB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAoDrC,QAAQ,IAAI,MAAM;IA0ClB,MAAM,IAAI,MAAM;CAGnB"}
package/dist/TimeSpan.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
+ import { typeKey } from './typeKey';
2
3
  import { field } from './fieldDecorator';
3
4
  const timeSpanRegex = /^(-)?(?:(\d+)\.)?(\d{1,2}):(\d{2}):(\d{2})(?:\.(\d{1,7}))?$/;
4
5
  export class TimeSpan {
6
+ static [typeKey] = 'TimeSpan';
5
7
  ticks;
6
8
  days;
7
9
  hours;
@@ -1 +1 @@
1
- {"version":3,"file":"TimeSpan.js","sourceRoot":"","sources":["../TimeSpan.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,aAAa,GAAG,6DAA6D,CAAC;AAKpF,MAAM,OAAO,QAAQ;IAGjB,KAAK,CAAU;IAGf,IAAI,CAAU;IAGd,KAAK,CAAU;IAGf,YAAY,CAAU;IAGtB,YAAY,CAAU;IAGtB,WAAW,CAAU;IAGrB,OAAO,CAAU;IAGjB,OAAO,CAAU;IAGjB,SAAS,CAAU;IAGnB,UAAU,CAAU;IAGpB,iBAAiB,CAAU;IAG3B,iBAAiB,CAAU;IAG3B,gBAAgB,CAAU;IAG1B,YAAY,CAAU;IAGtB,YAAY,CAAU;IAStB,MAAM,CAAC,KAAK,CAAC,KAAa;QACtB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzE,MAAM,WAAW,GAAG,YAAY,CAAC;QACjC,MAAM,YAAY,GAAG,WAAW,CAAC;QACjC,MAAM,cAAc,GAAG,SAAS,CAAC;QACjC,MAAM,cAAc,GAAG,QAAQ,CAAC;QAEhC,MAAM,KAAK,GACP,IAAI,GAAG,WAAW;YAClB,KAAK,GAAG,YAAY;YACpB,OAAO,GAAG,cAAc;YACxB,OAAO,GAAG,cAAc;YACxB,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAEpC,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAE/C,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC;QAC5B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;QACxE,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5E,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5E,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1E,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACvE,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;QACrE,QAAQ,CAAC,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;QAC9C,QAAQ,CAAC,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;QAChD,QAAQ,CAAC,YAAY,GAAG,UAAU,GAAG,cAAc,CAAC;QACpD,QAAQ,CAAC,YAAY,GAAG,UAAU,GAAG,cAAc,CAAC;QACpD,QAAQ,CAAC,iBAAiB,GAAG,UAAU,GAAG,KAAK,CAAC;QAChD,QAAQ,CAAC,iBAAiB,GAAG,UAAU,GAAG,EAAE,CAAC;QAC7C,QAAQ,CAAC,gBAAgB,GAAG,UAAU,GAAG,GAAG,CAAC;QAE7C,OAAO,QAAQ,CAAC;IACpB,CAAC;IAOD,QAAQ;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtC,MAAM,WAAW,GAAG,YAAY,CAAC;QACjC,MAAM,YAAY,GAAG,WAAW,CAAC;QACjC,MAAM,cAAc,GAAG,SAAS,CAAC;QACjC,MAAM,cAAc,GAAG,QAAQ,CAAC;QAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,QAAQ,GAAG,cAAc,CAAC;QAElD,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,UAAU,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAErD,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrF,KAAK,CAAC,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAOD,MAAM;QACF,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;CACJ;AApJG;IADC,KAAK,CAAC,MAAM,CAAC;;uCACC;AAGf;IADC,KAAK,CAAC,MAAM,CAAC;;sCACA;AAGd;IADC,KAAK,CAAC,MAAM,CAAC;;uCACC;AAGf;IADC,KAAK,CAAC,MAAM,CAAC;;8CACQ;AAGtB;IADC,KAAK,CAAC,MAAM,CAAC;;8CACQ;AAGtB;IADC,KAAK,CAAC,MAAM,CAAC;;6CACO;AAGrB;IADC,KAAK,CAAC,MAAM,CAAC;;yCACG;AAGjB;IADC,KAAK,CAAC,MAAM,CAAC;;yCACG;AAGjB;IADC,KAAK,CAAC,MAAM,CAAC;;2CACK;AAGnB;IADC,KAAK,CAAC,MAAM,CAAC;;4CACM;AAGpB;IADC,KAAK,CAAC,MAAM,CAAC;;mDACa;AAG3B;IADC,KAAK,CAAC,MAAM,CAAC;;mDACa;AAG3B;IADC,KAAK,CAAC,MAAM,CAAC;;kDACY;AAG1B;IADC,KAAK,CAAC,MAAM,CAAC;;8CACQ;AAGtB;IADC,KAAK,CAAC,MAAM,CAAC;;8CACQ"}
1
+ {"version":3,"file":"TimeSpan.js","sourceRoot":"","sources":["../TimeSpan.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
+ import { typeKey } from './typeKey';
1
2
  export declare class ValueMap<TKey, TValue> {
3
+ static readonly [typeKey] = "ValueMap";
2
4
  private readonly _entries;
3
5
  set(key: TKey, value: TValue): this;
4
6
  get(key: TKey): TValue | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ValueMap.d.ts","sourceRoot":"","sources":["../ValueMap.ts"],"names":[],"mappings":"AAMA,qBAAa,QAAQ,CAAC,IAAI,EAAE,MAAM;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAStD,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBnC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS;IASlC,OAAO,IAAI,gBAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAI3C,OAAO,CAAC,MAAM;CAejB"}
1
+ {"version":3,"file":"ValueMap.d.ts","sourceRoot":"","sources":["../ValueMap.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,qBAAa,QAAQ,CAAC,IAAI,EAAE,MAAM;IAC9B,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,cAAc;IAEvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAStD,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBnC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS;IASlC,OAAO,IAAI,gBAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAI3C,OAAO,CAAC,MAAM;CAejB"}
package/dist/ValueMap.js CHANGED
@@ -1,4 +1,6 @@
1
+ import { typeKey } from './typeKey';
1
2
  export class ValueMap {
3
+ static [typeKey] = 'ValueMap';
2
4
  _entries = [];
3
5
  set(key, value) {
4
6
  const index = this._entries.findIndex(([existingKey]) => this.equals(existingKey, key));
@@ -1 +1 @@
1
- {"version":3,"file":"ValueMap.js","sourceRoot":"","sources":["../ValueMap.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,QAAQ;IACA,QAAQ,GAA0B,EAAE,CAAC;IAStD,GAAG,CAAC,GAAS,EAAE,KAAa;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;QACxF,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACpC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAQD,GAAG,CAAC,GAAS;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IAOD,OAAO;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAEO,MAAM,CAAC,KAAW,EAAE,MAAY;QACpC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACnF,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
1
+ {"version":3,"file":"ValueMap.js","sourceRoot":"","sources":["../ValueMap.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,MAAM,OAAO,QAAQ;IACjB,MAAM,CAAU,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;IAEtB,QAAQ,GAA0B,EAAE,CAAC;IAStD,GAAG,CAAC,GAAS,EAAE,KAAa;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;QACxF,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACpC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAQD,GAAG,CAAC,GAAS;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IAOD,OAAO;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAEO,MAAM,CAAC,KAAW,EAAE,MAAY;QACpC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACnF,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC"}
@@ -1,5 +1,7 @@
1
+ import { typeKey } from './typeKey';
1
2
  export declare abstract class ConceptAs<T> {
2
3
  readonly value: T;
4
+ static readonly [typeKey] = "ConceptAs";
3
5
  constructor(value: T);
4
6
  valueOf(): T;
5
7
  toString(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"ConceptAs.d.ts","sourceRoot":"","sources":["../../ConceptAs.ts"],"names":[],"mappings":"AAOA,8BAAsB,SAAS,CAAC,CAAC;IAKjB,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAAR,KAAK,EAAE,CAAC;IAM7B,OAAO,IAAI,CAAC;IAQZ,QAAQ,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"ConceptAs.d.ts","sourceRoot":"","sources":["../../ConceptAs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,8BAAsB,SAAS,CAAC,CAAC;IAOjB,QAAQ,CAAC,KAAK,EAAE,CAAC;IAN7B,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,eAAe;gBAMnB,KAAK,EAAE,CAAC;IAM7B,OAAO,IAAI,CAAC;IAQZ,QAAQ,IAAI,MAAM;CAGrB"}
@@ -1,7 +1,10 @@
1
1
  'use strict';
2
2
 
3
+ var typeKey = require('./typeKey.js');
4
+
3
5
  class ConceptAs {
4
6
  value;
7
+ static [typeKey.typeKey] = 'ConceptAs';
5
8
  constructor(value) {
6
9
  this.value = value;
7
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConceptAs.js","sources":["../../ConceptAs.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/**\n * Expresses a Concept as another type, usually a primitive such as string or number.\n * @template T The type of the underlying value.\n */\nexport abstract class ConceptAs<T> {\n /**\n * Initializes a new instance of ConceptAs.\n * @param {T} value The value to initialize the concept with.\n */\n constructor(readonly value: T) {}\n\n /**\n * Returns the primitive value of the concept.\n * @returns {T} The underlying value.\n */\n valueOf(): T {\n return this.value;\n }\n\n /**\n * Returns the string representation of the concept.\n * @returns {string} String representation of the underlying value.\n */\n toString(): string {\n return String(this.value);\n }\n}\n"],"names":[],"mappings":";;MAOsB,SAAS,CAAA;AAKN,IAAA,KAAA;AAArB,IAAA,WAAA,CAAqB,KAAQ,EAAA;QAAR,IAAA,CAAA,KAAK,GAAL,KAAK;IAAM;IAMhC,OAAO,GAAA;QACH,OAAO,IAAI,CAAC,KAAK;IACrB;IAMA,QAAQ,GAAA;AACJ,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B;AACH;;;;"}
1
+ {"version":3,"file":"ConceptAs.js","sources":["../../ConceptAs.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nimport { typeKey } from './typeKey';\n\n/**\n * Expresses a Concept as another type, usually a primitive such as string or number.\n * @template T The type of the underlying value.\n */\nexport abstract class ConceptAs<T> {\n static readonly [typeKey] = 'ConceptAs';\n\n /**\n * Initializes a new instance of ConceptAs.\n * @param {T} value The value to initialize the concept with.\n */\n constructor(readonly value: T) {}\n\n /**\n * Returns the primitive value of the concept.\n * @returns {T} The underlying value.\n */\n valueOf(): T {\n return this.value;\n }\n\n /**\n * Returns the string representation of the concept.\n * @returns {string} String representation of the underlying value.\n */\n toString(): string {\n return String(this.value);\n }\n}\n"],"names":["typeKey"],"mappings":";;;;MAQsB,SAAS,CAAA;AAON,IAAA,KAAA;AANrB,IAAA,QAAiBA,eAAO,IAAI,WAAW;AAMvC,IAAA,WAAA,CAAqB,KAAQ,EAAA;QAAR,IAAA,CAAA,KAAK,GAAL,KAAK;IAAM;IAMhC,OAAO,GAAA;QACH,OAAO,IAAI,CAAC,KAAK;IACrB;IAMA,QAAQ,GAAA;AACJ,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B;;;;;"}
@@ -0,0 +1,14 @@
1
+ import { typeKey } from './typeKey';
2
+ export declare class DateOnly {
3
+ static readonly [typeKey] = "DateOnly";
4
+ year: number;
5
+ month: number;
6
+ day: number;
7
+ static from(year: number, month: number, day: number): DateOnly;
8
+ static parse(value: string): DateOnly;
9
+ static fromDate(date: Date): DateOnly;
10
+ toDate(): Date;
11
+ toString(): string;
12
+ equals(other: DateOnly | undefined | null): boolean;
13
+ }
14
+ //# sourceMappingURL=DateOnly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateOnly.d.ts","sourceRoot":"","sources":["../../DateOnly.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,qBAAa,QAAQ;IACjB,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,cAAc;IAMvC,IAAI,EAAG,MAAM,CAAC;IAMd,KAAK,EAAG,MAAM,CAAC;IAMf,GAAG,EAAG,MAAM,CAAC;IASb,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ;IAa/D,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ;IAiBrC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ;IAWrC,MAAM,IAAI,IAAI;IAQd,QAAQ,IAAI,MAAM;IAWlB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO;CAGtD"}
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ var _tslib = require('./_virtual/_tslib.js');
4
+ var fieldDecorator = require('./fieldDecorator.js');
5
+ var typeKey = require('./typeKey.js');
6
+
7
+ const dateOnlyRegex = /^(\d{4})-(\d{2})-(\d{2})$/;
8
+ class DateOnly {
9
+ static [typeKey.typeKey] = 'DateOnly';
10
+ year;
11
+ month;
12
+ day;
13
+ static from(year, month, day) {
14
+ const dateOnly = new DateOnly();
15
+ dateOnly.year = year;
16
+ dateOnly.month = month;
17
+ dateOnly.day = day;
18
+ return dateOnly;
19
+ }
20
+ static parse(value) {
21
+ const match = dateOnlyRegex.exec(value);
22
+ if (match === null) {
23
+ throw new Error(`Invalid DateOnly format: ${value}`);
24
+ }
25
+ return DateOnly.from(parseInt(match[1], 10), parseInt(match[2], 10), parseInt(match[3], 10));
26
+ }
27
+ static fromDate(date) {
28
+ return DateOnly.from(date.getFullYear(), date.getMonth() + 1, date.getDate());
29
+ }
30
+ toDate() {
31
+ return new Date(this.year, this.month - 1, this.day);
32
+ }
33
+ toString() {
34
+ const month = this.month.toString().padStart(2, '0');
35
+ const day = this.day.toString().padStart(2, '0');
36
+ return `${this.year.toString().padStart(4, '0')}-${month}-${day}`;
37
+ }
38
+ equals(other) {
39
+ return !!other && this.year === other.year && this.month === other.month && this.day === other.day;
40
+ }
41
+ }
42
+ _tslib.__decorate([
43
+ fieldDecorator.field(Number),
44
+ _tslib.__metadata("design:type", Number)
45
+ ], DateOnly.prototype, "year", void 0);
46
+ _tslib.__decorate([
47
+ fieldDecorator.field(Number),
48
+ _tslib.__metadata("design:type", Number)
49
+ ], DateOnly.prototype, "month", void 0);
50
+ _tslib.__decorate([
51
+ fieldDecorator.field(Number),
52
+ _tslib.__metadata("design:type", Number)
53
+ ], DateOnly.prototype, "day", void 0);
54
+
55
+ exports.DateOnly = DateOnly;
56
+ //# sourceMappingURL=DateOnly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateOnly.js","sources":["../../DateOnly.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { field } from './fieldDecorator';\nimport { typeKey } from './typeKey';\n\nconst dateOnlyRegex = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\n\n/**\n * Represents a date with no time and no time zone - a day on a calendar.\n * @remarks\n * Deliberately not a JavaScript `Date`. A `Date` is an instant, and a calendar date is not one: turning\n * `2026-05-12` into a `Date` produces UTC midnight, which every browser-local getter west of UTC reads back as\n * the 11th. That is a wrong answer that looks right, and it is only wrong for users in some time zones - which is\n * how it survives development in others.\n *\n * Holding the three parts the server sent means there is no instant to convert and nothing to shift. Where a\n * `Date` is genuinely wanted - to feed a date picker, or to do arithmetic - {@link toDate} constructs one in the\n * local time zone, and the choice is then visible at the call site making it.\n */\nexport class DateOnly {\n static readonly [typeKey] = 'DateOnly';\n\n /**\n * The year.\n */\n @field(Number)\n year!: number;\n\n /**\n * The month, 1 through 12.\n */\n @field(Number)\n month!: number;\n\n /**\n * The day of the month, 1 through 31.\n */\n @field(Number)\n day!: number;\n\n /**\n * Creates a {@link DateOnly} from its parts.\n * @param year The year.\n * @param month The month, 1 through 12.\n * @param day The day of the month.\n * @returns The {@link DateOnly}.\n */\n static from(year: number, month: number, day: number): DateOnly {\n const dateOnly = new DateOnly();\n dateOnly.year = year;\n dateOnly.month = month;\n dateOnly.day = day;\n return dateOnly;\n }\n\n /**\n * Parses the ISO-8601 calendar date the server sends, `yyyy-MM-dd`.\n * @param value The value to parse.\n * @returns The {@link DateOnly}.\n */\n static parse(value: string): DateOnly {\n const match = dateOnlyRegex.exec(value);\n if (match === null) {\n throw new Error(`Invalid DateOnly format: ${value}`);\n }\n\n return DateOnly.from(parseInt(match[1], 10), parseInt(match[2], 10), parseInt(match[3], 10));\n }\n\n /**\n * Creates a {@link DateOnly} for the calendar date a {@link Date} falls on in the local time zone.\n * @param date The date to take the calendar date of.\n * @returns The {@link DateOnly}.\n * @remarks\n * Reads the local parts rather than the UTC ones, because the calendar date a moment falls on is a question\n * only a time zone can answer, and the local one is the one the person looking at the screen is in.\n */\n static fromDate(date: Date): DateOnly {\n return DateOnly.from(date.getFullYear(), date.getMonth() + 1, date.getDate());\n }\n\n /**\n * Converts to a {@link Date} at midnight in the local time zone.\n * @returns The {@link Date}.\n * @remarks\n * Local rather than UTC, so the date a caller reads back with `getDate()` is the one they started with. This\n * invents a time that was never sent, which is why it is a method to call rather than what the value is.\n */\n toDate(): Date {\n return new Date(this.year, this.month - 1, this.day);\n }\n\n /**\n * Gets the ISO-8601 representation, `yyyy-MM-dd` - the same form the server sent.\n * @returns The string.\n */\n toString(): string {\n const month = this.month.toString().padStart(2, '0');\n const day = this.day.toString().padStart(2, '0');\n return `${this.year.toString().padStart(4, '0')}-${month}-${day}`;\n }\n\n /**\n * Determines whether this is the same calendar date as another.\n * @param other The other date.\n * @returns True when they are the same date.\n */\n equals(other: DateOnly | undefined | null): boolean {\n return !!other && this.year === other.year && this.month === other.month && this.day === other.day;\n }\n}\n"],"names":["typeKey","__decorate","field"],"mappings":";;;;;;AAMA,MAAM,aAAa,GAAG,2BAA2B;MAcpC,QAAQ,CAAA;AACjB,IAAA,QAAiBA,eAAO,IAAI,UAAU;AAMtC,IAAA,IAAI;AAMJ,IAAA,KAAK;AAML,IAAA,GAAG;AASH,IAAA,OAAO,IAAI,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW,EAAA;AAChD,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;AAC/B,QAAA,QAAQ,CAAC,IAAI,GAAG,IAAI;AACpB,QAAA,QAAQ,CAAC,KAAK,GAAG,KAAK;AACtB,QAAA,QAAQ,CAAC,GAAG,GAAG,GAAG;AAClB,QAAA,OAAO,QAAQ;IACnB;IAOA,OAAO,KAAK,CAAC,KAAa,EAAA;QACtB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AACvC,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAA,CAAE,CAAC;QACxD;AAEA,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChG;IAUA,OAAO,QAAQ,CAAC,IAAU,EAAA;QACtB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IACjF;IASA,MAAM,GAAA;AACF,QAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;IACxD;IAMA,QAAQ,GAAA;AACJ,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACpD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAChD,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,GAAG,EAAE;IACrE;AAOA,IAAA,MAAM,CAAC,KAAkC,EAAA;QACrC,OAAO,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;IACtG;;AAnFAC,iBAAA,CAAA;IADCC,oBAAK,CAAC,MAAM,CAAC;;AACA,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAMdD,iBAAA,CAAA;IADCC,oBAAK,CAAC,MAAM,CAAC;;AACC,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAMfD,iBAAA,CAAA;IADCC,oBAAK,CAAC,MAAM,CAAC;;AACD,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,KAAA,EAAA,MAAA,CAAA;;;;"}
@@ -1,6 +1,8 @@
1
1
  import { IEquatable } from './IEquatable';
2
+ import { typeKey } from './typeKey';
2
3
  export declare class Guid implements IEquatable {
3
4
  readonly bytes: number[] | Uint8Array | undefined;
5
+ static readonly [typeKey] = "Guid";
4
6
  static readonly empty: Guid;
5
7
  private _stringVersion;
6
8
  constructor(bytes: number[] | Uint8Array | undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"Guid.d.ts","sourceRoot":"","sources":["../../Guid.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAoB1C,qBAAa,IAAK,YAAW,UAAU;IAcvB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,SAAS;IAT7D,MAAM,CAAC,QAAQ,CAAC,KAAK,OAA8D;IAEnF,OAAO,CAAC,cAAc,CAAM;gBAOP,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,SAAS;IAsB7D,MAAM,CAAC,MAAM,IAAI,IAAI;IAgCrB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAehC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAUrC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC;IAUtD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAa9B,QAAQ,IAAI,MAAM;IAQlB,MAAM,IAAI,MAAM;CAGnB"}
1
+ {"version":3,"file":"Guid.d.ts","sourceRoot":"","sources":["../../Guid.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,qBAAa,IAAK,YAAW,UAAU;IAgBvB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,SAAS;IAf7D,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU;IAMnC,MAAM,CAAC,QAAQ,CAAC,KAAK,OAA8D;IAEnF,OAAO,CAAC,cAAc,CAAM;gBAOP,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,SAAS;IAsB7D,MAAM,CAAC,MAAM,IAAI,IAAI;IAgCrB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAehC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAUrC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC;IAUtD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAa9B,QAAQ,IAAI,MAAM;IAQlB,MAAM,IAAI,MAAM;CAGnB"}
package/dist/cjs/Guid.js CHANGED
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ var typeKey = require('./typeKey.js');
4
+
3
5
  const guidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
4
6
  const lookUpTable = [];
5
7
  (() => {
@@ -12,6 +14,7 @@ const getString = (num) => {
12
14
  };
13
15
  class Guid {
14
16
  bytes;
17
+ static [typeKey.typeKey] = 'Guid';
15
18
  static empty = new Guid([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
16
19
  _stringVersion = '';
17
20
  constructor(bytes) {