@ddd-ts/shape 0.0.0-feat.shape.ee0e705 → 0.0.0-fix-tb-better-either-serialization.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/_.d.ts +39 -0
  2. package/dist/_.d.ts.map +1 -0
  3. package/dist/_.js +55 -0
  4. package/dist/_.js.map +1 -0
  5. package/dist/choice.d.ts +43 -0
  6. package/dist/choice.d.ts.map +1 -0
  7. package/dist/choice.js +48 -0
  8. package/dist/choice.js.map +1 -0
  9. package/dist/choice.spec.d.ts +2 -0
  10. package/dist/choice.spec.d.ts.map +1 -0
  11. package/dist/choice.spec.js +147 -0
  12. package/dist/choice.spec.js.map +1 -0
  13. package/dist/class.d.ts +22 -0
  14. package/dist/class.d.ts.map +1 -0
  15. package/dist/class.js +31 -0
  16. package/dist/class.js.map +1 -0
  17. package/dist/class.spec.d.ts +2 -0
  18. package/dist/class.spec.d.ts.map +1 -0
  19. package/dist/class.spec.js +39 -0
  20. package/dist/class.spec.js.map +1 -0
  21. package/dist/dict.d.ts +31 -0
  22. package/dist/dict.d.ts.map +1 -0
  23. package/dist/dict.js +45 -0
  24. package/dist/dict.js.map +1 -0
  25. package/dist/dict.spec.d.ts +2 -0
  26. package/dist/dict.spec.d.ts.map +1 -0
  27. package/dist/dict.spec.js +180 -0
  28. package/dist/dict.spec.js.map +1 -0
  29. package/dist/discriminated-union.d.ts +75 -0
  30. package/dist/discriminated-union.d.ts.map +1 -0
  31. package/dist/discriminated-union.js +99 -0
  32. package/dist/discriminated-union.js.map +1 -0
  33. package/dist/discriminated-union.spec.d.ts +2 -0
  34. package/dist/discriminated-union.spec.d.ts.map +1 -0
  35. package/dist/discriminated-union.spec.js +262 -0
  36. package/dist/discriminated-union.spec.js.map +1 -0
  37. package/dist/either.d.ts +51 -0
  38. package/dist/either.d.ts.map +1 -0
  39. package/dist/either.js +62 -0
  40. package/dist/either.js.map +1 -0
  41. package/dist/either.spec.d.ts +2 -0
  42. package/dist/either.spec.d.ts.map +1 -0
  43. package/dist/either.spec.js +232 -0
  44. package/dist/either.spec.js.map +1 -0
  45. package/dist/index.d.ts +12 -88
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +26 -124
  48. package/dist/index.js.map +1 -1
  49. package/dist/literal.d.ts +17 -0
  50. package/dist/literal.d.ts.map +1 -0
  51. package/dist/literal.js +27 -0
  52. package/dist/literal.js.map +1 -0
  53. package/dist/literal.spec.d.ts +2 -0
  54. package/dist/literal.spec.d.ts.map +1 -0
  55. package/dist/literal.spec.js +162 -0
  56. package/dist/literal.spec.js.map +1 -0
  57. package/dist/mapping.d.ts +39 -0
  58. package/dist/mapping.d.ts.map +1 -0
  59. package/dist/mapping.js +50 -0
  60. package/dist/mapping.js.map +1 -0
  61. package/dist/mapping.spec.d.ts +2 -0
  62. package/dist/mapping.spec.d.ts.map +1 -0
  63. package/dist/mapping.spec.js +207 -0
  64. package/dist/mapping.spec.js.map +1 -0
  65. package/dist/multiple.d.ts +110 -0
  66. package/dist/multiple.d.ts.map +1 -0
  67. package/dist/multiple.js +106 -0
  68. package/dist/multiple.js.map +1 -0
  69. package/dist/multiple.spec.d.ts +2 -0
  70. package/dist/multiple.spec.d.ts.map +1 -0
  71. package/dist/multiple.spec.js +207 -0
  72. package/dist/multiple.spec.js.map +1 -0
  73. package/dist/nothing.d.ts +14 -0
  74. package/dist/nothing.d.ts.map +1 -0
  75. package/dist/nothing.js +19 -0
  76. package/dist/nothing.js.map +1 -0
  77. package/dist/nothing.spec.d.ts +2 -0
  78. package/dist/nothing.spec.d.ts.map +1 -0
  79. package/dist/nothing.spec.js +172 -0
  80. package/dist/nothing.spec.js.map +1 -0
  81. package/dist/optional.d.ts +28 -0
  82. package/dist/optional.d.ts.map +1 -0
  83. package/dist/optional.js +41 -0
  84. package/dist/optional.js.map +1 -0
  85. package/dist/optional.spec.d.ts +2 -0
  86. package/dist/optional.spec.d.ts.map +1 -0
  87. package/dist/optional.spec.js +172 -0
  88. package/dist/optional.spec.js.map +1 -0
  89. package/dist/primitive.d.ts +40 -0
  90. package/dist/primitive.d.ts.map +1 -0
  91. package/dist/primitive.js +30 -0
  92. package/dist/primitive.js.map +1 -0
  93. package/dist/primitive.spec.d.ts +2 -0
  94. package/dist/primitive.spec.d.ts.map +1 -0
  95. package/dist/primitive.spec.js +162 -0
  96. package/dist/primitive.spec.js.map +1 -0
  97. package/dist/test.d.ts +36 -0
  98. package/dist/test.d.ts.map +1 -0
  99. package/dist/test.js +45 -0
  100. package/dist/test.js.map +1 -0
  101. package/package.json +8 -7
  102. package/dist/index.spec.d.ts +0 -2
  103. package/dist/index.spec.d.ts.map +0 -1
  104. package/dist/index.spec.js +0 -354
  105. package/dist/index.spec.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mapping.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.spec.d.ts","sourceRoot":"","sources":["../src/mapping.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const dict_1 = require("./dict");
