@ddd-ts/shape 0.0.0-elo-projection-experiments-empty.1 → 0.0.0-elo-firestore-projections.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/dist/addons/microsecond-timestamp.d.ts +16 -0
- package/dist/addons/microsecond-timestamp.d.ts.map +1 -0
- package/dist/addons/microsecond-timestamp.js +63 -0
- package/dist/addons/microsecond-timestamp.js.map +1 -0
- package/dist/class.d.ts +2 -2
- package/dist/class.d.ts.map +1 -1
- package/dist/class.js.map +1 -1
- package/dist/dict.d.ts +8 -1
- package/dist/dict.d.ts.map +1 -1
- package/dist/dict.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare class MicrosecondTimestamp {
|
|
2
|
+
readonly micros: bigint;
|
|
3
|
+
constructor(micros: bigint);
|
|
4
|
+
isAfter(other: MicrosecondTimestamp): boolean;
|
|
5
|
+
equals(other: MicrosecondTimestamp): boolean;
|
|
6
|
+
isBefore(other: MicrosecondTimestamp): boolean;
|
|
7
|
+
add(micros: bigint): MicrosecondTimestamp;
|
|
8
|
+
sub(micros: bigint): MicrosecondTimestamp;
|
|
9
|
+
static now(): MicrosecondTimestamp;
|
|
10
|
+
static fromNanoseconds(nanoseconds: bigint): MicrosecondTimestamp;
|
|
11
|
+
static fromMicroseconds(microseconds: bigint): MicrosecondTimestamp;
|
|
12
|
+
static deserialize(serialized: Date | MicrosecondTimestamp | bigint): MicrosecondTimestamp;
|
|
13
|
+
serialize(): Date;
|
|
14
|
+
static sort(left: MicrosecondTimestamp, right: MicrosecondTimestamp): number;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=microsecond-timestamp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"microsecond-timestamp.d.ts","sourceRoot":"","sources":["../../src/addons/microsecond-timestamp.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAoB;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;IAEnC,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO;IAI7C,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO;IAI5C,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO;IAI9C,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB;IAIzC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB;IAIzC,MAAM,CAAC,GAAG,IAAI,oBAAoB;IAIlC,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB;IAIjE,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,oBAAoB;IAInE,MAAM,CAAC,WAAW,CAChB,UAAU,EAAE,IAAI,GAAG,oBAAoB,GAAG,MAAM,GAC/C,oBAAoB;IAmBvB,SAAS;IAMT,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,oBAAoB,GAAG,MAAM;CAS7E"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MicrosecondTimestamp = void 0;
|
|
4
|
+
class MicrosecondTimestamp {
|
|
5
|
+
micros;
|
|
6
|
+
constructor(micros) {
|
|
7
|
+
this.micros = micros;
|
|
8
|
+
}
|
|
9
|
+
isAfter(other) {
|
|
10
|
+
return this.micros > other.micros;
|
|
11
|
+
}
|
|
12
|
+
equals(other) {
|
|
13
|
+
return this.micros === other.micros;
|
|
14
|
+
}
|
|
15
|
+
isBefore(other) {
|
|
16
|
+
return this.micros < other.micros;
|
|
17
|
+
}
|
|
18
|
+
add(micros) {
|
|
19
|
+
return new MicrosecondTimestamp(this.micros + micros);
|
|
20
|
+
}
|
|
21
|
+
sub(micros) {
|
|
22
|
+
return new MicrosecondTimestamp(this.micros - micros);
|
|
23
|
+
}
|
|
24
|
+
static now() {
|
|
25
|
+
return new MicrosecondTimestamp(BigInt(Date.now()) * BigInt(1000));
|
|
26
|
+
}
|
|
27
|
+
static fromNanoseconds(nanoseconds) {
|
|
28
|
+
return new MicrosecondTimestamp(nanoseconds / BigInt(1000));
|
|
29
|
+
}
|
|
30
|
+
static fromMicroseconds(microseconds) {
|
|
31
|
+
return new MicrosecondTimestamp(microseconds);
|
|
32
|
+
}
|
|
33
|
+
static deserialize(serialized) {
|
|
34
|
+
if (serialized instanceof MicrosecondTimestamp) {
|
|
35
|
+
return serialized;
|
|
36
|
+
}
|
|
37
|
+
if (typeof serialized === "bigint") {
|
|
38
|
+
return new MicrosecondTimestamp(serialized);
|
|
39
|
+
}
|
|
40
|
+
if ("microseconds" in serialized &&
|
|
41
|
+
typeof serialized.microseconds === "bigint") {
|
|
42
|
+
return new MicrosecondTimestamp(serialized.microseconds);
|
|
43
|
+
}
|
|
44
|
+
const micros = BigInt(serialized.getTime()) * BigInt(1000);
|
|
45
|
+
return new MicrosecondTimestamp(micros);
|
|
46
|
+
}
|
|
47
|
+
serialize() {
|
|
48
|
+
const date = new Date(Number(this.micros / BigInt(1000)));
|
|
49
|
+
date.microseconds = this.micros;
|
|
50
|
+
return date;
|
|
51
|
+
}
|
|
52
|
+
static sort(left, right) {
|
|
53
|
+
if (left.isAfter(right)) {
|
|
54
|
+
return 1;
|
|
55
|
+
}
|
|
56
|
+
if (left.isBefore(right)) {
|
|
57
|
+
return -1;
|
|
58
|
+
}
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.MicrosecondTimestamp = MicrosecondTimestamp;
|
|
63
|
+
//# sourceMappingURL=microsecond-timestamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"microsecond-timestamp.js","sourceRoot":"","sources":["../../src/addons/microsecond-timestamp.ts"],"names":[],"mappings":";;;AAAA,MAAa,oBAAoB;IACV;IAArB,YAAqB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEvC,OAAO,CAAC,KAA2B;QACjC,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,KAA2B;QAChC,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,QAAQ,CAAC,KAA2B;QAClC,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,GAAG;QACR,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,WAAmB;QACxC,OAAO,IAAI,oBAAoB,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,YAAoB;QAC1C,OAAO,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,WAAW,CAChB,UAAgD;QAEhD,IAAI,UAAU,YAAY,oBAAoB,EAAE,CAAC;YAC/C,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,IAAI,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;QAED,IACE,cAAc,IAAI,UAAU;YAC5B,OAAO,UAAU,CAAC,YAAY,KAAK,QAAQ,EAC3C,CAAC;YACD,OAAO,IAAI,oBAAoB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,SAAS;QACP,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzD,IAAY,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAA0B,EAAE,KAA2B;QACjE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AAvED,oDAuEC","sourcesContent":["export class MicrosecondTimestamp {\n constructor(readonly micros: bigint) {}\n\n isAfter(other: MicrosecondTimestamp): boolean {\n return this.micros > other.micros;\n }\n\n equals(other: MicrosecondTimestamp): boolean {\n return this.micros === other.micros;\n }\n\n isBefore(other: MicrosecondTimestamp): boolean {\n return this.micros < other.micros;\n }\n\n add(micros: bigint): MicrosecondTimestamp {\n return new MicrosecondTimestamp(this.micros + micros);\n }\n\n sub(micros: bigint): MicrosecondTimestamp {\n return new MicrosecondTimestamp(this.micros - micros);\n }\n\n static now(): MicrosecondTimestamp {\n return new MicrosecondTimestamp(BigInt(Date.now()) * BigInt(1000));\n }\n\n static fromNanoseconds(nanoseconds: bigint): MicrosecondTimestamp {\n return new MicrosecondTimestamp(nanoseconds / BigInt(1000));\n }\n\n static fromMicroseconds(microseconds: bigint): MicrosecondTimestamp {\n return new MicrosecondTimestamp(microseconds);\n }\n\n static deserialize(\n serialized: Date | MicrosecondTimestamp | bigint,\n ): MicrosecondTimestamp {\n if (serialized instanceof MicrosecondTimestamp) {\n return serialized;\n }\n if (typeof serialized === \"bigint\") {\n return new MicrosecondTimestamp(serialized);\n }\n\n if (\n \"microseconds\" in serialized &&\n typeof serialized.microseconds === \"bigint\"\n ) {\n return new MicrosecondTimestamp(serialized.microseconds);\n }\n\n const micros = BigInt(serialized.getTime()) * BigInt(1000);\n return new MicrosecondTimestamp(micros);\n }\n\n serialize() {\n const date = new Date(Number(this.micros / BigInt(1000)));\n (date as any).microseconds = this.micros;\n return date;\n }\n\n static sort(left: MicrosecondTimestamp, right: MicrosecondTimestamp): number {\n if (left.isAfter(right)) {\n return 1;\n }\n if (left.isBefore(right)) {\n return -1;\n }\n return 0;\n }\n}\n"]}
|
package/dist/class.d.ts
CHANGED
|
@@ -14,8 +14,8 @@ export declare const Class: <S extends Constructor<{
|
|
|
14
14
|
}) & {
|
|
15
15
|
$shape: "class";
|
|
16
16
|
$of: S;
|
|
17
|
-
deserialize<T extends Constructor<any>>(this: T, value: Expand<
|
|
18
|
-
$deserialize(value:
|
|
17
|
+
deserialize<T extends Constructor<any>>(this: T, value: Expand<Parameters<S["deserialize"]>[0]>): InstanceType<T>;
|
|
18
|
+
$deserialize(value: Parameters<S["deserialize"]>[0]): InstanceType<S>;
|
|
19
19
|
$serialize<T extends /*elided*/ any>(this: T, value: InstanceType<S>): ReturnType<InstanceType<S>["serialize"]>;
|
|
20
20
|
$inline: InstanceType<S>;
|
|
21
21
|
};
|
package/dist/class.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../src/class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAEtE,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC;IAAE,SAAS,IAAI,GAAG,CAAA;CAAE,CAAC,GAAG;IAC/D,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,KAAK,GAChB,CAAC,SAAS,WAAW,CAAC;IAAE,SAAS,IAAI,GAAG,CAAA;CAAE,CAAC,GAAG;IAC5C,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC;CAC9B,EACD,CAAC,SAAS,mBAAmB,CAAC,GAAG,CAAC,qBAE9B,CAAC,gDAWuB,YAAY,CAAC,CAAC,CAAC;WAAf,YAAY,CAAC,CAAC,CAAC;cAW/B,CAAC,+BAAuB,CAAC,GAAG,MAAM,0CAAY;;YAfxC,OAAO;;gBAQJ,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,QACrC,CAAC,SACA,MAAM,
|
|
1
|
+
{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../src/class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAEtE,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC;IAAE,SAAS,IAAI,GAAG,CAAA;CAAE,CAAC,GAAG;IAC/D,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,KAAK,GAChB,CAAC,SAAS,WAAW,CAAC;IAAE,SAAS,IAAI,GAAG,CAAA;CAAE,CAAC,GAAG;IAC5C,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC;CAC9B,EACD,CAAC,SAAS,mBAAmB,CAAC,GAAG,CAAC,qBAE9B,CAAC,gDAWuB,YAAY,CAAC,CAAC,CAAC;WAAf,YAAY,CAAC,CAAC,CAAC;cAW/B,CAAC,+BAAuB,CAAC,GAAG,MAAM,0CAAY;;YAfxC,OAAO;;gBAQJ,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,QACrC,CAAC,SACA,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC7C,YAAY,CAAC,CAAC,CAAC;wBAQS,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;eAIxC,CAAC,+BACX,CAAC;;CAYZ,CAAC"}
|
package/dist/class.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class.js","sourceRoot":"","sources":["../src/class.ts"],"names":[],"mappings":";;;AAAA,0BAAsE;AAM/D,MAAM,KAAK,GAAG,CAMnB,EAAK,EACL,IAAI,GAAG,QAAK,EACZ,EAAE;IAIF,MAAe,MAAO,SAAQ,IAAI;QAKb;QAJnB,MAAM,CAAC,MAAM,GAAG,OAAgB,CAAC;QAEjC,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAEhB,YAAmB,KAAsB;YACvC,KAAK,EAAE,CAAC;YADS,UAAK,GAAL,KAAK,CAAiB;QAEzC,CAAC;QAED,MAAM,CAAC,WAAW,CAEhB,
|
|
1
|
+
{"version":3,"file":"class.js","sourceRoot":"","sources":["../src/class.ts"],"names":[],"mappings":";;;AAAA,0BAAsE;AAM/D,MAAM,KAAK,GAAG,CAMnB,EAAK,EACL,IAAI,GAAG,QAAK,EACZ,EAAE;IAIF,MAAe,MAAO,SAAQ,IAAI;QAKb;QAJnB,MAAM,CAAC,MAAM,GAAG,OAAgB,CAAC;QAEjC,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAEhB,YAAmB,KAAsB;YACvC,KAAK,EAAE,CAAC;YADS,UAAK,GAAL,KAAK,CAAiB;QAEzC,CAAC;QAED,MAAM,CAAC,WAAW,CAEhB,KAA8C;YAE9C,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAoB,CAAC;QAC5D,CAAC;QAED,SAAS;YACP,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,KAAsC;YACxD,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,CAAC,UAAU,CAEf,KAAa;YAEb,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,CAAC,OAAO,CAAS;;IAKzB,OAAO,MAAe,CAAC;AACzB,CAAC,CAAC;AAjDW,QAAA,KAAK,SAiDhB","sourcesContent":["import { AbstractConstructor, Empty, Constructor, Expand } from \"./_\";\n\nexport type ClassShorthand = Constructor<{ serialize(): any }> & {\n deserialize(value: any): any;\n};\n\nexport const Class = <\n S extends Constructor<{ serialize(): any }> & {\n deserialize(value: any): any;\n },\n B extends AbstractConstructor<any> = typeof Empty,\n>(\n of: S,\n base = Empty,\n) => {\n type Serialized = ReturnType<InstanceType<S>[\"serialize\"]>;\n type Inline = InstanceType<S>;\n\n abstract class $Class extends base {\n static $shape = \"class\" as const;\n\n static $of = of;\n\n constructor(public value: InstanceType<B>) {\n super();\n }\n\n static deserialize<T extends Constructor<any>>(\n this: T,\n value: Expand<Parameters<S[\"deserialize\"]>[0]>,\n ): InstanceType<T> {\n return new this(of.deserialize(value)) as InstanceType<T>;\n }\n\n serialize<T extends $Class>(this: T): Expand<Serialized> {\n return this.value.serialize();\n }\n\n static $deserialize(value: Parameters<S[\"deserialize\"]>[0]): Inline {\n return of.deserialize(value);\n }\n\n static $serialize<T extends typeof $Class>(\n this: T,\n value: Inline,\n ): Serialized {\n return value.serialize();\n }\n\n static $inline: Inline;\n }\n\n type Class = typeof $Class;\n\n return $Class as Class;\n};\n"]}
|
package/dist/dict.d.ts
CHANGED
|
@@ -13,6 +13,13 @@ type Internal<S extends DictShorthand, B extends AbstractConstructor<{}>> = {
|
|
|
13
13
|
} : {}) & {
|
|
14
14
|
-readonly [K in keyof S]: ReturnType<DefinitionOf<S[K]>["$serialize"]>;
|
|
15
15
|
};
|
|
16
|
+
Deserializing: (B extends {
|
|
17
|
+
$name: infer U;
|
|
18
|
+
} ? {
|
|
19
|
+
$name: U;
|
|
20
|
+
} : {}) & {
|
|
21
|
+
-readonly [K in keyof S]: Parameters<DefinitionOf<S[K]>["$deserialize"]>[0];
|
|
22
|
+
};
|
|
16
23
|
Inline: {
|
|
17
24
|
-readonly [K in keyof S]: DefinitionOf<S[K]>["$inline"];
|
|
18
25
|
};
|
|
@@ -25,7 +32,7 @@ export declare const Dict: <const S extends {
|
|
|
25
32
|
$shape: "dict";
|
|
26
33
|
$of: S;
|
|
27
34
|
deserialize<T extends Constructor>(this: T, value: Expand<Cache["Serialized"]>): InstanceType<T>;
|
|
28
|
-
$deserialize<T extends /*elided*/ any>(this: T, value: Cache["
|
|
35
|
+
$deserialize<T extends /*elided*/ any>(this: T, value: Cache["Deserializing"]): Cache["Inline"];
|
|
29
36
|
$serialize<T extends /*elided*/ any>(this: T, value: InstanceType<T>): Cache["Serialized"];
|
|
30
37
|
$inline: Cache["Inline"];
|
|
31
38
|
}, ""> & (abstract new (value: Expand<Cache["Inline"]>) => InstanceType<B> & {
|
package/dist/dict.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dict.d.ts","sourceRoot":"","sources":["../src/dict.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,EAET,MAAM,EACN,mBAAmB,EACnB,WAAW,EACX,KAAK,EACN,MAAM,KAAK,CAAC;AAEb,MAAM,MAAM,aAAa,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEzD,KAAK,QAAQ,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,mBAAmB,CAAC,EAAE,CAAC,IAAI;IAC1E,UAAU,EAAE;QAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAC7D,UAAU,EAAE,CAAC,CAAC,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,GAAG,EAAE,CAAC,GAAG;QAC/D,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;KACvE,CAAC;IACF,MAAM,EAAE;QACN,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;KACxD,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,IAAI,SACT,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACtC,CAAC,SAAS,mBAAmB,CAAC,EAAE,CAAC,iBACjC,KAAK,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,uBAExB,CAAC,SACC,CAAC,gDAMgB,GAAG,EAAE;iBAKb,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;;YARxB,MAAM;;gBAYH,CAAC,SAAS,WAAW,QAChC,CAAC,SACA,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GACjC,YAAY,CAAC,CAAC,CAAC;iBAKE,CAAC,+BACb,CAAC,SACA,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"dict.d.ts","sourceRoot":"","sources":["../src/dict.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,EAET,MAAM,EACN,mBAAmB,EACnB,WAAW,EACX,KAAK,EACN,MAAM,KAAK,CAAC;AAEb,MAAM,MAAM,aAAa,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEzD,KAAK,QAAQ,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,mBAAmB,CAAC,EAAE,CAAC,IAAI;IAC1E,UAAU,EAAE;QAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAC7D,UAAU,EAAE,CAAC,CAAC,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,GAAG,EAAE,CAAC,GAAG;QAC/D,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;KACvE,CAAC;IACF,aAAa,EAAE,CAAC,CAAC,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,GAAG,EAAE,CAAC,GAAG;QAClE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5E,CAAC;IACF,MAAM,EAAE;QACN,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;KACxD,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,IAAI,SACT,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACtC,CAAC,SAAS,mBAAmB,CAAC,EAAE,CAAC,iBACjC,KAAK,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,uBAExB,CAAC,SACC,CAAC,gDAMgB,GAAG,EAAE;iBAKb,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;;YARxB,MAAM;;gBAYH,CAAC,SAAS,WAAW,QAChC,CAAC,SACA,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GACjC,YAAY,CAAC,CAAC,CAAC;iBAKE,CAAC,+BACb,CAAC,SACA,KAAK,CAAC,eAAe,CAAC,GAC5B,KAAK,CAAC,QAAQ,CAAC;eAWA,CAAC,+BACX,CAAC,SACA,YAAY,CAAC,CAAC,CAAC,GACrB,KAAK,CAAC,YAAY,CAAC;aAgBN,KAAK,CAAC,QAAQ,CAAC;+BAIxB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAC3B,YAAY,CAAC,CAAC,CAAC;iBAlDL,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAkDX,KAAK,CAAC,QAAQ,CAAC,CAG/C,CAAC"}
|
package/dist/dict.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dict.js","sourceRoot":"","sources":["../src/dict.ts"],"names":[],"mappings":";;;AAAA,0BAQa;
|
|
1
|
+
{"version":3,"file":"dict.js","sourceRoot":"","sources":["../src/dict.ts"],"names":[],"mappings":";;;AAAA,0BAQa;AAiBN,MAAM,IAAI,GAAG,CAKlB,EAAK,EACL,OAAU,QAAY,EACtB,EAAE;IACF,MAAe,KAAM,SAAS,IAAuC;QACnE,MAAM,CAAC,MAAM,GAAG,MAAe,CAAC;QAChC,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAEhB,YAAY,GAAG,IAAW;YACxB,KAAK,EAAE,CAAC;YACR,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,SAAS;YACP,OAAO,KAAK,CAAC,UAAU,CAAC,IAAW,CAAQ,CAAC;QAC9C,CAAC;QAED,MAAM,CAAC,WAAW,CAEhB,KAAkC;YAElC,MAAM,OAAO,GAAI,IAAY,CAAC,YAAY,CAAC,KAAY,CAAC,CAAC;YACzD,OAAO,IAAI,IAAI,CAAC,OAAc,CAAQ,CAAC;QACzC,CAAC;QAED,MAAM,CAAC,YAAY,CAEjB,KAA6B;YAE7B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC3C,MAAM,QAAQ,GAAG,IAAA,QAAK,EAAC,KAAK,CAAQ,CAAC;gBACrC,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAE,KAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChE,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,CAAC,UAAU,CAEf,KAAsB;YAEtB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC3C,MAAM,QAAQ,GAAG,IAAA,QAAK,EAAC,KAAY,CAAQ,CAAC;gBAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAE,KAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAE5C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAS,CAAC;YAChD,CAAC;YAED,OAAO,KAAY,CAAC;QACtB,CAAC;QAED,MAAM,CAAC,OAAO,CAAkB;;IAOlC,OAAO,KAA+B,CAAC;AACzC,CAAC,CAAC;AAtEW,QAAA,IAAI,QAsEf","sourcesContent":["import {\n DefinitionOf,\n Shorthand,\n Shape,\n Expand,\n AbstractConstructor,\n Constructor,\n Empty,\n} from \"./_\";\n\nexport type DictShorthand = { [key: string]: Shorthand };\n\ntype Internal<S extends DictShorthand, B extends AbstractConstructor<{}>> = {\n Definition: { -readonly [K in keyof S]: DefinitionOf<S[K]> };\n Serialized: (B extends { $name: infer U } ? { $name: U } : {}) & {\n -readonly [K in keyof S]: ReturnType<DefinitionOf<S[K]>[\"$serialize\"]>;\n };\n Deserializing: (B extends { $name: infer U } ? { $name: U } : {}) & {\n -readonly [K in keyof S]: Parameters<DefinitionOf<S[K]>[\"$deserialize\"]>[0];\n };\n Inline: {\n -readonly [K in keyof S]: DefinitionOf<S[K]>[\"$inline\"];\n };\n};\n\nexport const Dict = <\n const S extends { [key: string]: any },\n B extends AbstractConstructor<{}> = typeof Empty,\n Cache extends Internal<S, B> = Internal<S, B>,\n>(\n of: S,\n base: B = Empty as any,\n) => {\n abstract class $Dict extends (base as any as AbstractConstructor<{}>) {\n static $shape = \"dict\" as const;\n static $of = of;\n\n constructor(...args: any[]) {\n super();\n Object.assign(this, args[0]);\n }\n\n serialize(): Expand<Cache[\"Serialized\"]> {\n return $Dict.$serialize(this as any) as any;\n }\n\n static deserialize<T extends Constructor>(\n this: T,\n value: Expand<Cache[\"Serialized\"]>,\n ): InstanceType<T> {\n const runtime = (this as any).$deserialize(value as any);\n return new this(runtime as any) as any;\n }\n\n static $deserialize<T extends typeof $Dict>(\n this: T,\n value: Cache[\"Deserializing\"],\n ): Cache[\"Inline\"] {\n const split = Object.entries(of);\n const transform = split.map(([key, child]) => {\n const longhand = Shape(child) as any;\n const deserialized = longhand.$deserialize((value as any)[key]);\n return [key, deserialized];\n });\n const merge = Object.fromEntries(transform);\n return merge;\n }\n\n static $serialize<T extends typeof $Dict>(\n this: T,\n value: InstanceType<T>,\n ): Cache[\"Serialized\"] {\n const split = Object.entries(of);\n const transform = split.map(([key, child]) => {\n const longhand = Shape(child as any) as any;\n const serialized = longhand.$serialize((value as any)[key]);\n return [key, serialized];\n });\n const merge = Object.fromEntries(transform);\n\n if (\"$name\" in base) {\n return { ...merge, $name: base.$name } as any;\n }\n\n return merge as any;\n }\n\n static $inline: Cache[\"Inline\"];\n }\n\n type DictConstructor = abstract new (\n value: Expand<Cache[\"Inline\"]>,\n ) => InstanceType<B> & $Dict & Cache[\"Inline\"];\n type WithConstructor = Omit<B, \"\"> & Omit<typeof $Dict, \"\"> & DictConstructor;\n return $Dict as any as WithConstructor;\n};\n"]}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,KAAK,CAAC;AACpB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,KAAK,CAAC;AACpB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gCAAgC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -26,4 +26,5 @@ __exportStar(require("./mapping"), exports);
|
|
|
26
26
|
__exportStar(require("./multiple"), exports);
|
|
27
27
|
__exportStar(require("./nothing"), exports);
|
|
28
28
|
__exportStar(require("./optional"), exports);
|
|
29
|
+
__exportStar(require("./addons/microsecond-timestamp"), exports);
|
|
29
30
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sCAAoB;AACpB,2CAAyB;AACzB,0CAAwB;AACxB,yCAAuB;AACvB,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,wDAAsC;AACtC,4CAA0B;AAC1B,6CAA2B;AAC3B,4CAA0B;AAC1B,6CAA2B","sourcesContent":["export * from \"./_\";\nexport * from \"./choice\";\nexport * from \"./class\";\nexport * from \"./dict\";\nexport * from \"./either\";\nexport * from \"./primitive\";\nexport * from \"./literal\";\nexport * from \"./discriminated-union\";\nexport * from \"./mapping\";\nexport * from \"./multiple\";\nexport * from \"./nothing\";\nexport * from \"./optional\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sCAAoB;AACpB,2CAAyB;AACzB,0CAAwB;AACxB,yCAAuB;AACvB,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,wDAAsC;AACtC,4CAA0B;AAC1B,6CAA2B;AAC3B,4CAA0B;AAC1B,6CAA2B;AAC3B,iEAA+C","sourcesContent":["export * from \"./_\";\nexport * from \"./choice\";\nexport * from \"./class\";\nexport * from \"./dict\";\nexport * from \"./either\";\nexport * from \"./primitive\";\nexport * from \"./literal\";\nexport * from \"./discriminated-union\";\nexport * from \"./mapping\";\nexport * from \"./multiple\";\nexport * from \"./nothing\";\nexport * from \"./optional\";\nexport * from \"./addons/microsecond-timestamp\";\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ddd-ts/shape",
|
|
3
|
-
"version": "0.0.0-elo-
|
|
3
|
+
"version": "0.0.0-elo-firestore-projections.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"license": "MIT",
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
"test": "jest --config node_modules/@ddd-ts/tools/jest.config.js"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@ddd-ts/traits": "0.0.0-elo-
|
|
12
|
+
"@ddd-ts/traits": "0.0.0-elo-firestore-projections.1"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"@ddd-ts/tools": "0.0.0-elo-
|
|
16
|
-
"@ddd-ts/types": "0.0.0-elo-
|
|
15
|
+
"@ddd-ts/tools": "0.0.0-elo-firestore-projections.1",
|
|
16
|
+
"@ddd-ts/types": "0.0.0-elo-firestore-projections.1",
|
|
17
17
|
"@types/jest": "^29.5.1"
|
|
18
18
|
}
|
|
19
19
|
}
|