@cratis/fundamentals 7.16.8 → 7.17.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.
- package/ConceptAs.ts +3 -0
- package/DateOnly.ts +112 -0
- package/Guid.ts +3 -0
- package/JsonSerializer.ts +99 -39
- package/TimeOnly.ts +108 -0
- package/TimeSpan.ts +4 -0
- package/ValueMap.ts +3 -0
- package/dist/ConceptAs.d.ts +2 -0
- package/dist/ConceptAs.d.ts.map +1 -1
- package/dist/ConceptAs.js +2 -0
- package/dist/ConceptAs.js.map +1 -1
- package/dist/DateOnly.d.ts +14 -0
- package/dist/DateOnly.d.ts.map +1 -0
- package/dist/DateOnly.js +51 -0
- package/dist/DateOnly.js.map +1 -0
- package/dist/Guid.d.ts +2 -0
- package/dist/Guid.d.ts.map +1 -1
- package/dist/Guid.js +2 -0
- package/dist/Guid.js.map +1 -1
- package/dist/JsonSerializer.d.ts +2 -0
- package/dist/JsonSerializer.d.ts.map +1 -1
- package/dist/JsonSerializer.js +42 -35
- package/dist/JsonSerializer.js.map +1 -1
- package/dist/TimeOnly.d.ts +13 -0
- package/dist/TimeOnly.d.ts.map +1 -0
- package/dist/TimeOnly.js +58 -0
- package/dist/TimeOnly.js.map +1 -0
- package/dist/TimeSpan.d.ts +2 -0
- package/dist/TimeSpan.d.ts.map +1 -1
- package/dist/TimeSpan.js +2 -0
- package/dist/TimeSpan.js.map +1 -1
- package/dist/ValueMap.d.ts +2 -0
- package/dist/ValueMap.d.ts.map +1 -1
- package/dist/ValueMap.js +2 -0
- package/dist/ValueMap.js.map +1 -1
- package/dist/cjs/ConceptAs.d.ts +2 -0
- package/dist/cjs/ConceptAs.d.ts.map +1 -1
- package/dist/cjs/ConceptAs.js +3 -0
- package/dist/cjs/ConceptAs.js.map +1 -1
- package/dist/cjs/DateOnly.d.ts +14 -0
- package/dist/cjs/DateOnly.d.ts.map +1 -0
- package/dist/cjs/DateOnly.js +56 -0
- package/dist/cjs/DateOnly.js.map +1 -0
- package/dist/cjs/Guid.d.ts +2 -0
- package/dist/cjs/Guid.d.ts.map +1 -1
- package/dist/cjs/Guid.js +3 -0
- package/dist/cjs/Guid.js.map +1 -1
- package/dist/cjs/JsonSerializer.d.ts +2 -0
- package/dist/cjs/JsonSerializer.d.ts.map +1 -1
- package/dist/cjs/JsonSerializer.js +43 -34
- package/dist/cjs/JsonSerializer.js.map +1 -1
- package/dist/cjs/TimeOnly.d.ts +13 -0
- package/dist/cjs/TimeOnly.d.ts.map +1 -0
- package/dist/cjs/TimeOnly.js +63 -0
- package/dist/cjs/TimeOnly.js.map +1 -0
- package/dist/cjs/TimeSpan.d.ts +2 -0
- package/dist/cjs/TimeSpan.d.ts.map +1 -1
- package/dist/cjs/TimeSpan.js +2 -0
- package/dist/cjs/TimeSpan.js.map +1 -1
- package/dist/cjs/ValueMap.d.ts +2 -0
- package/dist/cjs/ValueMap.d.ts.map +1 -1
- package/dist/cjs/ValueMap.js +3 -0
- package/dist/cjs/ValueMap.js.map +1 -1
- package/dist/cjs/duplicateInstanceGuard.d.ts +2 -0
- package/dist/cjs/duplicateInstanceGuard.d.ts.map +1 -0
- package/dist/cjs/duplicateInstanceGuard.js +53 -0
- package/dist/cjs/duplicateInstanceGuard.js.map +1 -0
- package/dist/cjs/geospatial/LineString.d.ts +2 -0
- package/dist/cjs/geospatial/LineString.d.ts.map +1 -1
- package/dist/cjs/geospatial/LineString.js +3 -0
- package/dist/cjs/geospatial/LineString.js.map +1 -1
- package/dist/cjs/geospatial/Point.d.ts +2 -0
- package/dist/cjs/geospatial/Point.d.ts.map +1 -1
- package/dist/cjs/geospatial/Point.js +2 -0
- package/dist/cjs/geospatial/Point.js.map +1 -1
- package/dist/cjs/geospatial/Polygon.d.ts +2 -0
- package/dist/cjs/geospatial/Polygon.d.ts.map +1 -1
- package/dist/cjs/geospatial/Polygon.js +3 -0
- package/dist/cjs/geospatial/Polygon.js.map +1 -1
- package/dist/cjs/geospatial/index.js +14 -0
- package/dist/cjs/geospatial/index.js.map +1 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +14 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/json/DateOnlyJsonConverter.d.ts +9 -0
- package/dist/cjs/json/DateOnlyJsonConverter.d.ts.map +1 -0
- package/dist/cjs/json/DateOnlyJsonConverter.js +19 -0
- package/dist/cjs/json/DateOnlyJsonConverter.js.map +1 -0
- package/dist/cjs/json/JsonConverter.d.ts.map +1 -1
- package/dist/cjs/json/JsonConverter.js.map +1 -1
- package/dist/cjs/json/TimeOnlyJsonConverter.d.ts +9 -0
- package/dist/cjs/json/TimeOnlyJsonConverter.d.ts.map +1 -0
- package/dist/cjs/json/TimeOnlyJsonConverter.js +19 -0
- package/dist/cjs/json/TimeOnlyJsonConverter.js.map +1 -0
- package/dist/cjs/json/index.d.ts +2 -0
- package/dist/cjs/json/index.d.ts.map +1 -1
- package/dist/cjs/json/index.js +26 -0
- package/dist/cjs/json/index.js.map +1 -0
- package/dist/cjs/typeKey.d.ts +7 -0
- package/dist/cjs/typeKey.d.ts.map +1 -0
- package/dist/cjs/typeKey.js +14 -0
- package/dist/cjs/typeKey.js.map +1 -0
- package/dist/duplicateInstanceGuard.d.ts +2 -0
- package/dist/duplicateInstanceGuard.d.ts.map +1 -0
- package/dist/duplicateInstanceGuard.js +49 -0
- package/dist/duplicateInstanceGuard.js.map +1 -0
- package/dist/esm/ConceptAs.d.ts +2 -0
- package/dist/esm/ConceptAs.d.ts.map +1 -1
- package/dist/esm/ConceptAs.js +3 -0
- package/dist/esm/ConceptAs.js.map +1 -1
- package/dist/esm/DateOnly.d.ts +14 -0
- package/dist/esm/DateOnly.d.ts.map +1 -0
- package/dist/esm/DateOnly.js +54 -0
- package/dist/esm/DateOnly.js.map +1 -0
- package/dist/esm/Guid.d.ts +2 -0
- package/dist/esm/Guid.d.ts.map +1 -1
- package/dist/esm/Guid.js +3 -0
- package/dist/esm/Guid.js.map +1 -1
- package/dist/esm/JsonSerializer.d.ts +2 -0
- package/dist/esm/JsonSerializer.d.ts.map +1 -1
- package/dist/esm/JsonSerializer.js +43 -34
- package/dist/esm/JsonSerializer.js.map +1 -1
- package/dist/esm/TimeOnly.d.ts +13 -0
- package/dist/esm/TimeOnly.d.ts.map +1 -0
- package/dist/esm/TimeOnly.js +61 -0
- package/dist/esm/TimeOnly.js.map +1 -0
- package/dist/esm/TimeSpan.d.ts +2 -0
- package/dist/esm/TimeSpan.d.ts.map +1 -1
- package/dist/esm/TimeSpan.js +2 -0
- package/dist/esm/TimeSpan.js.map +1 -1
- package/dist/esm/ValueMap.d.ts +2 -0
- package/dist/esm/ValueMap.d.ts.map +1 -1
- package/dist/esm/ValueMap.js +3 -0
- package/dist/esm/ValueMap.js.map +1 -1
- package/dist/esm/duplicateInstanceGuard.d.ts +2 -0
- package/dist/esm/duplicateInstanceGuard.d.ts.map +1 -0
- package/dist/esm/duplicateInstanceGuard.js +51 -0
- package/dist/esm/duplicateInstanceGuard.js.map +1 -0
- package/dist/esm/geospatial/LineString.d.ts +2 -0
- package/dist/esm/geospatial/LineString.d.ts.map +1 -1
- package/dist/esm/geospatial/LineString.js +3 -0
- package/dist/esm/geospatial/LineString.js.map +1 -1
- package/dist/esm/geospatial/Point.d.ts +2 -0
- package/dist/esm/geospatial/Point.d.ts.map +1 -1
- package/dist/esm/geospatial/Point.js +2 -0
- package/dist/esm/geospatial/Point.js.map +1 -1
- package/dist/esm/geospatial/Polygon.d.ts +2 -0
- package/dist/esm/geospatial/Polygon.d.ts.map +1 -1
- package/dist/esm/geospatial/Polygon.js +3 -0
- package/dist/esm/geospatial/Polygon.js.map +1 -1
- package/dist/esm/geospatial/index.js +5 -0
- package/dist/esm/geospatial/index.js.map +1 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/json/DateOnlyJsonConverter.d.ts +9 -0
- package/dist/esm/json/DateOnlyJsonConverter.d.ts.map +1 -0
- package/dist/esm/json/DateOnlyJsonConverter.js +17 -0
- package/dist/esm/json/DateOnlyJsonConverter.js.map +1 -0
- package/dist/esm/json/JsonConverter.d.ts.map +1 -1
- package/dist/esm/json/JsonConverter.js.map +1 -1
- package/dist/esm/json/TimeOnlyJsonConverter.d.ts +9 -0
- package/dist/esm/json/TimeOnlyJsonConverter.d.ts.map +1 -0
- package/dist/esm/json/TimeOnlyJsonConverter.js +17 -0
- package/dist/esm/json/TimeOnlyJsonConverter.js.map +1 -0
- package/dist/esm/json/index.d.ts +2 -0
- package/dist/esm/json/index.d.ts.map +1 -1
- package/dist/esm/json/index.js +11 -0
- package/dist/esm/json/index.js.map +1 -0
- package/dist/esm/typeKey.d.ts +7 -0
- package/dist/esm/typeKey.d.ts.map +1 -0
- package/dist/esm/typeKey.js +8 -0
- package/dist/esm/typeKey.js.map +1 -0
- package/dist/geospatial/LineString.d.ts +2 -0
- package/dist/geospatial/LineString.d.ts.map +1 -1
- package/dist/geospatial/LineString.js +2 -0
- package/dist/geospatial/LineString.js.map +1 -1
- package/dist/geospatial/Point.d.ts +2 -0
- package/dist/geospatial/Point.d.ts.map +1 -1
- package/dist/geospatial/Point.js +2 -0
- package/dist/geospatial/Point.js.map +1 -1
- package/dist/geospatial/Polygon.d.ts +2 -0
- package/dist/geospatial/Polygon.d.ts.map +1 -1
- package/dist/geospatial/Polygon.js +2 -0
- package/dist/geospatial/Polygon.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/json/DateOnlyJsonConverter.d.ts +9 -0
- package/dist/json/DateOnlyJsonConverter.d.ts.map +1 -0
- package/dist/json/DateOnlyJsonConverter.js +14 -0
- package/dist/json/DateOnlyJsonConverter.js.map +1 -0
- package/dist/json/JsonConverter.d.ts.map +1 -1
- package/dist/json/JsonConverter.js.map +1 -1
- package/dist/json/TimeOnlyJsonConverter.d.ts +9 -0
- package/dist/json/TimeOnlyJsonConverter.d.ts.map +1 -0
- package/dist/json/TimeOnlyJsonConverter.js +14 -0
- package/dist/json/TimeOnlyJsonConverter.js.map +1 -0
- package/dist/json/index.d.ts +2 -0
- package/dist/json/index.d.ts.map +1 -1
- package/dist/json/index.js +2 -0
- package/dist/json/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/typeKey.d.ts +7 -0
- package/dist/typeKey.d.ts.map +1 -0
- package/dist/typeKey.js +6 -0
- package/dist/typeKey.js.map +1 -0
- package/duplicateInstanceGuard.ts +114 -0
- package/for_DateOnly/when_parsing_a_calendar_date.ts +13 -0
- package/for_DateOnly/when_reading_it_west_of_utc.ts +24 -0
- package/for_JsonSerializer/RegisteredConverterTypes.ts +45 -0
- package/for_JsonSerializer/when_a_converter_is_registered_for_a_concept.ts +46 -0
- package/for_JsonSerializer/when_a_converter_is_registered_for_a_type_that_already_has_one.ts +25 -0
- package/for_JsonSerializer/when_a_converter_is_registered_for_a_type_the_package_already_converts.ts +51 -0
- package/for_JsonSerializer/when_a_converter_is_registered_for_a_value_map.ts +49 -0
- package/for_JsonSerializer/when_a_converter_is_registered_for_an_unknown_type.ts +30 -0
- package/for_JsonSerializer/when_a_type_comes_from_another_copy_of_the_package.ts +63 -0
- package/for_JsonSerializer/when_deserializing_temporal_values.ts +31 -0
- package/for_JsonSerializer/when_metadata_is_written_by_another_copy_of_the_package.ts +46 -0
- package/for_JsonSerializer/when_no_converter_is_registered_for_a_type.ts +32 -0
- package/for_JsonSerializer/when_round_tripping_a_value_map_of_primitive_values.ts +35 -0
- package/for_JsonSerializer/when_round_tripping_concepts_outside_a_declared_field.ts +39 -0
- package/for_TimeOnly/when_parsing_a_time_of_day.ts +17 -0
- package/for_TimeOnly/when_parsing_the_shapes_the_server_sends.ts +24 -0
- package/for_duplicateInstanceGuard/given/a_realm.ts +62 -0
- package/for_duplicateInstanceGuard/when_a_second_copy_is_loaded.ts +28 -0
- package/for_duplicateInstanceGuard/when_a_third_copy_is_loaded.ts +20 -0
- package/for_duplicateInstanceGuard/when_checking_the_package_manifest.ts +26 -0
- package/for_duplicateInstanceGuard/when_one_copy_is_loaded.ts +17 -0
- package/for_duplicateInstanceGuard/when_one_copy_registers_more_than_once.ts +20 -0
- package/for_duplicateInstanceGuard/when_something_else_holds_the_global_key.ts +25 -0
- package/for_duplicateInstanceGuard/when_the_runtime_has_no_console.ts +30 -0
- package/geospatial/LineString.ts +3 -0
- package/geospatial/Point.ts +3 -0
- package/geospatial/Polygon.ts +3 -0
- package/index.ts +3 -0
- package/json/DateOnlyJsonConverter.ts +28 -0
- package/json/JsonConverter.ts +5 -0
- package/json/TimeOnlyJsonConverter.ts +28 -0
- package/json/index.ts +2 -0
- package/package.json +1 -1
- package/typeKey.ts +54 -0
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":"
|
|
1
|
+
{"version":3,"file":"Guid.js","sourceRoot":"","sources":["../Guid.ts"],"names":[],"mappings":"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"}
|
package/dist/JsonSerializer.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|
package/dist/JsonSerializer.js
CHANGED
|
@@ -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
|
|
17
|
-
|
|
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
|
-
|
|
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
|
|
51
|
+
if (isConceptAs(value.constructor)) {
|
|
47
52
|
const innerValue = value.value;
|
|
48
53
|
return serializeValueForType(innerValue.constructor, innerValue);
|
|
49
54
|
}
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
64
|
-
|
|
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
|
|
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
|
-
|
|
80
|
-
|
|
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
|
-
|
|
120
|
-
|
|
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
|
-
|
|
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 (
|
|
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 (
|
|
202
|
+
if (converterFor(targetType)) {
|
|
196
203
|
return deserializeValueFromType(targetType, instance);
|
|
197
204
|
}
|
|
198
205
|
const deserialized = new targetType();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonSerializer.js","sourceRoot":"","sources":["../JsonSerializer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JsonSerializer.js","sourceRoot":"","sources":["../JsonSerializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
package/dist/TimeOnly.js
ADDED
|
@@ -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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"}
|
package/dist/TimeSpan.d.ts
CHANGED
package/dist/TimeSpan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeSpan.d.ts","sourceRoot":"","sources":["../TimeSpan.ts"],"names":[],"mappings":"
|
|
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;
|
package/dist/TimeSpan.js.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"TimeSpan.js","sourceRoot":"","sources":["../TimeSpan.ts"],"names":[],"mappings":"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"}
|
package/dist/ValueMap.d.ts
CHANGED
package/dist/ValueMap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValueMap.d.ts","sourceRoot":"","sources":["../ValueMap.ts"],"names":[],"mappings":"
|
|
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
package/dist/ValueMap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValueMap.js","sourceRoot":"","sources":["../ValueMap.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/cjs/ConceptAs.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConceptAs.d.ts","sourceRoot":"","sources":["../../ConceptAs.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/cjs/ConceptAs.js
CHANGED
|
@@ -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":"
|
|
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;;;;"}
|
package/dist/cjs/Guid.d.ts
CHANGED
|
@@ -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);
|
package/dist/cjs/Guid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Guid.d.ts","sourceRoot":"","sources":["../../Guid.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
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) {
|