@bikky/replication 1.0.2 → 1.0.3

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 (165) hide show
  1. package/.idea/encodings.xml +4 -0
  2. package/.idea/vcs.xml +4 -0
  3. package/Constants/Errors.js +1 -0
  4. package/Constants/Errors.js.map +1 -0
  5. package/Constants/Logging.d.ts +1 -0
  6. package/Constants/Logging.js +2 -2
  7. package/Constants/Logging.js.map +1 -0
  8. package/Constants/ReplicableRegistry.d.ts +4 -3
  9. package/Constants/ReplicableRegistry.js +7 -8
  10. package/Constants/ReplicableRegistry.js.map +1 -0
  11. package/Constants/SerialisationTypes.js +4 -4
  12. package/Constants/SerialisationTypes.js.map +1 -0
  13. package/Constants/SourceMaps.js +1 -0
  14. package/Constants/SourceMaps.js.map +1 -0
  15. package/Constants/TraversalStep.js +1 -0
  16. package/Constants/TraversalStep.js.map +1 -0
  17. package/Constants/Versions.d.ts +2 -1
  18. package/Constants/Versions.js +1 -0
  19. package/Constants/Versions.js.map +1 -0
  20. package/Expressions/Compiler/BuiltinGrammar.js +1 -0
  21. package/Expressions/Compiler/BuiltinGrammar.js.map +1 -0
  22. package/Expressions/Compiler/ExpressionGrammar.js +1 -0
  23. package/Expressions/Compiler/ExpressionGrammar.js.map +1 -0
  24. package/Expressions/Compiler/Parser.js +27 -18
  25. package/Expressions/Compiler/Parser.js.map +1 -0
  26. package/Expressions/Compiler/Tokenizer.js +1 -0
  27. package/Expressions/Compiler/Tokenizer.js.map +1 -0
  28. package/Expressions/Compiler/__tests__/Replicable.Expressions.Parser.test.js +1 -0
  29. package/Expressions/Compiler/__tests__/Replicable.Expressions.Parser.test.js.map +1 -0
  30. package/Expressions/Compiler/__tests__/Replicable.Expressions.Tokenizer.test.js +1 -0
  31. package/Expressions/Compiler/__tests__/Replicable.Expressions.Tokenizer.test.js.map +1 -0
  32. package/Expressions/CreateEvaluator.js +1 -0
  33. package/Expressions/CreateEvaluator.js.map +1 -0
  34. package/Expressions/EvaluatorChain.js +6 -1
  35. package/Expressions/EvaluatorChain.js.map +1 -0
  36. package/Expressions/EvaluatorSteps.js +1 -0
  37. package/Expressions/EvaluatorSteps.js.map +1 -0
  38. package/Expressions/EvaluatorString.js +1 -0
  39. package/Expressions/EvaluatorString.js.map +1 -0
  40. package/Expressions/Expression.js +10 -3
  41. package/Expressions/Expression.js.map +1 -0
  42. package/Expressions/Traverser.js +2 -2
  43. package/Expressions/Traverser.js.map +1 -0
  44. package/Expressions/TypeRegistry/Accessors.js +1 -0
  45. package/Expressions/TypeRegistry/Accessors.js.map +1 -0
  46. package/Expressions/TypeRegistry/ChainCollections.js +1 -0
  47. package/Expressions/TypeRegistry/ChainCollections.js.map +1 -0
  48. package/Expressions/TypeRegistry/ChainTypes.js +1 -0
  49. package/Expressions/TypeRegistry/ChainTypes.js.map +1 -0
  50. package/Expressions/TypeRegistry/CustomAPI.d.ts +6 -4
  51. package/Expressions/TypeRegistry/CustomAPI.js +16 -34
  52. package/Expressions/TypeRegistry/CustomAPI.js.map +1 -0
  53. package/Expressions/TypeRegistry/Primitive.js +1 -0
  54. package/Expressions/TypeRegistry/Primitive.js.map +1 -0
  55. package/Expressions/TypeRegistry/Registry.js +6 -6
  56. package/Expressions/TypeRegistry/Registry.js.map +1 -0
  57. package/Expressions/TypeRegistry/ReplAPI.d.ts +7 -5
  58. package/Expressions/TypeRegistry/ReplAPI.js +9 -22
  59. package/Expressions/TypeRegistry/ReplAPI.js.map +1 -0
  60. package/Expressions/TypeRegistry/Scope.js +1 -0
  61. package/Expressions/TypeRegistry/Scope.js.map +1 -0
  62. package/Expressions/TypeRegistry/Types.js +1 -0
  63. package/Expressions/TypeRegistry/Types.js.map +1 -0
  64. package/Expressions/TypeRegistry/__tests__/Replicable.Expressions.Accessors.test.js +1 -0
  65. package/Expressions/TypeRegistry/__tests__/Replicable.Expressions.Accessors.test.js.map +1 -0
  66. package/Expressions/__tests__/ExpressionExamples.js +1 -0
  67. package/Expressions/__tests__/ExpressionExamples.js.map +1 -0
  68. package/Expressions/__tests__/Replicable.Expressions.Expressions.test.js +4 -3
  69. package/Expressions/__tests__/Replicable.Expressions.Expressions.test.js.map +1 -0
  70. package/IDPool.data.d.ts +2 -0
  71. package/IDPool.js +1 -0
  72. package/IDPool.js.map +1 -0
  73. package/Main.js +1 -0
  74. package/Main.js.map +1 -0
  75. package/Networking.js +3 -4
  76. package/Networking.js.map +1 -0
  77. package/Replicatable.js +5 -6
  78. package/Replicatable.js.map +1 -0
  79. package/Tracking/Buffable.d.ts +3 -2
  80. package/Tracking/Buffable.js +1 -0
  81. package/Tracking/Buffable.js.map +1 -0
  82. package/Tracking/Class.d.ts +6 -4
  83. package/Tracking/Class.js +37 -19
  84. package/Tracking/Class.js.map +1 -0
  85. package/Tracking/Functions.js +3 -2
  86. package/Tracking/Functions.js.map +1 -0
  87. package/Tracking/GlobalGroup.js +2 -2
  88. package/Tracking/GlobalGroup.js.map +1 -0
  89. package/Tracking/Property.d.ts +3 -2
  90. package/Tracking/Property.js +9 -5
  91. package/Tracking/Property.js.map +1 -0
  92. package/Tracking/Types.js +1 -0
  93. package/Tracking/Types.js.map +1 -0
  94. package/Tracking/__tests__/Replicable.Tracking.Decorator.test.js +1 -0
  95. package/Tracking/__tests__/Replicable.Tracking.Decorator.test.js.map +1 -0
  96. package/Tracking/__tests__/Replicable.Tracking.Deserialisation.test.js +1 -0
  97. package/Tracking/__tests__/Replicable.Tracking.Deserialisation.test.js.map +1 -0
  98. package/Tracking/__tests__/Replicable.Tracking.MixinSchemaGeneration.test.js +1 -0
  99. package/Tracking/__tests__/Replicable.Tracking.MixinSchemaGeneration.test.js.map +1 -0
  100. package/Tracking/__tests__/Replicable.Tracking.Struct.test.js +1 -0
  101. package/Tracking/__tests__/Replicable.Tracking.Struct.test.js.map +1 -0
  102. package/Tracking/__tests__/Replicable.Tracking.Type.test.js +1 -0
  103. package/Tracking/__tests__/Replicable.Tracking.Type.test.js.map +1 -0
  104. package/Transformers/Configurer.d.ts +15 -1
  105. package/Transformers/Configurer.js +130 -21
  106. package/Transformers/Configurer.js.map +1 -0
  107. package/Transformers/Constructor.js +1 -0
  108. package/Transformers/Constructor.js.map +1 -0
  109. package/Transformers/Definitions.d.ts +3 -3
  110. package/Transformers/Definitions.js +41 -21
  111. package/Transformers/Definitions.js.map +1 -0
  112. package/Transformers/Loader.js +21 -11
  113. package/Transformers/Loader.js.map +1 -0
  114. package/Transformers/Progress.js +19 -13
  115. package/Transformers/Progress.js.map +1 -0
  116. package/Transformers/Reference.js +3 -2
  117. package/Transformers/Reference.js.map +1 -0
  118. package/Transformers/SchemaGenerator.d.ts +2 -2
  119. package/Transformers/SchemaGenerator.js +89 -7
  120. package/Transformers/SchemaGenerator.js.map +1 -0
  121. package/Transformers/Serialiser.js +1 -0
  122. package/Transformers/Serialiser.js.map +1 -0
  123. package/Transformers/Utils.d.ts +1 -1
  124. package/Transformers/Utils.js +43 -26
  125. package/Transformers/Utils.js.map +1 -0
  126. package/Transformers/__tests__/Examples.d.ts +36 -0
  127. package/Transformers/__tests__/Examples.js +40 -0
  128. package/Transformers/__tests__/Examples.js.map +1 -0
  129. package/Transformers/__tests__/Replicable.Transformers.Definitions.test.js +18 -16
  130. package/Transformers/__tests__/Replicable.Transformers.Definitions.test.js.map +1 -0
  131. package/Transformers/__tests__/Replicable.Transformers.Loader.test.js +2 -0
  132. package/Transformers/__tests__/Replicable.Transformers.Loader.test.js.map +1 -0
  133. package/Transformers/__tests__/Replicable.Transformers.Progress.test.js +1 -0
  134. package/Transformers/__tests__/Replicable.Transformers.Progress.test.js.map +1 -0
  135. package/Transformers/__tests__/Replicable.Transformers.Reference.test.js +1 -0
  136. package/Transformers/__tests__/Replicable.Transformers.Reference.test.js.map +1 -0
  137. package/Transformers/__tests__/Replicable.Transformers.SchemaGenerator.test.js +14 -2
  138. package/Transformers/__tests__/Replicable.Transformers.SchemaGenerator.test.js.map +1 -0
  139. package/Transformers/__tests__/Replicable.Transformers.SchemaGeneratorOutput.test.js +1 -0
  140. package/Transformers/__tests__/Replicable.Transformers.SchemaGeneratorOutput.test.js.map +1 -0
  141. package/Transformers/__tests__/Replicable.Transformers.Serialiser.test.js +11 -2
  142. package/Transformers/__tests__/Replicable.Transformers.Serialiser.test.js.map +1 -0
  143. package/Transformers/__tests__/Replicable.Transformers.Utils.test.js +95 -82
  144. package/Transformers/__tests__/Replicable.Transformers.Utils.test.js.map +1 -0
  145. package/__tests__/Configuration/Mocks.d.ts +2 -0
  146. package/__tests__/Configuration/Mocks.js +98 -0
  147. package/__tests__/Configuration/Mocks.js.map +1 -0
  148. package/__tests__/Configuration/Setup.d.ts +1 -0
  149. package/__tests__/Configuration/Setup.js +14 -0
  150. package/__tests__/Configuration/Setup.js.map +1 -0
  151. package/__tests__/Configuration/TestTypes.d.ts +33 -0
  152. package/__tests__/Replicable.Expressions.test.js +1 -0
  153. package/__tests__/Replicable.Expressions.test.js.map +1 -0
  154. package/__tests__/Replicable.IDPool.test.js +1 -0
  155. package/__tests__/Replicable.IDPool.test.js.map +1 -0
  156. package/__tests__/Replicable.ReplicableRegistry.test.js +23 -13
  157. package/__tests__/Replicable.ReplicableRegistry.test.js.map +1 -0
  158. package/__tests__/Replicable.Serialisation.test.js +1 -0
  159. package/__tests__/Replicable.Serialisation.test.js.map +1 -0
  160. package/package.json +15 -5
  161. package/tsconfig.json +7 -4
  162. package/tsconfig.tsbuildinfo +1 -0
  163. package/vitest.config.d.ts +2 -0
  164. package/vitest.config.js +32 -0
  165. package/vitest.config.js.map +1 -0