4
+ const primitive_1 = require("./primitive");
5
+ const mapping_1 = require("./mapping");
6
+ const test_1 = require("./test");
7
+ describe("Mapping", () => {
8
+ it("class definition, specified key", () => {
9
+ class Test extends (0, mapping_1.Mapping)([String, (0, primitive_1.Primitive)(Number)]) {
10
+ test = true;
11
+ }
12
+ // Constructor parameters
13
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
14
+ // Deserialization
15
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
16
+ const a = Test.deserialize({ key: 2 });
17
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
18
+ // Additional prototype on deserialization
19
+ (0, test_1.ex)(a.test).toBe(true).ok;
20
+ // Inherited prototype on deserialization
21
+ (0, test_1.ex)(a.value).toStrictEqual({ key: 2 }).ok;
22
+ // Serialization
23
+ (0, test_1.ex)(a.serialize()).toStrictEqual({ key: 2 }).ok;
24
+ // Instantiation
25
+ const b = new Test({ key: 2 });
26
+ (0, test_1.ex)(b).toBeInstanceOf(Test);
27
+ // Additional prototype on instantiation
28
+ (0, test_1.ex)(b.test).toBe(true).ok;
29
+ // Inherited prototype on instantiation
30
+ (0, test_1.ex)(b.value).toStrictEqual({ key: 2 }).ok;
31
+ });
32
+ it("class definition, unspecified key", () => {
33
+ class Test extends (0, mapping_1.Mapping)([(0, primitive_1.Primitive)(Number)]) {
34
+ test = true;
35
+ }
36
+ // Constructor parameters
37
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
38
+ // Deserialization
39
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
40
+ const a = Test.deserialize({ key: 2 });
41
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
42
+ // Additional prototype on deserialization
43
+ (0, test_1.ex)(a.test).toBe(true).ok;
44
+ // Inherited prototype on deserialization
45
+ (0, test_1.ex)(a.value).toStrictEqual({ key: 2 }).ok;
46
+ // Serialization
47
+ (0, test_1.ex)(a.serialize()).toStrictEqual({ key: 2 }).ok;
48
+ // Instantiation
49
+ const b = new Test({ key: 2 });
50
+ (0, test_1.ex)(b).toBeInstanceOf(Test);
51
+ // Additional prototype on instantiation
52
+ (0, test_1.ex)(b.test).toBe(true).ok;
53
+ // Inherited prototype on instantiation
54
+ (0, test_1.ex)(b.value).toStrictEqual({ key: 2 }).ok;
55
+ });
56
+ it("inlined definition", () => {
57
+ class Test extends (0, dict_1.Dict)({
58
+ longhand: (0, mapping_1.Mapping)([(0, primitive_1.Primitive)(Number)]),
59
+ shorthand: (0, mapping_1.Mapping)([Number, { nested: String }]),
60
+ }) {
61
+ test = true;
62
+ }
63
+ // Constructor parameters
64
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
65
+ // Deserialization
66
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
67
+ const a = Test.deserialize({
68
+ longhand: { key: 2 },
69
+ shorthand: { 0: { nested: "a" } },
70
+ });
71
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
72
+ // Additional prototype on deserialization
73
+ (0, test_1.ex)(a.test).toBe(true).ok;
74
+ // Inherited prototype on deserialization
75
+ (0, test_1.ex)(a.longhand).toStrictEqual({ key: 2 }).ok;
76
+ (0, test_1.ex)(a.shorthand).toStrictEqual({
77
+ 0: { nested: "a" },
78
+ }).ok;
79
+ // Serialization
80
+ (0, test_1.ex)(a.serialize()).toStrictEqual({
81
+ longhand: { key: 2 },
82
+ shorthand: { 0: { nested: "a" } },
83
+ }).ok;
84
+ // Instantiation
85
+ const b = new Test({
86
+ longhand: { key: 2 },
87
+ shorthand: { 0: { nested: "a" } },
88
+ });
89
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
90
+ // Additional prototype on instantiation
91
+ (0, test_1.ex)(b.test).toBe(true).ok;
92
+ // Inherited prototype on instantiation
93
+ (0, test_1.ex)(b.longhand).toStrictEqual({ key: 2 }).ok;
94
+ (0, test_1.ex)(b.shorthand).toStrictEqual({
95
+ 0: { nested: "a" },
96
+ }).ok;
97
+ });
98
+ it("referenced definition", () => {
99
+ class Reference extends (0, mapping_1.Mapping)([Number]) {
100
+ }
101
+ class Test extends (0, dict_1.Dict)({ reference: Reference }) {
102
+ test = true;
103
+ }
104
+ // Constructor parameters
105
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
106
+ // Deserialization
107
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
108
+ const a = Test.deserialize({ reference: { 0: 1 } });
109
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
110
+ // Additional prototype on deserialization
111
+ (0, test_1.ex)(a.test).toBe(true).ok;
112
+ // Inherited prototype on deserialization
113
+ (0, test_1.ex)(a.reference).toStrictEqual(new Reference({ 0: 1 })).ok;
114
+ // Serialization
115
+ (0, test_1.ex)(a.serialize()).toStrictEqual({ reference: { 0: 1 } }).ok;
116
+ // Instantiation
117
+ const b = new Test({ reference: new Reference({ 0: 1 }) });
118
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
119
+ // Additional prototype on instantiation
120
+ (0, test_1.ex)(b.test).toBe(true).ok;
121
+ // Inherited prototype on instantiation
122
+ (0, test_1.ex)(b.reference).toStrictEqual(new Reference({ 0: 1 })).ok;
123
+ });
124
+ it("mixin extension", () => {
125
+ const Testable = (config) => {
126
+ class I extends (0, mapping_1.Mapping)(config) {
127
+ deep = true;
128
+ static deep = true;
129
+ }
130
+ return I;
131
+ };
132
+ class Test extends Testable([Number]) {
133
+ test = true;
134
+ // @ts-expect-error is not assignable to parameter of type 'true'
135
+ abstract = false;
136
+ }
137
+ // Constructor parameters
138
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
139
+ // Additional static prototype
140
+ (0, test_1.ex)(Test.deep).toBe(true).ok;
141
+ // Deserialization
142
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
143
+ const a = Test.deserialize({ key: 1 });
144
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
145
+ // Additional prototype on deserialization
146
+ (0, test_1.ex)(a.test).toBe(true).ok;
147
+ (0, test_1.ex)(a.abstract).toBe(false).ok;
148
+ // Extended prototype on deserialization
149
+ (0, test_1.ex)(a.deep).toBe(true).ok;
150
+ // Inherited prototype on deserialization
151
+ (0, test_1.ex)(a.value).toStrictEqual({ key: 1 }).ok;
152
+ // Serialization
153
+ (0, test_1.ex)(a.serialize()).toStrictEqual({ key: 1 }).ok;
154
+ // Instantiation
155
+ const b = new Test({ key: 2 });
156
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
157
+ // Additional prototype on instantiation
158
+ (0, test_1.ex)(b.test).toBe(true).ok;
159
+ (0, test_1.ex)(b.abstract).toBe(false).ok;
160
+ // Extended prototype on instantiation
161
+ (0, test_1.ex)(b.deep).toBe(true).ok;
162
+ // Inherited prototype on instantiation
163
+ (0, test_1.ex)(b.value).toStrictEqual({ key: 2 }).ok;
164
+ });
165
+ it("mixin supersede", () => {
166
+ const Testable = (config) => {
167
+ class I {
168
+ deep = true;
169
+ static deep = true;
170
+ }
171
+ return (0, mapping_1.Mapping)(config, I);
172
+ };
173
+ class Test extends Testable([Number]) {
174
+ test = true;
175
+ // @ts-expect-error is not assignable to parameter of type 'true'
176
+ abstract = false;
177
+ }
178
+ // Constructor parameters
179
+ (0, test_1.ex)(Test).toHaveFirstParam().ok;
180
+ // Additional static prototype
181
+ (0, test_1.ex)(Test.deep).toBe(true).ok;
182
+ // Deserialization
183
+ (0, test_1.ex)(Test.deserialize).toHaveFirstParam().ok;
184
+ const a = Test.deserialize({ key: 1 });
185
+ (0, test_1.ex)(a).toBeInstanceOf(Test).ok;
186
+ // Additional prototype on deserialization
187
+ (0, test_1.ex)(a.test).toBe(true).ok;
188
+ (0, test_1.ex)(a.abstract).toBe(false).ok;
189
+ // Superseeded prototype on deserialization
190
+ (0, test_1.ex)(a.deep).toBe(true).ok;
191
+ // Inherited prototype on deserialization
192
+ (0, test_1.ex)(a.value).toStrictEqual({ key: 1 }).ok;
193
+ // Serialization
194
+ (0, test_1.ex)(a.serialize()).toStrictEqual({ key: 1 }).ok;
195
+ // Instantiation
196
+ const b = new Test({ key: 2 });
197
+ (0, test_1.ex)(b).toBeInstanceOf(Test).ok;
198
+ // Additional prototype on instantiation
199
+ (0, test_1.ex)(b.test).toBe(true).ok;
200
+ (0, test_1.ex)(b.abstract).toBe(false).ok;
201
+ // Superseeded prototype on instantiation
202
+ (0, test_1.ex)(b.deep).toBe(true).ok;
203
+ // Inherited prototype on instantiation
204
+ (0, test_1.ex)(b.value).toStrictEqual({ key: 2 }).ok;
205
+ });
206
+ });
207
+ //# sourceMappingURL=mapping.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.spec.js","sourceRoot":"","sources":["../src/mapping.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ import { Definition, Expand, Shorthand, DefinitionOf, AbstractConstructor, Empty, Constructor } from "./_";
2
+ export type MultipleConfiguration = Definition | Shorthand;
3
+ export type MultipleShorthand = [any] | readonly [any];
4
+ type Internal<S extends MultipleConfiguration> = {
5
+ Serialized: ReturnType<DefinitionOf<S>["$serialize"]>[];
6
+ Inline: DefinitionOf<S>["$inline"][];
7
+ };
8
+ export declare const Multiple: <const S extends MultipleConfiguration, B extends AbstractConstructor<{}> = typeof Empty, Cache extends Internal<S> = Internal<S>>(of: S, base?: B) => Omit<B, "prototype"> & Omit<(abstract new (value: Cache["Inline"]) => {
9
+ value: Cache["Inline"];
10
+ serialize(): Expand<Cache["Serialized"]>;
11
+ readonly map: <U>(callbackfn: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => U, thisArg?: any) => U[];
12
+ readonly reduce: {
13
+ (callbackfn: (previousValue: DefinitionOf<S, typeof Empty>["$inline"], currentValue: DefinitionOf<S, typeof Empty>["$inline"], currentIndex: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => DefinitionOf<S, typeof Empty>["$inline"]): DefinitionOf<S, typeof Empty>["$inline"];
14
+ (callbackfn: (previousValue: DefinitionOf<S, typeof Empty>["$inline"], currentValue: DefinitionOf<S, typeof Empty>["$inline"], currentIndex: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => DefinitionOf<S, typeof Empty>["$inline"], initialValue: DefinitionOf<S, typeof Empty>["$inline"]): DefinitionOf<S, typeof Empty>["$inline"];
15
+ <U_1>(callbackfn: (previousValue: U_1, currentValue: DefinitionOf<S, typeof Empty>["$inline"], currentIndex: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => U_1, initialValue: U_1): U_1;
16
+ };
17
+ readonly filter: {
18
+ <S_1 extends DefinitionOf<S, typeof Empty>["$inline"]>(predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => value is S_1, thisArg?: any): S_1[];
19
+ (predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S, typeof Empty>["$inline"][];
20
+ };
21
+ readonly forEach: (callbackfn: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => void, thisArg?: any) => void;
22
+ readonly some: (predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => unknown, thisArg?: any) => boolean;
23
+ readonly every: {
24
+ <S_2 extends DefinitionOf<S, typeof Empty>["$inline"]>(predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => value is S_2, thisArg?: any): this is S_2[];
25
+ (predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => unknown, thisArg?: any): boolean;
26
+ };
27
+ readonly find: {
28
+ <S_3 extends DefinitionOf<S, typeof Empty>["$inline"]>(predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, obj: DefinitionOf<S, typeof Empty>["$inline"][]) => value is S_3, thisArg?: any): S_3 | undefined;
29
+ (predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, obj: DefinitionOf<S, typeof Empty>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S, typeof Empty>["$inline"] | undefined;
30
+ };
31
+ readonly findIndex: (predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, obj: DefinitionOf<S, typeof Empty>["$inline"][]) => unknown, thisArg?: any) => number;
32
+ readonly indexOf: (searchElement: DefinitionOf<S, typeof Empty>["$inline"], fromIndex?: number) => number;
33
+ readonly lastIndexOf: (searchElement: DefinitionOf<S, typeof Empty>["$inline"], fromIndex?: number) => number;
34
+ readonly includes: (searchElement: DefinitionOf<S, typeof Empty>["$inline"], fromIndex?: number) => boolean;
35
+ readonly keys: () => IterableIterator<number>;
36
+ readonly values: () => IterableIterator<DefinitionOf<S, typeof Empty>["$inline"]>;
37
+ readonly entries: () => IterableIterator<[number, DefinitionOf<S, typeof Empty>["$inline"]]>;
38
+ readonly at: (index: number) => DefinitionOf<S, typeof Empty>["$inline"] | undefined;
39
+ readonly concat: {
40
+ (...items: ConcatArray<DefinitionOf<S, typeof Empty>["$inline"]>[]): DefinitionOf<S, typeof Empty>["$inline"][];
41
+ (...items: (DefinitionOf<S, typeof Empty>["$inline"] | ConcatArray<DefinitionOf<S, typeof Empty>["$inline"]>)[]): DefinitionOf<S, typeof Empty>["$inline"][];
42
+ };
43
+ readonly flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[];
44
+ readonly splice: {
45
+ (start: number, deleteCount?: number): DefinitionOf<S, typeof Empty>["$inline"][];
46
+ (start: number, deleteCount: number, ...items: DefinitionOf<S, typeof Empty>["$inline"][]): DefinitionOf<S, typeof Empty>["$inline"][];
47
+ };
48
+ readonly flatMap: <U_2, This = undefined>(callback: (this: This, value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => U_2 | readonly U_2[], thisArg?: This | undefined) => U_2[];
49
+ readonly push: (...items: DefinitionOf<S, typeof Empty>["$inline"][]) => number;
50
+ readonly pop: () => DefinitionOf<S, typeof Empty>["$inline"] | undefined;
51
+ readonly sort: (compareFn?: ((a: DefinitionOf<S, typeof Empty>["$inline"], b: DefinitionOf<S, typeof Empty>["$inline"]) => number) | undefined) => Cache["Inline"];
52
+ readonly slice: (start?: number, end?: number) => DefinitionOf<S, typeof Empty>["$inline"][];
53
+ readonly length: number;
54
+ [Symbol.iterator](): IterableIterator<DefinitionOf<S, typeof Empty>["$inline"]>;
55
+ }) & {
56
+ $shape: "multiple";
57
+ deserialize<T extends Constructor<any, any[]>>(this: T, value: Expand<Cache["Serialized"]>): InstanceType<T>;
58
+ $deserialize<T_1 extends Constructor<any, any[]>>(this: T_1, value: Cache["Serialized"]): InstanceType<T_1>;
59
+ $serialize(value: Cache["Inline"]): Cache["Serialized"];
60
+ $inline: Cache["Inline"];
61
+ }, ""> & (abstract new (value: Expand<Cache["Inline"]>) => InstanceType<B> & {
62
+ value: Cache["Inline"];
63
+ serialize(): Expand<Cache["Serialized"]>;
64
+ readonly map: <U>(callbackfn: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => U, thisArg?: any) => U[];
65
+ readonly reduce: {
66
+ (callbackfn: (previousValue: DefinitionOf<S, typeof Empty>["$inline"], currentValue: DefinitionOf<S, typeof Empty>["$inline"], currentIndex: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => DefinitionOf<S, typeof Empty>["$inline"]): DefinitionOf<S, typeof Empty>["$inline"];
67
+ (callbackfn: (previousValue: DefinitionOf<S, typeof Empty>["$inline"], currentValue: DefinitionOf<S, typeof Empty>["$inline"], currentIndex: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => DefinitionOf<S, typeof Empty>["$inline"], initialValue: DefinitionOf<S, typeof Empty>["$inline"]): DefinitionOf<S, typeof Empty>["$inline"];
68
+ <U_1>(callbackfn: (previousValue: U_1, currentValue: DefinitionOf<S, typeof Empty>["$inline"], currentIndex: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => U_1, initialValue: U_1): U_1;
69
+ };
70
+ readonly filter: {
71
+ <S_1 extends DefinitionOf<S, typeof Empty>["$inline"]>(predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => value is S_1, thisArg?: any): S_1[];
72
+ (predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S, typeof Empty>["$inline"][];
73
+ };
74
+ readonly forEach: (callbackfn: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => void, thisArg?: any) => void;
75
+ readonly some: (predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => unknown, thisArg?: any) => boolean;
76
+ readonly every: {
77
+ <S_2 extends DefinitionOf<S, typeof Empty>["$inline"]>(predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => value is S_2, thisArg?: any): this is S_2[];
78
+ (predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => unknown, thisArg?: any): boolean;
79
+ };
80
+ readonly find: {
81
+ <S_3 extends DefinitionOf<S, typeof Empty>["$inline"]>(predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, obj: DefinitionOf<S, typeof Empty>["$inline"][]) => value is S_3, thisArg?: any): S_3 | undefined;
82
+ (predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, obj: DefinitionOf<S, typeof Empty>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S, typeof Empty>["$inline"] | undefined;
83
+ };
84
+ readonly findIndex: (predicate: (value: DefinitionOf<S, typeof Empty>["$inline"], index: number, obj: DefinitionOf<S, typeof Empty>["$inline"][]) => unknown, thisArg?: any) => number;
85
+ readonly indexOf: (searchElement: DefinitionOf<S, typeof Empty>["$inline"], fromIndex?: number) => number;
86
+ readonly lastIndexOf: (searchElement: DefinitionOf<S, typeof Empty>["$inline"], fromIndex?: number) => number;
87
+ readonly includes: (searchElement: DefinitionOf<S, typeof Empty>["$inline"], fromIndex?: number) => boolean;
88
+ readonly keys: () => IterableIterator<number>;
89
+ readonly values: () => IterableIterator<DefinitionOf<S, typeof Empty>["$inline"]>;
90
+ readonly entries: () => IterableIterator<[number, DefinitionOf<S, typeof Empty>["$inline"]]>;
91
+ readonly at: (index: number) => DefinitionOf<S, typeof Empty>["$inline"] | undefined;
92
+ readonly concat: {
93
+ (...items: ConcatArray<DefinitionOf<S, typeof Empty>["$inline"]>[]): DefinitionOf<S, typeof Empty>["$inline"][];
94
+ (...items: (DefinitionOf<S, typeof Empty>["$inline"] | ConcatArray<DefinitionOf<S, typeof Empty>["$inline"]>)[]): DefinitionOf<S, typeof Empty>["$inline"][];
95
+ };
96
+ readonly flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[];
97
+ readonly splice: {
98
+ (start: number, deleteCount?: number): DefinitionOf<S, typeof Empty>["$inline"][];
99
+ (start: number, deleteCount: number, ...items: DefinitionOf<S, typeof Empty>["$inline"][]): DefinitionOf<S, typeof Empty>["$inline"][];
100
+ };
101
+ readonly flatMap: <U_2, This = undefined>(callback: (this: This, value: DefinitionOf<S, typeof Empty>["$inline"], index: number, array: DefinitionOf<S, typeof Empty>["$inline"][]) => U_2 | readonly U_2[], thisArg?: This | undefined) => U_2[];
102
+ readonly push: (...items: DefinitionOf<S, typeof Empty>["$inline"][]) => number;
103
+ readonly pop: () => DefinitionOf<S, typeof Empty>["$inline"] | undefined;
104
+ readonly sort: (compareFn?: ((a: DefinitionOf<S, typeof Empty>["$inline"], b: DefinitionOf<S, typeof Empty>["$inline"]) => number) | undefined) => Cache["Inline"];
105
+ readonly slice: (start?: number, end?: number) => DefinitionOf<S, typeof Empty>["$inline"][];
106
+ readonly length: number;
107
+ [Symbol.iterator](): IterableIterator<DefinitionOf<S, typeof Empty>["$inline"]>;
108
+ });
109
+ export {};
110
+ //# sourceMappingURL=multiple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiple.d.ts","sourceRoot":"","sources":["../src/multiple.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,MAAM,EACN,SAAS,EACT,YAAY,EAEZ,mBAAmB,EACnB,KAAK,EACL,WAAW,EACZ,MAAM,KAAK,CAAC;AAEb,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,SAAS,CAAC;AAC3D,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAEvD,KAAK,QAAQ,CAAC,CAAC,SAAS,qBAAqB,IAAI;IAC/C,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,QAAQ,SAKf,CAAC,gCA4Ia,CAAC,iDADH,KAAK,wCA3IjB,CAAC,SA4Ia,CAAC,AA3IZ,uDA0IS,KAAK,AArIY,CAAC,QAAQ,CAAC;WAqI3B,KAAK,AArIY,CAAC,QAAQ,CAAC;iBAK5B,MAAM,CAgIL,KAAK,AAhIM,CAAC,YAAY,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAOxB,CAAC,wCAAD,CAAC,AAFR,SACA,MAAM,CA0HD,KAAK,AA1HE,CAAC,YAAY,CAAC,CAAC,GACjC,YAAY,CAAC,CAAC,CAAC;iBASF,GAAC,wCAAD,GAAC,AAFR,SAkHK,KAAK,AAjHL,CAAC,YAAY,CAAC,GACzB,YAAY,CAAC,GAAC,CAAC;sBAgHJ,KAAK,AA5GW,CAAC,QAAQ,CAAC,GA4G1B,KAAK,AA5G6B,CAAC,YAAY,CAAC;aA4GhD,KAAK,AApGE,CAAC,QAAQ,CAAC;+BAoGxB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;WAAhB,KAAK,AArIY,CAAC,QAAQ,CAAC;iBAK5B,MAAM,CAgIL,KAAK,AAhIM,CAAC,YAAY,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwI3C,CAAC"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Multiple = void 0;
4
+ const _1 = require("./_");
5
+ const Multiple = (of, base = _1.Empty) => {
6
+ const longhand = (0, _1.Shape)(of);
7
+ class $Multiple extends base {
8
+ value;
9
+ constructor(value) {
10
+ super();
11
+ this.value = value;
12
+ }
13
+ static $shape = "multiple";
14
+ serialize() {
15
+ return $Multiple.$serialize(this.value);
16
+ }
17
+ static deserialize(value) {
18
+ return new this($Multiple.$deserialize(value));
19
+ }
20
+ static $deserialize(value) {
21
+ return value.map(longhand.$deserialize);
22
+ }
23
+ static $serialize(value) {
24
+ return value.map(longhand.$serialize);
25
+ }
26
+ [Symbol.iterator]() {
27
+ return this.value[Symbol.iterator]();
28
+ }
29
+ static $inline;
30
+ get map() {
31
+ return this.value.map.bind(this.value);
32
+ }
33
+ get reduce() {
34
+ return this.value.reduce.bind(this.value);
35
+ }
36
+ get filter() {
37
+ return this.value.filter.bind(this.value);
38
+ }
39
+ get forEach() {
40
+ return this.value.forEach.bind(this.value);
41
+ }
42
+ get some() {
43
+ return this.value.some.bind(this.value);
44
+ }
45
+ get every() {
46
+ return this.value.every.bind(this.value);
47
+ }
48
+ get find() {
49
+ return this.value.find.bind(this.value);
50
+ }
51
+ get findIndex() {
52
+ return this.value.findIndex.bind(this.value);
53
+ }
54
+ get indexOf() {
55
+ return this.value.indexOf.bind(this.value);
56
+ }
57
+ get lastIndexOf() {
58
+ return this.value.lastIndexOf.bind(this.value);
59
+ }
60
+ get includes() {
61
+ return this.value.includes.bind(this.value);
62
+ }
63
+ get keys() {
64
+ return this.value.keys.bind(this.value);
65
+ }
66
+ get values() {
67
+ return this.value.values.bind(this.value);
68
+ }
69
+ get entries() {
70
+ return this.value.entries.bind(this.value);
71
+ }
72
+ get at() {
73
+ return this.value.at.bind(this.value);
74
+ }
75
+ get concat() {
76
+ return this.value.concat.bind(this.value);
77
+ }
78
+ get flat() {
79
+ return this.value.flat.bind(this.value);
80
+ }
81
+ get splice() {
82
+ return this.value.splice.bind(this.value);
83
+ }
84
+ get flatMap() {
85
+ return this.value.flatMap.bind(this.value);
86
+ }
87
+ get push() {
88
+ return this.value.push.bind(this.value);
89
+ }
90
+ get pop() {
91
+ return this.value.pop.bind(this.value);
92
+ }
93
+ get sort() {
94
+ return this.value.sort.bind(this.value);
95
+ }
96
+ get slice() {
97
+ return this.value.slice.bind(this.value);
98
+ }
99
+ get length() {
100
+ return this.value.length;
101
+ }
102
+ }
103
+ return $Multiple;
104
+ };
105
+ exports.Multiple = Multiple;
106
+ //# sourceMappingURL=multiple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiple.js","sourceRoot":"","sources":["../src/multiple.ts"],"names":[],"mappings":";;;AAAA,0BASa;AAUN,MAAM,QAAQ,GAAG,CAKtB,EAAK,EACL,OAAU,QAAY,EACtB,EAAE;IACF,MAAM,QAAQ,GAAG,IAAA,QAAK,EAAC,EAAE,CAAC,CAAC;IAE3B,MAAe,SAAU,SAAS,IAA+B;QAC5C;QAAnB,YAAmB,KAAsB;YACvC,KAAK,EAAE,CAAC;YADS,UAAK,GAAL,KAAK,CAAiB;QAEzC,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,UAAmB,CAAC;QAEpC,SAAS;YACP,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAQ,CAAC;QACjD,CAAC;QAED,MAAM,CAAC,WAAW,CAEhB,KAAkC;YAElC,OAAO,IAAK,IAAY,CACrB,SAAiB,CAAC,YAAY,CAAC,KAAK,CAAC,CACpB,CAAC;QACvB,CAAC;QAED,MAAM,CAAC,YAAY,CAEjB,KAA0B;YAE1B,OAAQ,KAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,KAAsB;YACtC,OAAQ,KAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAiB,CAAC,CAAC;QACxD,CAAC;QAED,CAAC,MAAM,CAAC,QAAQ,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,CAAC;QAED,MAAM,CAAC,OAAO,CAAkB;QAEhC,IAAI,GAAG;YACL,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,MAAM;YACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,MAAM;YACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI;YACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,KAAK;YACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,IAAI;YACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,SAAS;YACX,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,WAAW;YACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,QAAQ;YACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,IAAI;YACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,MAAM;YACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,EAAE;YACJ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,MAAM;YACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,IAAI;YACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,MAAM;YACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI;YACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,GAAG;YACL,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,IAAI;YACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,KAAK;YACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,MAAM;YACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,CAAC;;IAWH,OAAO,SAA4B,CAAC;AACtC,CAAC,CAAC;AAxJW,QAAA,QAAQ,YAwJnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=multiple.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiple.spec.d.ts","sourceRoot":"","sources":["../src/multiple.spec.ts"],"names":[],"mappings":""}