@ddd-ts/shape 0.0.3-53 → 0.0.3-55

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 (93) hide show
  1. package/dist/_.d.ts +39 -0
  2. package/dist/_.d.ts.map +1 -0
  3. package/dist/_.js +51 -0
  4. package/dist/_.js.map +1 -0
  5. package/dist/choice.d.ts +158 -0
  6. package/dist/choice.d.ts.map +1 -0
  7. package/dist/choice.js +46 -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 +21 -0
  14. package/dist/class.d.ts.map +1 -0
  15. package/dist/class.js +30 -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/definitions/stringEnum.d.ts +3 -0
  22. package/dist/definitions/stringEnum.d.ts.map +1 -1
  23. package/dist/definitions/stringEnum.js +8 -1
  24. package/dist/definitions/stringEnum.js.map +1 -1
  25. package/dist/definitions/stringEnum.spec.js +5 -0
  26. package/dist/definitions/stringEnum.spec.js.map +1 -1
  27. package/dist/dict.d.ts +26 -0
  28. package/dist/dict.d.ts.map +1 -0
  29. package/dist/dict.js +46 -0
  30. package/dist/dict.js.map +1 -0
  31. package/dist/dict.spec.d.ts +2 -0
  32. package/dist/dict.spec.d.ts.map +1 -0
  33. package/dist/dict.spec.js +180 -0
  34. package/dist/dict.spec.js.map +1 -0
  35. package/dist/either.d.ts +21 -0
  36. package/dist/either.d.ts.map +1 -0
  37. package/dist/either.js +42 -0
  38. package/dist/either.js.map +1 -0
  39. package/dist/either.spec.d.ts +2 -0
  40. package/dist/either.spec.d.ts.map +1 -0
  41. package/dist/either.spec.js +199 -0
  42. package/dist/either.spec.js.map +1 -0
  43. package/dist/index.d.ts +10 -15
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +10 -15
  46. package/dist/index.js.map +1 -1
  47. package/dist/literal.d.ts +43 -0
  48. package/dist/literal.d.ts.map +1 -0
  49. package/dist/literal.js +30 -0
  50. package/dist/literal.js.map +1 -0
  51. package/dist/literal.spec.d.ts +2 -0
  52. package/dist/literal.spec.d.ts.map +1 -0
  53. package/dist/literal.spec.js +162 -0
  54. package/dist/literal.spec.js.map +1 -0
  55. package/dist/mapping.d.ts +39 -0
  56. package/dist/mapping.d.ts.map +1 -0
  57. package/dist/mapping.js +50 -0
  58. package/dist/mapping.js.map +1 -0
  59. package/dist/mapping.spec.d.ts +2 -0
  60. package/dist/mapping.spec.d.ts.map +1 -0
  61. package/dist/mapping.spec.js +207 -0
  62. package/dist/mapping.spec.js.map +1 -0
  63. package/dist/mixins/primitive.spec.js +0 -1
  64. package/dist/mixins/primitive.spec.js.map +1 -1
  65. package/dist/multiple.d.ts +159 -0
  66. package/dist/multiple.d.ts.map +1 -0
  67. package/dist/multiple.js +60 -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 +208 -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 +24 -0
  82. package/dist/optional.d.ts.map +1 -0
  83. package/dist/optional.js +40 -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/test.d.ts +36 -0
  90. package/dist/test.d.ts.map +1 -0
  91. package/dist/test.js +46 -0
  92. package/dist/test.js.map +1 -0
  93. package/package.json +1 -1
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const dict_1 = require("./dict");
4
+ const literal_1 = require("./literal");
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, literal_1.Literal)(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, literal_1.Literal)(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, literal_1.Literal)(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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"}
@@ -8,7 +8,6 @@ describe("Primitive", () => {
8
8
  }
9
9
  const a = new Id("my id");
10
10
  expect(a.value).toEqual("my id");
11
- console.log(a.serialize());
12
11
  (0, testUtils_1.checkPrimitive)(Id, a);
13
12
  });