@@ -1,12 +1,13 @@
1
1
  import { afterAll, beforeAll, describe, expect, test } from "vitest";
2
- import { Expression, PropertyTypes, ValueIsPrimitiveType, Versions } from "../../Main.js";
2
+ import { Expression, PropertyTypes, Replicable, ValueIsPrimitiveType, Versions } from "../../Main.js";
3
3
  import { ReplicableRegistry } from "../../Constants/ReplicableRegistry.js";
4
4
  import { Utils } from "../Utils.js";
5
5
  import { BikPath } from "@bikky/path";
6
6
  import { ExpressionScopes } from "../../Expressions/TypeRegistry/Registry.js";
7
- import { ModLoader } from "../../../ModLoader.js";
8
7
  import { Pointer } from "../Reference.js";
9
8
  import { TestPropertyDecorators } from "./Examples.js";
9
+ import { Progress } from "../Progress.js";
10
+ var TransformersIndexedStruct = TestPropertyDecorators.TransformersIndexedStruct;
10
11
  //TODO: Test whichever utils function returns if a property should be loaded or not returns true for computed + default.
11
12
  describe("Replicable Utils", async () => {
12
13
  const TransformersBasicClass = TestPropertyDecorators.TransformersBasicClass;
@@ -88,8 +89,8 @@ describe("Replicable Utils", async () => {
88
89
  types: [{ types: [String], sortIndex: "string", modifiers: PropertyTypes.Solo | PropertyTypes.Expression }]
89
90
  },
90
91
  expressionForKey: undefined,
91
- expressionForProperty: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [String] }) },
92
- expressionForValue: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [String] }) },
92
+ expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [String] } },
93
+ expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [String] } },
93
94
  });
94
95
  });
95
96
  test(" 2. Assignable types for Number is correct.", async () => {
@@ -114,8 +115,8 @@ describe("Replicable Utils", async () => {
114
115
  ]
115
116
  },
116
117
  expressionForKey: undefined,
117
- expressionForProperty: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [Number] }) },
118
- expressionForValue: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [Number] }) },
118
+ expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [Number] } },
119
+ expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [Number] } },
119
120
  });
120
121
  });
121
122
  test(" 3. Assignable types for Map is correct.", async () => {
@@ -125,10 +126,10 @@ describe("Replicable Utils", async () => {
125
126
  load: {
126
127
  default: undefined,
127
128
  name: "Val3",
128
- possibleModifiers: PropertyTypes.Map,
129
+ possibleModifiers: PropertyTypes.Map | PropertyTypes.Dictionary,
129
130
  present: "optional",
130
131
  skipLoad: false,
131
- types: [{ types: [Number], keyType: [String], sortIndex: "number", modifiers: PropertyTypes.Map | PropertyTypes.Expression }]
132
+ types: [{ types: [Number], keyType: [String], sortIndex: "number", modifiers: PropertyTypes.Map | PropertyTypes.Dictionary | PropertyTypes.Expression }]
132
133
  },
133
134
  serialisation: {
134
135
  inline: undefined,
@@ -138,8 +139,8 @@ describe("Replicable Utils", async () => {
138
139
  { types: [undefined], modifiers: PropertyTypes.Solo | PropertyTypes.Expression, sortIndex: "undefined" }]
139
140
  },
140
141
  expressionForKey: undefined,
141
- expressionForProperty: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [Number], outputMap: true }) },
142
- expressionForValue: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [Number] }) },
142
+ expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [Number], outputMap: true } },
143
+ expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [Number] } },
143
144
  });
144
145
  });