14
13
  it("uses complex primitive", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"primitive.spec.js","sourceRoot":"","sources":["../../src/mixins/primitive.spec.ts"],"names":[],"mappings":";;AAAA,2CAAwC;AACxC,4CAA8C;AAE9C,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACzB,MAAM,EAAG,SAAQ,IAAA,qBAAS,EAAC,MAAM,CAAC;SAAG;QAErC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;QAC1B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEjC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3B,IAAA,0BAAc,EAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACjC,MAAM,IAAK,SAAQ,IAAA,qBAAS,EAAC,CAAC,MAAM,CAAC,CAAC;SAAG;QAEzC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAEzC,IAAA,0BAAc,EAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"primitive.spec.js","sourceRoot":"","sources":["../../src/mixins/primitive.spec.ts"],"names":[],"mappings":";;AAAA,2CAAwC;AACxC,4CAA8C;AAE9C,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACzB,MAAM,EAAG,SAAQ,IAAA,qBAAS,EAAC,MAAM,CAAC;SAAG;QAErC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;QAC1B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEjC,IAAA,0BAAc,EAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACjC,MAAM,IAAK,SAAQ,IAAA,qBAAS,EAAC,CAAC,MAAM,CAAC,CAAC;SAAG;QAEzC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAEpC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAEzC,IAAA,0BAAc,EAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,159 @@
1
+ import { Definition, Expand, Shorthand, DefinitionOf, AbstractConstructor, Empty } from "./_";
2
+ export type MultipleShorthand = (Definition | Shorthand)[];
3
+ export type MultipleConfiguration = Definition | Shorthand;
4
+ export declare const Multiple: <const S extends MultipleConfiguration, B extends AbstractConstructor<{}> = typeof Empty>(of: S, base?: B) => Omit<B, "prototype"> & Omit<Omit<((abstract new (value: DefinitionOf<S>["$inline"][]) => {
5
+ value: DefinitionOf<S>["$inline"][];
6
+ serialize(): Expand<ReturnType<DefinitionOf<S>["$serialize"]>>[];
7
+ [Symbol.iterator](): IterableIterator<DefinitionOf<S, typeof Empty>["$inline"]>;
8
+ }) & {
9
+ $name: "multiple";
10
+ deserialize<T extends any>(this: T, value: Expand<ReturnType<DefinitionOf<S>["$serialize"]>>[]): InstanceType<T>;
11
+ $deserialize<T_1 extends any>(this: T_1, value: ReturnType<DefinitionOf<S>["$serialize"]>[]): InstanceType<T_1>;
12
+ $serialize(value: DefinitionOf<S>["$inline"][]): ReturnType<DefinitionOf<S>["$serialize"]>[];
13
+ $inline: DefinitionOf<S>["$inline"][];
14
+ }) & (new (value: DefinitionOf<S>["$inline"][]) => {
15
+ value: DefinitionOf<S>["$inline"][];
16
+ serialize(): Expand<ReturnType<DefinitionOf<S>["$serialize"]>>[];
17
+ [Symbol.iterator](): IterableIterator<DefinitionOf<S, typeof Empty>["$inline"]>;
18
+ } & {
19
+ length: number;
20
+ pop: () => DefinitionOf<S>["$inline"] | undefined;
21
+ push: (...items: DefinitionOf<S>["$inline"][]) => number;
22
+ concat: {
23
+ (...items: ConcatArray<DefinitionOf<S>["$inline"]>[]): DefinitionOf<S>["$inline"][];
24
+ (...items: (DefinitionOf<S>["$inline"] | ConcatArray<DefinitionOf<S>["$inline"]>)[]): DefinitionOf<S>["$inline"][];
25
+ };
26
+ slice: (start?: number | undefined, end?: number | undefined) => DefinitionOf<S>["$inline"][];
27
+ sort: (compareFn?: ((a: DefinitionOf<S>["$inline"], b: DefinitionOf<S>["$inline"]) => number) | undefined) => DefinitionOf<S>["$inline"][];
28
+ splice: {
29
+ (start: number, deleteCount?: number | undefined): DefinitionOf<S>["$inline"][];
30
+ (start: number, deleteCount: number, ...items: DefinitionOf<S>["$inline"][]): DefinitionOf<S>["$inline"][];
31
+ };
32
+ indexOf: (searchElement: DefinitionOf<S>["$inline"], fromIndex?: number | undefined) => number;
33
+ lastIndexOf: (searchElement: DefinitionOf<S>["$inline"], fromIndex?: number | undefined) => number;
34
+ every: {
35
+ <S_1 extends DefinitionOf<S>["$inline"]>(predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => value is S_1, thisArg?: any): this is S_1[];
36
+ (predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any): boolean;
37
+ };
38
+ some: (predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any) => boolean;
39
+ forEach: (callbackfn: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => void, thisArg?: any) => void;
40
+ map: <U>(callbackfn: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => U, thisArg?: any) => U[];
41
+ filter: {
42
+ <S_2 extends DefinitionOf<S>["$inline"]>(predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => value is S_2, thisArg?: any): S_2[];
43
+ (predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S>["$inline"][];
44
+ };
45
+ reduce: {
46
+ (callbackfn: (previousValue: DefinitionOf<S>["$inline"], currentValue: DefinitionOf<S>["$inline"], currentIndex: number, array: DefinitionOf<S>["$inline"][]) => DefinitionOf<S>["$inline"]): DefinitionOf<S>["$inline"];
47
+ (callbackfn: (previousValue: DefinitionOf<S>["$inline"], currentValue: DefinitionOf<S>["$inline"], currentIndex: number, array: DefinitionOf<S>["$inline"][]) => DefinitionOf<S>["$inline"], initialValue: DefinitionOf<S>["$inline"]): DefinitionOf<S>["$inline"];
48
+ <U_1>(callbackfn: (previousValue: U_1, currentValue: DefinitionOf<S>["$inline"], currentIndex: number, array: DefinitionOf<S>["$inline"][]) => U_1, initialValue: U_1): U_1;
49
+ };
50
+ find: {
51
+ <S_3 extends DefinitionOf<S>["$inline"]>(predicate: (value: DefinitionOf<S>["$inline"], index: number, obj: DefinitionOf<S>["$inline"][]) => value is S_3, thisArg?: any): S_3 | undefined;
52
+ (predicate: (value: DefinitionOf<S>["$inline"], index: number, obj: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S>["$inline"] | undefined;
53
+ };
54
+ findIndex: (predicate: (value: DefinitionOf<S>["$inline"], index: number, obj: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any) => number;
55
+ entries: () => IterableIterator<[number, DefinitionOf<S>["$inline"]]>;
56
+ keys: () => IterableIterator<number>;
57
+ values: () => IterableIterator<DefinitionOf<S>["$inline"]>;
58
+ includes: (searchElement: DefinitionOf<S>["$inline"], fromIndex?: number | undefined) => boolean;
59
+ flatMap: <U_2, This = undefined>(callback: (this: This, value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => U_2 | readonly U_2[], thisArg?: This | undefined) => U_2[];
60
+ flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[];
61
+ at: (index: number) => DefinitionOf<S>["$inline"] | undefined;
62
+ }), ""> & (abstract new (value: DefinitionOf<S>["$inline"][]) => {
63
+ value: DefinitionOf<S>["$inline"][];
64
+ serialize(): Expand<ReturnType<DefinitionOf<S>["$serialize"]>>[];
65
+ [Symbol.iterator](): IterableIterator<DefinitionOf<S, typeof Empty>["$inline"]>;
66
+ } & {
67
+ length: number;
68
+ pop: () => DefinitionOf<S>["$inline"] | undefined;
69
+ push: (...items: DefinitionOf<S>["$inline"][]) => number;
70
+ concat: {
71
+ (...items: ConcatArray<DefinitionOf<S>["$inline"]>[]): DefinitionOf<S>["$inline"][];
72
+ (...items: (DefinitionOf<S>["$inline"] | ConcatArray<DefinitionOf<S>["$inline"]>)[]): DefinitionOf<S>["$inline"][];
73
+ };
74
+ slice: (start?: number | undefined, end?: number | undefined) => DefinitionOf<S>["$inline"][];
75
+ sort: (compareFn?: ((a: DefinitionOf<S>["$inline"], b: DefinitionOf<S>["$inline"]) => number) | undefined) => DefinitionOf<S>["$inline"][];
76
+ splice: {
77
+ (start: number, deleteCount?: number | undefined): DefinitionOf<S>["$inline"][];
78
+ (start: number, deleteCount: number, ...items: DefinitionOf<S>["$inline"][]): DefinitionOf<S>["$inline"][];
79
+ };
80
+ indexOf: (searchElement: DefinitionOf<S>["$inline"], fromIndex?: number | undefined) => number;
81
+ lastIndexOf: (searchElement: DefinitionOf<S>["$inline"], fromIndex?: number | undefined) => number;
82
+ every: {
83
+ <S_1 extends DefinitionOf<S>["$inline"]>(predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => value is S_1, thisArg?: any): this is S_1[];
84
+ (predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any): boolean;
85
+ };
86
+ some: (predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any) => boolean;
87
+ forEach: (callbackfn: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => void, thisArg?: any) => void;
88
+ map: <U>(callbackfn: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => U, thisArg?: any) => U[];
89
+ filter: {
90
+ <S_2 extends DefinitionOf<S>["$inline"]>(predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => value is S_2, thisArg?: any): S_2[];
91
+ (predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S>["$inline"][];
92
+ };
93
+ reduce: {
94
+ (callbackfn: (previousValue: DefinitionOf<S>["$inline"], currentValue: DefinitionOf<S>["$inline"], currentIndex: number, array: DefinitionOf<S>["$inline"][]) => DefinitionOf<S>["$inline"]): DefinitionOf<S>["$inline"];
95
+ (callbackfn: (previousValue: DefinitionOf<S>["$inline"], currentValue: DefinitionOf<S>["$inline"], currentIndex: number, array: DefinitionOf<S>["$inline"][]) => DefinitionOf<S>["$inline"], initialValue: DefinitionOf<S>["$inline"]): DefinitionOf<S>["$inline"];
96
+ <U_1>(callbackfn: (previousValue: U_1, currentValue: DefinitionOf<S>["$inline"], currentIndex: number, array: DefinitionOf<S>["$inline"][]) => U_1, initialValue: U_1): U_1;
97
+ };
98
+ find: {
99
+ <S_3 extends DefinitionOf<S>["$inline"]>(predicate: (value: DefinitionOf<S>["$inline"], index: number, obj: DefinitionOf<S>["$inline"][]) => value is S_3, thisArg?: any): S_3 | undefined;
100
+ (predicate: (value: DefinitionOf<S>["$inline"], index: number, obj: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S>["$inline"] | undefined;
101
+ };
102
+ findIndex: (predicate: (value: DefinitionOf<S>["$inline"], index: number, obj: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any) => number;
103
+ entries: () => IterableIterator<[number, DefinitionOf<S>["$inline"]]>;
104
+ keys: () => IterableIterator<number>;
105
+ values: () => IterableIterator<DefinitionOf<S>["$inline"]>;
106
+ includes: (searchElement: DefinitionOf<S>["$inline"], fromIndex?: number | undefined) => boolean;
107
+ flatMap: <U_2, This = undefined>(callback: (this: This, value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => U_2 | readonly U_2[], thisArg?: This | undefined) => U_2[];
108
+ flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[];
109
+ at: (index: number) => DefinitionOf<S>["$inline"] | undefined;
110
+ }), ""> & (abstract new (value: Expand<DefinitionOf<S>["$inline"]>[]) => InstanceType<B> & {
111
+ value: DefinitionOf<S>["$inline"][];
112
+ serialize(): Expand<ReturnType<DefinitionOf<S>["$serialize"]>>[];
113
+ [Symbol.iterator](): IterableIterator<DefinitionOf<S, typeof Empty>["$inline"]>;
114
+ } & {
115
+ length: number;
116
+ pop: () => DefinitionOf<S>["$inline"] | undefined;
117
+ push: (...items: DefinitionOf<S>["$inline"][]) => number;
118
+ concat: {
119
+ (...items: ConcatArray<DefinitionOf<S>["$inline"]>[]): DefinitionOf<S>["$inline"][];
120
+ (...items: (DefinitionOf<S>["$inline"] | ConcatArray<DefinitionOf<S>["$inline"]>)[]): DefinitionOf<S>["$inline"][];
121
+ };
122
+ slice: (start?: number | undefined, end?: number | undefined) => DefinitionOf<S>["$inline"][];
123
+ sort: (compareFn?: ((a: DefinitionOf<S>["$inline"], b: DefinitionOf<S>["$inline"]) => number) | undefined) => DefinitionOf<S>["$inline"][];
124
+ splice: {
125
+ (start: number, deleteCount?: number | undefined): DefinitionOf<S>["$inline"][];
126
+ (start: number, deleteCount: number, ...items: DefinitionOf<S>["$inline"][]): DefinitionOf<S>["$inline"][];
127
+ };
128
+ indexOf: (searchElement: DefinitionOf<S>["$inline"], fromIndex?: number | undefined) => number;
129
+ lastIndexOf: (searchElement: DefinitionOf<S>["$inline"], fromIndex?: number | undefined) => number;
130
+ every: {
131
+ <S_1 extends DefinitionOf<S>["$inline"]>(predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => value is S_1, thisArg?: any): this is S_1[];
132
+ (predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any): boolean;
133
+ };
134
+ some: (predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any) => boolean;
135
+ forEach: (callbackfn: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => void, thisArg?: any) => void;
136
+ map: <U>(callbackfn: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => U, thisArg?: any) => U[];
137
+ filter: {
138
+ <S_2 extends DefinitionOf<S>["$inline"]>(predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => value is S_2, thisArg?: any): S_2[];
139
+ (predicate: (value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S>["$inline"][];
140
+ };
141
+ reduce: {
142
+ (callbackfn: (previousValue: DefinitionOf<S>["$inline"], currentValue: DefinitionOf<S>["$inline"], currentIndex: number, array: DefinitionOf<S>["$inline"][]) => DefinitionOf<S>["$inline"]): DefinitionOf<S>["$inline"];
143
+ (callbackfn: (previousValue: DefinitionOf<S>["$inline"], currentValue: DefinitionOf<S>["$inline"], currentIndex: number, array: DefinitionOf<S>["$inline"][]) => DefinitionOf<S>["$inline"], initialValue: DefinitionOf<S>["$inline"]): DefinitionOf<S>["$inline"];
144
+ <U_1>(callbackfn: (previousValue: U_1, currentValue: DefinitionOf<S>["$inline"], currentIndex: number, array: DefinitionOf<S>["$inline"][]) => U_1, initialValue: U_1): U_1;
145
+ };
146
+ find: {
147
+ <S_3 extends DefinitionOf<S>["$inline"]>(predicate: (value: DefinitionOf<S>["$inline"], index: number, obj: DefinitionOf<S>["$inline"][]) => value is S_3, thisArg?: any): S_3 | undefined;
148
+ (predicate: (value: DefinitionOf<S>["$inline"], index: number, obj: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any): DefinitionOf<S>["$inline"] | undefined;
149
+ };
150
+ findIndex: (predicate: (value: DefinitionOf<S>["$inline"], index: number, obj: DefinitionOf<S>["$inline"][]) => unknown, thisArg?: any) => number;
151
+ entries: () => IterableIterator<[number, DefinitionOf<S>["$inline"]]>;
152
+ keys: () => IterableIterator<number>;
153
+ values: () => IterableIterator<DefinitionOf<S>["$inline"]>;
154
+ includes: (searchElement: DefinitionOf<S>["$inline"], fromIndex?: number | undefined) => boolean;
155
+ flatMap: <U_2, This = undefined>(callback: (this: This, value: DefinitionOf<S>["$inline"], index: number, array: DefinitionOf<S>["$inline"][]) => U_2 | readonly U_2[], thisArg?: This | undefined) => U_2[];
156
+ flat: <A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[];
157
+ at: (index: number) => DefinitionOf<S>["$inline"] | undefined;
158
+ });
159
+ //# sourceMappingURL=multiple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiple.d.ts","sourceRoot":"","sources":["../src/multiple.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,MAAM,EAEN,SAAS,EACT,YAAY,EAGZ,mBAAmB,EACnB,KAAK,EAEN,MAAM,KAAK,CAAC;AAEb,MAAM,MAAM,iBAAiB,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC;AAE3D,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,SAAS,CAAC;AAE3D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsFpB,CAAC"}
@@ -0,0 +1,60 @@
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 $name = "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
+ }
31
+ const forwarded = (0, _1.forward)($Multiple, [
32
+ "map",
33
+ "reduce",
34
+ "filter",
35
+ "forEach",
36
+ "some",
37
+ "every",
38
+ "find",
39
+ "findIndex",
40
+ "indexOf",
41
+ "lastIndexOf",
42
+ "includes",
43
+ "keys",
44
+ "values",
45
+ "entries",
46
+ "length",
47
+ "at",
48
+ "concat",
49
+ "flat",
50
+ "splice",
51
+ "flatMap",
52
+ "push",
53
+ "pop",
54
+ "sort",
55
+ "slice",
56
+ ]);
57
+ return forwarded;
58
+ };
59
+ exports.Multiple = Multiple;
60
+ //# sourceMappingURL=multiple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiple.js","sourceRoot":"","sources":["../src/multiple.ts"],"names":[],"mappings":";;;AAAA,0BAYa;AAMN,MAAM,QAAQ,GAAG,CAItB,EAAK,EACL,OAAU,QAAY,EACtB,EAAE;IAKF,MAAM,QAAQ,GAAG,IAAA,QAAK,EAAC,EAAE,CAAC,CAAC;IAE3B,MAAe,SAAU,SAAS,IAA+B;QAC5C;QAAnB,YAAmB,KAAa;YAC9B,KAAK,EAAE,CAAC;YADS,UAAK,GAAL,KAAK,CAAQ;QAEhC,CAAC;QACD,MAAM,CAAC,KAAK,GAAG,UAAmB,CAAC;QAEnC,SAAS;YACP,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAQ,CAAC;QACjD,CAAC;QAED,MAAM,CAAC,WAAW,CAEhB,KAAyB;YAEzB,OAAO,IAAK,IAAY,CACrB,SAAiB,CAAC,YAAY,CAAC,KAAK,CAAC,CACpB,CAAC;QACvB,CAAC;QAED,MAAM,CAAC,YAAY,CAEjB,KAAiB;YAEjB,OAAQ,KAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,KAAa;YAC7B,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,CAAS;;IAGzB,MAAM,SAAS,GAAG,IAAA,UAAO,EAAC,SAAS,EAAE;QACnC,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,WAAW;QACX,SAAS;QACT,aAAa;QACb,UAAU;QACV,MAAM;QACN,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,SAAS;QACT,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;KACC,CAAC,CAAC;IAUZ,OAAO,SAA4B,CAAC;AACtC,CAAC,CAAC;AAtFW,QAAA,QAAQ,YAsFnB"}
@@ -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":""}