145
146
  test(" 4. Assignable types for Dictionary is correct.", async () => {
@@ -162,8 +163,8 @@ describe("Replicable Utils", async () => {
162
163
  { types: [undefined], modifiers: PropertyTypes.Solo | PropertyTypes.Expression, sortIndex: "undefined" }]
163
164
  },
164
165
  expressionForKey: undefined,
165
- expressionForProperty: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [String], outputDict: true }) },
166
- expressionForValue: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [String] }) },
166
+ expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [String], outputDict: true } },
167
+ expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [String] } },
167
168
  });
168
169
  });
169
170
  test(" 5. Assignable types for Array is correct.", async () => {
@@ -185,8 +186,8 @@ describe("Replicable Utils", async () => {
185
186
  types: [{ types: [String], sortIndex: "string", modifiers: PropertyTypes.Array | PropertyTypes.Expression }]
186
187
  },
187
188
  expressionForKey: undefined,
188
- expressionForProperty: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [String], outputArray: 1 }) },
189
- expressionForValue: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [String] }) },
189
+ expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [String], outputArray: 1 } },
190
+ expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [String] } },
190
191
  });
191
192
  });
192
193
  test(" 6. Assignable types for Array2 is correct.", async () => {
@@ -208,8 +209,8 @@ describe("Replicable Utils", async () => {
208
209
  types: [{ types: [Number], sortIndex: "number", modifiers: PropertyTypes.Array2 | PropertyTypes.Expression }]
209
210
  },
210
211
  expressionForKey: undefined,
211
- expressionForProperty: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [Number], outputArray: 2 }) },
212
- expressionForValue: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [Number] }) },
212
+ expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [Number], outputArray: 2 } },
213
+ expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [Number] } },
213
214
  });
214
215
  });
215
216
  test(" 7. Assignable types for Struct is correct.", async () => {
@@ -231,8 +232,8 @@ describe("Replicable Utils", async () => {
231
232
  types: [{ types: [TestStructRepl], sortIndex: TestStructRepl.opts.typescriptTypeName, modifiers: PropertyTypes.Solo | PropertyTypes.Expression }]
232
233
  },
233
234
  expressionForKey: undefined,
234
- expressionForProperty: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [TestStructRepl.opts.typescriptTypeName] }) },
235
- expressionForValue: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [TestStructRepl.opts.typescriptTypeName] }) },
235
+ expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [TestStructRepl.opts.typescriptTypeName] } },
236
+ expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [TestStructRepl.opts.typescriptTypeName] } },
236
237
  });
237
238
  });
238
239
  test(" 8. Assignable types for inlined class is correct.", async () => {
@@ -254,8 +255,8 @@ describe("Replicable Utils", async () => {
254
255
  types: [{ types: [TestPtrRepl], sortIndex: TestPtrRepl.opts.typescriptTypeName, modifiers: PropertyTypes.Solo | PropertyTypes.Expression | PropertyTypes.ForceInline }]
255
256
  },
256
257
  expressionForKey: undefined,
257
- expressionForProperty: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [TestPtrRepl.opts.typescriptTypeName] }) },
258
- expressionForValue: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [TestPtrRepl.opts.typescriptTypeName] }) },
258
+ expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [TestPtrRepl.opts.typescriptTypeName] } },
259
+ expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [TestPtrRepl.opts.typescriptTypeName] } },
259
260
  });
260
261
  });
261
262
  test(" 9. Assignable types for not inlined class is correct.", async () => {
@@ -277,8 +278,8 @@ describe("Replicable Utils", async () => {
277
278
  types: [{ types: [TestPtrRepl], sortIndex: TestPtrRepl.opts.typescriptTypeName, modifiers: PropertyTypes.Solo | PropertyTypes.Expression }]
278
279
  },
279
280
  expressionForKey: undefined,
280
- expressionForProperty: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [TestPtrRepl.opts.typescriptTypeName] }) },
281
- expressionForValue: { [Versions.v1_0_0]: Object.assign(Object.assign({}, defaultExpressionConfig), { outputTypes: [TestPtrRepl.opts.typescriptTypeName] }) },
281
+ expressionForProperty: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [TestPtrRepl.opts.typescriptTypeName] } },
282
+ expressionForValue: { [Versions.v1_0_0]: { ...defaultExpressionConfig, outputTypes: [TestPtrRepl.opts.typescriptTypeName] } },
282
283
  });
283
284
  });
284
285
  });
@@ -404,7 +405,8 @@ describe("Replicable Utils", async () => {
404
405
  ExpressionScopes.addLocalVariable(TransformersTheLotClass.name, "thisEntity", [TransformersTheLotClass]);
405
406
  ExpressionScopes.setLocalScope(TransformersTheLotClass.name, { thisEntity: new TransformersTheLotClass() });
406
407
  Expression.setCurrentStartScopeType(TransformersTheLotClass.name);
407
- await ModLoader.DoLoad();
408
+ //TODO: This was awaiting modloader do load, now do we need to do something else?
409
+ Progress.FinishedAllLoading();
408
410
  let def = TestRepl.getPropDefinition(Versions.v1_0_0, "val2");
409
411
  let config = def.expressionForProperty[Versions.v1_0_0];
410
412
  test.sequential("Prop config should be valid", () => {
@@ -425,7 +427,7 @@ describe("Replicable Utils", async () => {
425
427
  });
426
428
  test.sequential("Should return false if expression does not match prop type.", async () => {
427
429
  let val2def = TestRepl.getPropDefinition(Versions.v1_0_0, "val2");
428
- let evalStr = Expression.Parse("@{thisEntity.Val} is a string", BikPath.getCurrentFilepath(), Object.assign(Object.assign({}, config), { outputTypes: [String] }));
430
+ let evalStr = Expression.Parse("@{thisEntity.Val} is a string", BikPath.getCurrentFilepath(), { ...config, outputTypes: [String] });
429
431
  let result = Utils.ExpressionUtils.DoesExpressionMatchPropType(evalStr, val2def);
430
432
  expect(result).toBe(false);
431
433
  });
@@ -435,38 +437,46 @@ describe("Replicable Utils", async () => {
435
437
  });
436
438
  describe("CompareProp", async () => {
437
439
  test("Compare primitive values", async () => {
438
- expect(Utils.CompareUtils.CompareValWithSerialisedVal("test", "test", "val")).toBe(true);
439
- expect(Utils.CompareUtils.CompareValWithSerialisedVal("test", "test2", "val")).toBe(false);
440
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(0, 0, "val")).toBe(true);
441
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(false, false, "val")).toBe(true);
440
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal("test", ["Primitive", "test"], "val")).toBe(true);
441
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal("test", ["Primitive", "test2"], "val")).toBe(false);
442
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(0, ["Primitive", 0], "val")).toBe(true);
443
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(false, ["Primitive", false], "val")).toBe(true);
442
444
  });
443
445
  test("Compare arrays", async () => {
444
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test"], [["Primitive", "test"]], "val5")).toBe(true);
445
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test"], [["Primitive", "test2"]], "val5")).toBe(false);
446
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], [["Primitive", "test"]], "val5")).toBe(false);
447
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], [["Primitive", "test2"], ["Primitive", "two"]], "val5")).toBe(false);
448
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], [["Primitive", "test"], ["Primitive", "two2"]], "val5")).toBe(false);
449
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], [["Primitive", "test"], ["Primitive", "two"]], "val5")).toBe(true);
446
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test"], ["Array", [["Primitive", "test"]]], "val5")).toBe(true);
447
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test"], ["Array", [["Primitive", "test2"]]], "val5")).toBe(false);
448
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], ["Array", [["Primitive", "test"]]], "val5")).toBe(false);
449
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], ["Array", [["Primitive", "test2"], ["Primitive", "two"]]], "val5")).toBe(false);
450
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], ["Array", [["Primitive", "test"], ["Primitive", "two2"]]], "val5")).toBe(false);
451
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(["test", "two"], ["Array", [["Primitive", "test"], ["Primitive", "two"]]], "val5")).toBe(true);
452
+ });
453
+ test("Compare double arrays", async () => {
454
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal([["test"]], ["Array2", [[["Primitive", "test"]]]], "val6")).toBe(true);
455
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal([["test"]], ["Array2", [[["Primitive", "test2"]]]], "val6")).toBe(false);
456
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal([["test", "two"]], ["Array2", [[["Primitive", "test"]]]], "val6")).toBe(false);
457
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal([["test", "two"]], ["Array2", [[["Primitive", "test2"], ["Primitive", "two"]]]], "val6")).toBe(false);
458
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal([["test", "two"]], ["Array2", [[["Primitive", "test"], ["Primitive", "two2"]]]], "val6")).toBe(false);
459
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal([["test", "two"]], ["Array2", [[["Primitive", "test"], ["Primitive", "two"]]]], "val6")).toBe(true);
450
460
  });
451
461
  test("Compare maps", async () => {
452
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1]]), { "test": ["Primitive", 1] }, "val3")).toBe(true);
453
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1]]), { "test": ["Primitive", 2] }, "val3")).toBe(false);
454
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1]]), { "test2": ["Primitive", 1] }, "val3")).toBe(false);
455
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), { "test": ["Primitive", 1] }, "val3")).toBe(false);
456
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), { "test": ["Primitive", 1], "two": ["Primitive", 2] }, "val3")).toBe(true);
457
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), { "test": ["Primitive", 1], "two": ["Primitive", 1] }, "val3")).toBe(false);
458
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), { "test": ["Primitive", 2], "two": ["Primitive", 1] }, "val3")).toBe(false);
459
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), { "test": ["Primitive", 2], "two": ["Primitive", 2] }, "val3")).toBe(false);
462
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1]]), ["Map", { "test": ["Primitive", 1] }], "val3")).toBe(true);
463
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1]]), ["Map", { "test": ["Primitive", 2] }], "val3")).toBe(false);
464
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1]]), ["Map", { "test2": ["Primitive", 1] }], "val3")).toBe(false);
465
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), ["Map", { "test": ["Primitive", 1] }], "val3")).toBe(false);
466
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), ["Map", { "test": ["Primitive", 1], "two": ["Primitive", 2] }], "val3")).toBe(true);
467
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), ["Map", { "test": ["Primitive", 1], "two": ["Primitive", 1] }], "val3")).toBe(false);
468
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), ["Map", { "test": ["Primitive", 2], "two": ["Primitive", 1] }], "val3")).toBe(false);
469
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(new Map([["test", 1], ["two", 2]]), ["Map", { "test": ["Primitive", 2], "two": ["Primitive", 2] }], "val3")).toBe(false);
460
470
  });
461
471
  test("Compare dicts", async () => {
462
- expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1 }, { "test": ["Primitive", 1] }, "val3")).toBe(true);
463
- expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1 }, { "test": ["Primitive", 2] }, "val3")).toBe(false);
464
- expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1 }, { "test2": ["Primitive", 1] }, "val3")).toBe(false);
465
- expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, { "test": ["Primitive", 1] }, "val3")).toBe(false);
466
- expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, { "test": ["Primitive", 1], "two": ["Primitive", 2] }, "val3")).toBe(true);
467
- expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, { "test": ["Primitive", 1], "two": ["Primitive", 1] }, "val3")).toBe(false);
468
- expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, { "test": ["Primitive", 2], "two": ["Primitive", 1] }, "val3")).toBe(false);
469
- expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, { "test": ["Primitive", 2], "two": ["Primitive", 2] }, "val3")).toBe(false);
472
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1 }, ["Dict", { "test": ["Primitive", 1] }], "val3")).toBe(true);
473
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1 }, ["Dict", { "test": ["Primitive", 2] }], "val3")).toBe(false);
474
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1 }, ["Dict", { "test2": ["Primitive", 1] }], "val3")).toBe(false);
475
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, ["Dict", { "test": ["Primitive", 1] }], "val3")).toBe(false);
476
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, ["Dict", { "test": ["Primitive", 1], "two": ["Primitive", 2] }], "val3")).toBe(true);
477
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, ["Dict", { "test": ["Primitive", 1], "two": ["Primitive", 1] }], "val3")).toBe(false);
478
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, ["Dict", { "test": ["Primitive", 2], "two": ["Primitive", 1] }], "val3")).toBe(false);
479
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal({ "test": 1, "two": 2 }, ["Dict", { "test": ["Primitive", 2], "two": ["Primitive", 2] }], "val3")).toBe(false);
470
480
  });
471
481
  test("Compare expressions", async () => {
472
482
  let expr = Expression.Parse("@{thisEntity.Val}", BikPath.getCurrentFilepath(), {
@@ -478,8 +488,8 @@ describe("Replicable Utils", async () => {
478
488
  startType: TransformersTheLotClass.name,
479
489
  version: Versions.v1_0_0
480
490
  });
481
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(expr, "test", "val")).toBe(true);
482
- expect(Utils.CompareUtils.CompareValWithSerialisedVal(expr, "test2", "val")).toBe(true);
491
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(expr, ["Primitive", "test"], "val")).toBe(true);
492
+ expect(Utils.CompareUtils.CompareValWithSerialisedVal(expr, ["Primitive", "test2"], "val")).toBe(true);
483
493
  });
484
494
  test("Compare pointers", async () => {
485
495
  let val = new TransformersBasicClass();
@@ -492,43 +502,46 @@ describe("Replicable Utils", async () => {
492
502
  describe("CompareRepl and Compare", () => {
493
503
  let testPtr = new TransformersBasicClass();
494
504
  testPtr.val = "test";
495
- let objToCompare = new TransformersTheLotClass();
496
- Object.defineProperties(objToCompare, {
497
- val: { value: "test" },
498
- val2: { value: 1 },
499
- val3: { value: new Map([["test", 1]]) },
500
- val4: { value: { test: 1 } },
501
- val5: { value: ["test"] },
502
- val6: { value: [[1]] },
503
- val7: { value: new TransformersTheLotClass() },
504
- val8: { value: "test" },
505
- val9: { value: new Pointer(testPtr) },
506
- val10: { value: new Pointer(testPtr) },
507
- val13: { value: [[1]] },
508
- val14: { value: 1 }
509
- });
505
+ let objToCompare = TransformersTheLotClass.MakeExampleObj();
506
+ let serialisedObject = Replicable.Serialise(objToCompare);
510
507
  let serialisedCorrect = {
511
- val: ["Primitive", "test"],
512
- val2: ["Primitive", 1],
513
- val3: ["Map", { "test": ["Primitive", 1] }],
514
- val4: ["Dict", { "test": ["Primitive", 1] }],
515
- val5: ["Array", [["Primitive", "test"]]],
516
- val6: ["Array", [["Array", [["Primitive", 1]]]]],
517
- val7: [TransformersBasicStruct.name, { val: ["Primitive", "test"] }],
518
- val8: ["Primitive", "test"],
519
- val9: [TransformersBasicClass.name, { val: ["Primitive", "test"] }],
520
- val10: [TransformersBasicClass.name, "test"],
521
- val13: ["Array", [["Array", [["Primitive", 1]]]]],
522
- val14: ["Primitive", 1]
508
+ val: ["Primitive", "hello"],
509
+ val2: ["Primitive", 5],
510
+ val3: ["Map", { "hello": ["Primitive", 1] }],
511
+ val4: ["Dict", { 1: ["Primitive", "world"] }],
512
+ val5: ["Array", [["Primitive", "hello"]]],
513
+ val6: ["Array2", [[["Primitive", 1], ["Primitive", 2]]]],
514
+ val7: [TransformersBasicStruct.name, {
515
+ val: ["Primitive", "hi"],
516
+ version: Versions.MAX
517
+ }],
518
+ val8: ["Primitive", "hello"],
519
+ val9: [TransformersBasicClass.name, {
520
+ val: ["Primitive", "hi"],
521
+ version: Versions.MAX
522
+ }],
523
+ val10: [TransformersBasicClass.name, "hi"],
524
+ val13: ["Array2", [[["Primitive", 1], ["Primitive", 2]]]],
525
+ val14: ["Primitive", 10],
526
+ val15: ["Dict", {
527
+ "An inner property is a map index": [TransformersIndexedStruct.name, {
528
+ index: ["Primitive", "An inner property is a map index"],
529
+ val: ["Primitive", "value"],
530
+ version: Versions.MAX
531
+ }],
532
+ }],
533
+ version: Versions.MAX
523
534
  };
524
- test("CompareRepl: Should return true if all values are equal", async () => {
535
+ test(" 1. CompareRepl: Should return true if all values are equal", async () => {
536
+ expect(serialisedObject[1]).toStrictEqual(serialisedCorrect);
525
537
  expect(Utils.CompareUtils.CompareRepl(TestRepl, objToCompare, serialisedCorrect)).toBe(true);
526
538
  });
527
- test("Compare: Should return true if all values are equal", async () => {
539
+ test(" 2. Compare: Should return true if all values are equal", async () => {
528
540
  expect(Utils.CompareUtils.Compare(objToCompare, [TransformersTheLotClass.name, serialisedCorrect])).toBe(true);
529
541
  });
530
- test("Compare: Should return false if comparing into wrong value", async () => {
542
+ test(" 3. Compare: Should return false if comparing into wrong value", async () => {
531
543
  expect(Utils.CompareUtils.Compare(testPtr, [TransformersTheLotClass.name, serialisedCorrect])).toBe(false);
532
544
  });
533
545
  });
534
546
  });
547
+ //# sourceMappingURL=Replicable.Transformers.Utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Replicable.Transformers.Utils.test.js","sourceRoot":"","sources":["Replicable.Transformers.Utils.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import "expose-gc";
2
+ export declare function clearGC(): Promise<void>;
@@ -0,0 +1,98 @@
1
+ import { expect, vi } from "vitest";
2
+ import { MixableClass, makeMixerFoo } from "@bikky/compiler/Libraries/MixinCode.mjs";
3
+ import { DelayCreate } from "@bikky/compiler/Libraries/DelayLib.mjs";
4
+ import * as util from "util";
5
+ import "expose-gc";
6
+ vi.stubGlobal('Mixable', MixableClass);
7
+ vi.stubGlobal('makeMixer', makeMixerFoo);
8
+ vi.stubGlobal('__BikCompileDelayCreate', DelayCreate);
9
+ vi.stubGlobal('TestingMode', true);
10
+ export async function clearGC() {
11
+ if (typeof global.gc === "undefined") {
12
+ throw new Error("Garbage collector is not defined! Either pass --expose-gc or npm install expose-gc.");
13
+ }
14
+ await util.promisify(setTimeout)(0);
15
+ global.gc();
16
+ }
17
+ const extendTestExpects = {
18
+ toContainAtLeast(received, expected, recursiveRecord) {
19
+ let resultMessage = { message: () => `expected ${received} to contain ${expected}`, actual: received, expected: expected };
20
+ if (recursiveRecord?.has(expected)) {
21
+ //Skip this, we've evaluated it before.
22
+ return { ...resultMessage, pass: true };
23
+ }
24
+ recursiveRecord = recursiveRecord ?? new Set();
25
+ recursiveRecord.add(expected);
26
+ //Recursively check if the received object contains the expected object.
27
+ if (typeof expected !== typeof received) {
28
+ return { ...resultMessage, pass: false };
29
+ }
30
+ if (typeof expected !== "object" || expected == null) {
31
+ return received === expected ? { ...resultMessage, pass: true } : { ...resultMessage, pass: false };
32
+ }
33
+ if (Array.isArray(expected)) {
34
+ if (!Array.isArray(received)) {
35
+ return { ...resultMessage, pass: false };
36
+ }
37
+ let entries = [...received];
38
+ iter_expected: for (let val of expected) {
39
+ if (typeof val === "object" && val != null) {
40
+ for (let rec of entries) {
41
+ if (extendTestExpects.toContainAtLeast.call(this, rec, val, recursiveRecord).pass) {
42
+ entries.splice(entries.indexOf(rec), 1);
43
+ continue iter_expected;
44
+ }
45
+ }
46
+ return { ...resultMessage, pass: false };
47
+ }
48
+ else {
49
+ if (!entries.includes(val)) {
50
+ return { ...resultMessage, pass: false };
51
+ }
52
+ else {
53
+ entries.splice(entries.indexOf(val), 1);
54
+ }
55
+ }
56
+ }
57
+ }
58
+ else {
59
+ for (let [key, value] of Object.entries(expected)) {
60
+ if (typeof value === "object" && value != null) {
61
+ if (!extendTestExpects.toContainAtLeast.call(this, received[key], value, recursiveRecord).pass) {
62
+ return { ...resultMessage, pass: false };
63
+ }
64
+ }
65
+ else if (received[key] !== value) {
66
+ return { ...resultMessage, pass: false };
67
+ }
68
+ }
69
+ }
70
+ return {
71
+ ...resultMessage,
72
+ pass: true
73
+ };
74
+ },
75
+ includesString(received, expected, recursiveRecord) {
76
+ let resultMessage = { message: () => `expected ${received} to contain ${expected}`, actual: received, expected: expected };
77
+ return {
78
+ ...resultMessage,
79
+ pass: received.includes(expected)
80
+ };
81
+ },
82
+ /// Test to see if given entity is the same entity as the expected entity.
83
+ isSameEntity(received, expected) {
84
+ let resultMessage = { message: () => `expected ${received?.name?.code} to be ${expected?.name?.code}`, actual: received, expected: expected };
85
+ if (typeof received !== "object" || received == null) {
86
+ return { ...resultMessage, pass: false };
87
+ }
88
+ if (received.id !== expected.id) {
89
+ return { ...resultMessage, pass: false };
90
+ }
91
+ if (received.__proto__ !== expected.__proto__) {
92
+ return { ...resultMessage, pass: false };
93
+ }
94
+ return { ...resultMessage, pass: true };
95
+ }
96
+ };
97
+ expect.extend(extendTestExpects);
98
+ //# sourceMappingURL=Mocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mocks.js","sourceRoot":"","sources":["Mocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ import { beforeAll } from "vitest";
2
+ import { Referencer } from "../../Transformers/Reference.js";
3
+ import { ReplicableRegistry } from "../../Constants/ReplicableRegistry.js";
4
+ import { __ReplTypeHelperFunctions } from "../../Expressions/TypeRegistry/ReplAPI.js";
5
+ import { Progress } from "../../Transformers/Progress.js";
6
+ import { Configurer } from "../../Transformers/Configurer.js";
7
+ beforeAll(() => {
8
+ Referencer.SetDataNameLookupFunction(ReplicableRegistry.__GetReplicableForDataName);
9
+ Referencer.SetAliasLookupFunction(ReplicableRegistry.__GetReplicablesFor);
10
+ __ReplTypeHelperFunctions.SetDataNameTypeLookupFunction(ReplicableRegistry.GetTypeForDataName);
11
+ __ReplTypeHelperFunctions.SetPrimOrClassLookupFunction(ReplicableRegistry.__GetReplOrPrimFor);
12
+ Progress.RegisterReplInitialisationFunction(Configurer.CacheClassProperties);
13
+ });
14
+ //# sourceMappingURL=Setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Setup.js","sourceRoot":"","sources":["Setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAG9D,SAAS,CAAC,GAAE,EAAE;IACV,UAAU,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;IACpF,UAAU,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IAC1E,yBAAyB,CAAC,6BAA6B,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAC/F,yBAAyB,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAC9F,QAAQ,CAAC,kCAAkC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { Assertion, AsymmetricMatchersContaining } from 'vitest'
2
+ import { MatcherState } from "@vitest/expect";
3
+
4
+ interface CustomMatchers<R = unknown> {
5
+ /**
6
+ * Assert whether given message was announced by ARIA live region.
7
+ *
8
+ * @param politenessSetting `POLITENESS_SETTING` of the announcement
9
+ */
10
+ toContainAtLeast(expected: any): {message: () => string, pass: boolean};
11
+
12
+ /**
13
+ * Like .includes but only for strings and with a better error message.
14
+ * Returns true if the received string includes the expected string.
15
+ *
16
+ * @param politenessSetting `POLITENESS_SETTING` of the announcement
17
+ */
18
+ includesString(expected: any): {message: () => string, pass: boolean};
19
+
20
+ /**
21
+ * Assert that given entity is the same entity as the expected entity.
22
+ */
23
+ isSameEntity(expected: any): {message: () => string, pass: boolean};
24
+ }
25
+
26
+ declare module 'vitest' {
27
+ interface Assertion<T = any> extends CustomMatchers<T> {}
28
+ interface AsymmetricMatchersContaining extends CustomMatchers {}
29
+ }
30
+
31
+ declare function enableActionManagerTestMode(): void;
32
+
33
+ declare type TestMixinData<Mixin, Parent> = Omit<Mixin, keyof Parent> & Omit<Partial<Parent>, "Class"> & { Class: string };
@@ -164,3 +164,4 @@ test("Test getting value on child class", () => {
164
164
  });
165
165
  expect(outcome).toBe(3);
166
166
  });
167
+ //# sourceMappingURL=Replicable.Expressions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Replicable.Expressions.test.js","sourceRoot":"","sources":["Replicable.Expressions.test.ts"],"names":[],"mappings":"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"}
@@ -9,3 +9,4 @@ describe("IDPool", () => {
9
9
  expect(ReplicableRegistry.__GetReplicablesFor("UUID")).not.toBeUndefined();
10
10
  });
11
11
  });
12
+ //# sourceMappingURL=Replicable.IDPool.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Replicable.IDPool.test.js","sourceRoot":"","sources":["Replicable.IDPool.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGvD,QAAQ,CAAC,QAAQ,EAAE,GAAE,EAAE;IACtB,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAG,EAAE;QACrC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAE,oCAAoC,CAAC,CAAC;QACnF,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7B,MAAM,kBAAkB,CAAC,UAAU,EAAE,CAAC;QACtC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}