@routier/core 0.0.1-alpha.1 → 0.0.1-alpha.2

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 (331) hide show
  1. package/dist/assertions/index.d.ts +5 -0
  2. package/dist/assertions/index.js +131 -0
  3. package/dist/assertions/index.js.map +1 -0
  4. package/dist/codegen/SlotPath.d.ts +7 -0
  5. package/dist/codegen/blocks.d.ts +130 -0
  6. package/dist/codegen/handlers/CloneHandlerBuilder.d.ts +4 -0
  7. package/dist/codegen/handlers/CompareHandlerBuilder.d.ts +4 -0
  8. package/dist/codegen/handlers/DeserializeHandlerBuilder.d.ts +4 -0
  9. package/dist/codegen/handlers/EnableChangeTrackingHandlerBuilder.d.ts +4 -0
  10. package/dist/codegen/handlers/EnrichmentHandlerBuilder.d.ts +4 -0
  11. package/dist/codegen/handlers/FreezeHandlerBuilder.d.ts +4 -0
  12. package/dist/codegen/handlers/HashHandlerBuilder.d.ts +4 -0
  13. package/dist/codegen/handlers/HashTypeHandlerBuilder.d.ts +4 -0
  14. package/dist/codegen/handlers/IdSelectorHandlerBuilder.d.ts +4 -0
  15. package/dist/codegen/handlers/MergeHandlerBuilder.d.ts +4 -0
  16. package/dist/codegen/handlers/PrepareHandlerBuilder.d.ts +4 -0
  17. package/dist/codegen/handlers/SerializeHandlerBuilder.d.ts +4 -0
  18. package/dist/codegen/handlers/StripHandlerBuilder.d.ts +4 -0
  19. package/dist/codegen/handlers/clone/CloneObjectHandler.d.ts +6 -0
  20. package/dist/codegen/handlers/clone/CloneValueHandler.d.ts +6 -0
  21. package/dist/codegen/handlers/compare/CompareObjectHandler.d.ts +6 -0
  22. package/dist/codegen/handlers/compare/CompareValueHandler.d.ts +6 -0
  23. package/dist/codegen/handlers/deserialize/DeserializeComputedValueHandler.d.ts +6 -0
  24. package/dist/codegen/handlers/deserialize/DeserializeDateHandler.d.ts +9 -0
  25. package/dist/codegen/handlers/deserialize/DeserializeFunctionHandler.d.ts +6 -0
  26. package/dist/codegen/handlers/deserialize/DeserializeObjectHandler.d.ts +6 -0
  27. package/dist/codegen/handlers/deserialize/DeserializeValueHandler.d.ts +6 -0
  28. package/dist/codegen/handlers/enableChangeTracking/EnableChangeTrackingObjectHandler.d.ts +6 -0
  29. package/dist/codegen/handlers/enableChangeTracking/EnableChangeTrackingPrimitiveValueHandler.d.ts +6 -0
  30. package/dist/codegen/handlers/enrichment/EnrichmentComputedValueHandler.d.ts +6 -0
  31. package/dist/codegen/handlers/enrichment/EnrichmentDefaultFunctionHandler.d.ts +6 -0
  32. package/dist/codegen/handlers/enrichment/EnrichmentDefaultValueHandler.d.ts +6 -0
  33. package/dist/codegen/handlers/enrichment/EnrichmentFunctionHandler.d.ts +6 -0
  34. package/dist/codegen/handlers/enrichment/EnrichmentNullableObjectHandler.d.ts +6 -0
  35. package/dist/codegen/handlers/enrichment/EnrichmentObjectHandler.d.ts +6 -0
  36. package/dist/codegen/handlers/enrichment/EnrichmentObjectIdentityHandler.d.ts +6 -0
  37. package/dist/codegen/handlers/enrichment/EnrichmentPrimitiveHandler.d.ts +6 -0
  38. package/dist/codegen/handlers/enrichment/EnrichmentPrimitiveIdentityHandler.d.ts +6 -0
  39. package/dist/codegen/handlers/freeze/FreezeObjectHandler.d.ts +6 -0
  40. package/dist/codegen/handlers/freeze/FreezePrimitiveValueHandler.d.ts +6 -0
  41. package/dist/codegen/handlers/hash/HashComputedValueHandler.d.ts +6 -0
  42. package/dist/codegen/handlers/hash/HashDateHandler.d.ts +6 -0
  43. package/dist/codegen/handlers/hash/HashFunctionHandler.d.ts +6 -0
  44. package/dist/codegen/handlers/hash/HashIdentityHandler.d.ts +6 -0
  45. package/dist/codegen/handlers/hash/HashKeyHandler.d.ts +6 -0
  46. package/dist/codegen/handlers/hash/HashValueHandler.d.ts +6 -0
  47. package/dist/codegen/handlers/hashType/HashTypeValueHandler.d.ts +6 -0
  48. package/dist/codegen/handlers/idSelector/IdSelectorValueHandler.d.ts +6 -0
  49. package/{src/codegen/handlers/index.ts → dist/codegen/handlers/index.d.ts} +1 -1
  50. package/dist/codegen/handlers/merge/MergeComputedValueHandler.d.ts +6 -0
  51. package/dist/codegen/handlers/merge/MergeDefaultFunctionHandler.d.ts +6 -0
  52. package/dist/codegen/handlers/merge/MergeDefaultValueHandler.d.ts +6 -0
  53. package/dist/codegen/handlers/merge/MergeFunctionHandler.d.ts +6 -0
  54. package/dist/codegen/handlers/merge/MergePrimitiveHandler.d.ts +6 -0
  55. package/dist/codegen/handlers/prepare/PrepareComputedValueHandler.d.ts +6 -0
  56. package/dist/codegen/handlers/prepare/PrepareFunctionHandler.d.ts +6 -0
  57. package/dist/codegen/handlers/prepare/PrepareIdentityHandler.d.ts +6 -0
  58. package/dist/codegen/handlers/prepare/PrepareKeyHandler.d.ts +6 -0
  59. package/dist/codegen/handlers/prepare/PrepareObjectHandler.d.ts +6 -0
  60. package/dist/codegen/handlers/prepare/PrepareValueHandler.d.ts +6 -0
  61. package/dist/codegen/handlers/serialize/SerializeDateHandler.d.ts +9 -0
  62. package/dist/codegen/handlers/serialize/SerializeObjectHandler.d.ts +6 -0
  63. package/dist/codegen/handlers/serialize/SerializeValueHandler.d.ts +6 -0
  64. package/dist/codegen/handlers/strip/StripIdentityHandler.d.ts +6 -0
  65. package/dist/codegen/handlers/strip/StripKeyHandler.d.ts +6 -0
  66. package/dist/codegen/handlers/strip/StripObjectHandler.d.ts +6 -0
  67. package/dist/codegen/handlers/strip/StripValueHandler.d.ts +6 -0
  68. package/dist/codegen/handlers/types.d.ts +18 -0
  69. package/{src/codegen/index.ts → dist/codegen/index.d.ts} +1 -1
  70. package/dist/codegen/types.d.ts +9 -0
  71. package/dist/codegen/utils.d.ts +22 -0
  72. package/dist/collections/Changes.d.ts +51 -0
  73. package/dist/collections/Changes.test.d.ts +1 -0
  74. package/dist/collections/IdSet.d.ts +7 -0
  75. package/dist/collections/MemoryDataCollection.d.ts +22 -0
  76. package/dist/collections/MemoryDataCollection.test.d.ts +1 -0
  77. package/dist/collections/SchemaCollection.d.ts +8 -0
  78. package/dist/collections/TagCollection.d.ts +15 -0
  79. package/dist/collections/TagCollection.test.d.ts +1 -0
  80. package/{src/collections/index.ts → dist/collections/index.d.ts} +1 -1
  81. package/dist/collections/index.js +659 -0
  82. package/dist/collections/index.js.map +1 -0
  83. package/dist/errors/SchemaError.d.ts +3 -0
  84. package/dist/errors/index.d.ts +1 -0
  85. package/dist/errors/index.js +90 -0
  86. package/dist/errors/index.js.map +1 -0
  87. package/{src/expressions/index.ts → dist/expressions/index.d.ts} +1 -1
  88. package/{src/expressions/parser.ts → dist/expressions/index.js} +387 -205
  89. package/dist/expressions/index.js.map +1 -0
  90. package/dist/expressions/parser.d.ts +4 -0
  91. package/dist/expressions/parser.test.d.ts +1 -0
  92. package/{src/expressions/types.ts → dist/expressions/types.d.ts} +42 -99
  93. package/dist/expressions/utils.d.ts +10 -0
  94. package/dist/expressions/utils.test.d.ts +1 -0
  95. package/{src/index.ts → dist/index.d.ts} +1 -1
  96. package/dist/index.js +8434 -0
  97. package/dist/index.js.map +1 -0
  98. package/dist/performance/index.d.ts +5 -0
  99. package/dist/performance/index.js +65 -0
  100. package/dist/performance/index.js.map +1 -0
  101. package/dist/pipeline/SyncronousQueue.d.ts +7 -0
  102. package/dist/pipeline/SyncronousQueue.test.d.ts +1 -0
  103. package/dist/pipeline/TrampolinePipeline.d.ts +36 -0
  104. package/dist/pipeline/TrampolinePipeline.test.d.ts +1 -0
  105. package/dist/pipeline/index.d.ts +2 -0
  106. package/{src/pipeline/TrampolinePipeline.ts → dist/pipeline/index.js} +297 -140
  107. package/dist/pipeline/index.js.map +1 -0
  108. package/dist/plugins/EphemeralDataPlugin.d.ts +13 -0
  109. package/dist/plugins/capabilities/DbPluginCapability.d.ts +23 -0
  110. package/{src/plugins/capabilities/index.ts → dist/plugins/capabilities/index.d.ts} +1 -1
  111. package/dist/plugins/capabilities/logging/DbPluginLoggingCapability.d.ts +28 -0
  112. package/dist/plugins/capabilities/logging/index.d.ts +1 -0
  113. package/{src/plugins/index.ts → dist/plugins/index.d.ts} +1 -1
  114. package/dist/plugins/index.js +2328 -0
  115. package/dist/plugins/index.js.map +1 -0
  116. package/dist/plugins/query/Query.d.ts +13 -0
  117. package/dist/plugins/query/QueryOptionsCollection.d.ts +27 -0
  118. package/dist/plugins/query/QueryOptionsCollection.test.d.ts +1 -0
  119. package/{src/plugins/query/index.ts → dist/plugins/query/index.d.ts} +1 -1
  120. package/{src/plugins/query/types.ts → dist/plugins/query/types.d.ts} +29 -20
  121. package/dist/plugins/replication/OptimisticReplicationDbPlugin.d.ts +21 -0
  122. package/dist/plugins/replication/ReplicationDbPlugin.d.ts +21 -0
  123. package/{src/plugins/replication/index.ts → dist/plugins/replication/index.d.ts} +1 -1
  124. package/{src/plugins/replication/types.ts → dist/plugins/replication/types.d.ts} +1 -2
  125. package/dist/plugins/translators/DataTranslator.d.ts +18 -0
  126. package/dist/plugins/translators/JsonTranslator.d.ts +17 -0
  127. package/dist/plugins/translators/JsonTranslator.test.d.ts +1 -0
  128. package/dist/plugins/translators/SqlTranslator.d.ts +14 -0
  129. package/{src/plugins/translators/index.ts → dist/plugins/translators/index.d.ts} +1 -1
  130. package/{src/plugins/types.ts → dist/plugins/types.d.ts} +11 -26
  131. package/dist/results/Result.d.ts +29 -0
  132. package/{src/results/index.ts → dist/results/index.d.ts} +1 -1
  133. package/dist/results/index.js +192 -0
  134. package/dist/results/index.js.map +1 -0
  135. package/{src/results/types.ts → dist/results/types.d.ts} +18 -7
  136. package/dist/results/utils.d.ts +2 -0
  137. package/dist/schema/PropertyInfo.d.ts +132 -0
  138. package/dist/schema/PropertyInfo.test.d.ts +1 -0
  139. package/dist/schema/SchemaDefinition.d.ts +17 -0
  140. package/dist/schema/builder.d.ts +17 -0
  141. package/{src/schema/index.ts → dist/schema/index.d.ts} +1 -1
  142. package/dist/schema/index.js +4822 -0
  143. package/dist/schema/index.js.map +1 -0
  144. package/dist/schema/property/base/SchemaBase.d.ts +23 -0
  145. package/dist/schema/property/base/index.d.ts +1 -0
  146. package/dist/schema/property/modifiers/SchemaDefault.d.ts +13 -0
  147. package/dist/schema/property/modifiers/SchemaDeserialize.d.ts +11 -0
  148. package/dist/schema/property/modifiers/SchemaDistinct.d.ts +7 -0
  149. package/dist/schema/property/modifiers/SchemaFrom.d.ts +23 -0
  150. package/dist/schema/property/modifiers/SchemaIdentity.d.ts +7 -0
  151. package/dist/schema/property/modifiers/SchemaIndex.d.ts +23 -0
  152. package/dist/schema/property/modifiers/SchemaKey.d.ts +13 -0
  153. package/dist/schema/property/modifiers/SchemaNullable.d.ts +9 -0
  154. package/dist/schema/property/modifiers/SchemaOptional.d.ts +9 -0
  155. package/dist/schema/property/modifiers/SchemaReadonly.d.ts +15 -0
  156. package/dist/schema/property/modifiers/SchemaSerialize.d.ts +9 -0
  157. package/dist/schema/property/modifiers/SchemaTracked.d.ts +7 -0
  158. package/{src/schema/property/modifiers/index.ts → dist/schema/property/modifiers/index.d.ts} +1 -1
  159. package/dist/schema/property/types/SchemaArray.d.ts +23 -0
  160. package/dist/schema/property/types/SchemaBoolean.d.ts +27 -0
  161. package/dist/schema/property/types/SchemaDate.d.ts +27 -0
  162. package/dist/schema/property/types/SchemaNumber.d.ts +31 -0
  163. package/dist/schema/property/types/SchemaObject.d.ts +20 -0
  164. package/dist/schema/property/types/SchemaString.d.ts +31 -0
  165. package/{src/schema/property/types/index.ts → dist/schema/property/types/index.d.ts} +1 -1
  166. package/dist/schema/table/SchemaComputed.d.ts +10 -0
  167. package/dist/schema/table/SchemaFunction.d.ts +8 -0
  168. package/{src/schema/table/index.ts → dist/schema/table/index.d.ts} +1 -1
  169. package/{src/schema/types.ts → dist/schema/types.d.ts} +59 -99
  170. package/{src/types/index.ts → dist/types/index.d.ts} +1 -2
  171. package/dist/types/index.js +25 -0
  172. package/dist/types/index.js.map +1 -0
  173. package/dist/utilities/arrays.d.ts +1 -0
  174. package/dist/utilities/arrays.test.d.ts +1 -0
  175. package/dist/utilities/dates.d.ts +1 -0
  176. package/dist/utilities/dates.test.d.ts +1 -0
  177. package/dist/utilities/dbPluginEventUtils.d.ts +14 -0
  178. package/{src/utilities/index.ts → dist/utilities/index.d.ts} +1 -1
  179. package/dist/utilities/index.js +554 -0
  180. package/dist/utilities/index.js.map +1 -0
  181. package/dist/utilities/objects.d.ts +2 -0
  182. package/dist/utilities/queryOptionsCollection.d.ts +2 -0
  183. package/dist/utilities/replication.d.ts +3 -0
  184. package/dist/utilities/runtime.d.ts +1 -0
  185. package/dist/utilities/strings.d.ts +1 -0
  186. package/dist/utilities/types.d.ts +1 -0
  187. package/dist/utilities/uuid.d.ts +2 -0
  188. package/package.json +6 -1
  189. package/readme.md +95 -0
  190. package/CHANGELOG.md +0 -8
  191. package/rspack.config.mjs +0 -65
  192. package/src/assertions/index.ts +0 -37
  193. package/src/codegen/SlotPath.ts +0 -20
  194. package/src/codegen/blocks.ts +0 -578
  195. package/src/codegen/handlers/CloneHandlerBuilder.ts +0 -13
  196. package/src/codegen/handlers/CompareHandlerBuilder.ts +0 -13
  197. package/src/codegen/handlers/DeserializeHandlerBuilder.ts +0 -20
  198. package/src/codegen/handlers/EnableChangeTrackingHandlerBuilder.ts +0 -13
  199. package/src/codegen/handlers/EnrichmentHandlerBuilder.ts +0 -28
  200. package/src/codegen/handlers/FreezeHandlerBuilder.ts +0 -13
  201. package/src/codegen/handlers/HashHandlerBuilder.ts +0 -25
  202. package/src/codegen/handlers/HashTypeHandlerBuilder.ts +0 -11
  203. package/src/codegen/handlers/IdSelectorHandlerBuilder.ts +0 -10
  204. package/src/codegen/handlers/MergeHandlerBuilder.ts +0 -19
  205. package/src/codegen/handlers/PrepareHandlerBuilder.ts +0 -23
  206. package/src/codegen/handlers/SerializeHandlerBuilder.ts +0 -15
  207. package/src/codegen/handlers/StripHandlerBuilder.ts +0 -18
  208. package/src/codegen/handlers/clone/CloneObjectHandler.ts +0 -29
  209. package/src/codegen/handlers/clone/CloneValueHandler.ts +0 -33
  210. package/src/codegen/handlers/compare/CompareObjectHandler.ts +0 -15
  211. package/src/codegen/handlers/compare/CompareValueHandler.ts +0 -27
  212. package/src/codegen/handlers/deserialize/DeserializeComputedValueHandler.ts +0 -16
  213. package/src/codegen/handlers/deserialize/DeserializeDateHandler.ts +0 -45
  214. package/src/codegen/handlers/deserialize/DeserializeFunctionHandler.ts +0 -16
  215. package/src/codegen/handlers/deserialize/DeserializeObjectHandler.ts +0 -29
  216. package/src/codegen/handlers/deserialize/DeserializeValueHandler.ts +0 -33
  217. package/src/codegen/handlers/enableChangeTracking/EnableChangeTrackingObjectHandler.ts +0 -20
  218. package/src/codegen/handlers/enableChangeTracking/EnableChangeTrackingPrimitiveValueHandler.ts +0 -15
  219. package/src/codegen/handlers/enrichment/EnrichmentComputedValueHandler.ts +0 -37
  220. package/src/codegen/handlers/enrichment/EnrichmentDefaultFunctionHandler.ts +0 -50
  221. package/src/codegen/handlers/enrichment/EnrichmentDefaultValueHandler.ts +0 -18
  222. package/src/codegen/handlers/enrichment/EnrichmentFunctionHandler.ts +0 -38
  223. package/src/codegen/handlers/enrichment/EnrichmentNullableObjectHandler.ts +0 -44
  224. package/src/codegen/handlers/enrichment/EnrichmentObjectHandler.ts +0 -29
  225. package/src/codegen/handlers/enrichment/EnrichmentObjectIdentityHandler.ts +0 -16
  226. package/src/codegen/handlers/enrichment/EnrichmentPrimitiveHandler.ts +0 -13
  227. package/src/codegen/handlers/enrichment/EnrichmentPrimitiveIdentityHandler.ts +0 -21
  228. package/src/codegen/handlers/freeze/FreezeObjectHandler.ts +0 -20
  229. package/src/codegen/handlers/freeze/FreezePrimitiveValueHandler.ts +0 -15
  230. package/src/codegen/handlers/hash/HashComputedValueHandler.ts +0 -15
  231. package/src/codegen/handlers/hash/HashDateHandler.ts +0 -26
  232. package/src/codegen/handlers/hash/HashFunctionHandler.ts +0 -16
  233. package/src/codegen/handlers/hash/HashIdentityHandler.ts +0 -15
  234. package/src/codegen/handlers/hash/HashKeyHandler.ts +0 -26
  235. package/src/codegen/handlers/hash/HashValueHandler.ts +0 -26
  236. package/src/codegen/handlers/hashType/HashTypeValueHandler.ts +0 -20
  237. package/src/codegen/handlers/idSelector/IdSelectorValueHandler.ts +0 -28
  238. package/src/codegen/handlers/merge/MergeComputedValueHandler.ts +0 -37
  239. package/src/codegen/handlers/merge/MergeDefaultFunctionHandler.ts +0 -40
  240. package/src/codegen/handlers/merge/MergeDefaultValueHandler.ts +0 -32
  241. package/src/codegen/handlers/merge/MergeFunctionHandler.ts +0 -16
  242. package/src/codegen/handlers/merge/MergePrimitiveHandler.ts +0 -21
  243. package/src/codegen/handlers/prepare/PrepareComputedValueHandler.ts +0 -16
  244. package/src/codegen/handlers/prepare/PrepareFunctionHandler.ts +0 -16
  245. package/src/codegen/handlers/prepare/PrepareIdentityHandler.ts +0 -21
  246. package/src/codegen/handlers/prepare/PrepareKeyHandler.ts +0 -21
  247. package/src/codegen/handlers/prepare/PrepareObjectHandler.ts +0 -38
  248. package/src/codegen/handlers/prepare/PrepareValueHandler.ts +0 -36
  249. package/src/codegen/handlers/serialize/SerializeDateHandler.ts +0 -45
  250. package/src/codegen/handlers/serialize/SerializeObjectHandler.ts +0 -28
  251. package/src/codegen/handlers/serialize/SerializeValueHandler.ts +0 -33
  252. package/src/codegen/handlers/strip/StripIdentityHandler.ts +0 -15
  253. package/src/codegen/handlers/strip/StripKeyHandler.ts +0 -15
  254. package/src/codegen/handlers/strip/StripObjectHandler.ts +0 -35
  255. package/src/codegen/handlers/strip/StripValueHandler.ts +0 -36
  256. package/src/codegen/handlers/types.ts +0 -119
  257. package/src/codegen/types.ts +0 -2
  258. package/src/codegen/utils.ts +0 -74
  259. package/src/collections/Changes.test.ts +0 -337
  260. package/src/collections/Changes.ts +0 -177
  261. package/src/collections/IdSet.ts +0 -28
  262. package/src/collections/MemoryDataCollection.test.ts +0 -424
  263. package/src/collections/MemoryDataCollection.ts +0 -134
  264. package/src/collections/SchemaCollection.ts +0 -22
  265. package/src/collections/TagCollection.test.ts +0 -443
  266. package/src/collections/TagCollection.ts +0 -62
  267. package/src/errors/SchemaError.ts +0 -6
  268. package/src/errors/index.ts +0 -1
  269. package/src/expressions/parser.test.ts +0 -913
  270. package/src/expressions/utils.test.ts +0 -346
  271. package/src/expressions/utils.ts +0 -59
  272. package/src/performance/index.ts +0 -26
  273. package/src/pipeline/SyncronousQueue.test.ts +0 -269
  274. package/src/pipeline/SyncronousQueue.ts +0 -30
  275. package/src/pipeline/TrampolinePipeline.test.ts +0 -374
  276. package/src/pipeline/index.ts +0 -2
  277. package/src/plugins/EphemeralDataPlugin.ts +0 -132
  278. package/src/plugins/capabilities/DbPluginCapability.ts +0 -111
  279. package/src/plugins/capabilities/logging/DbPluginLoggingCapability.ts +0 -261
  280. package/src/plugins/capabilities/logging/index.ts +0 -1
  281. package/src/plugins/query/Query.ts +0 -67
  282. package/src/plugins/query/QueryOptionsCollection.test.ts +0 -86
  283. package/src/plugins/query/QueryOptionsCollection.ts +0 -154
  284. package/src/plugins/replication/OptimisticReplicationDbPlugin.ts +0 -202
  285. package/src/plugins/replication/ReplicationDbPlugin.ts +0 -137
  286. package/src/plugins/translators/DataTranslator.ts +0 -46
  287. package/src/plugins/translators/JsonTranslator.test.ts +0 -618
  288. package/src/plugins/translators/JsonTranslator.ts +0 -211
  289. package/src/plugins/translators/SqlTranslator.ts +0 -45
  290. package/src/results/Result.ts +0 -91
  291. package/src/results/utils.ts +0 -15
  292. package/src/schema/PropertyInfo.test.ts +0 -479
  293. package/src/schema/PropertyInfo.ts +0 -374
  294. package/src/schema/SchemaDefinition.ts +0 -626
  295. package/src/schema/builder.ts +0 -18
  296. package/src/schema/property/base/SchemaBase.ts +0 -49
  297. package/src/schema/property/base/index.ts +0 -1
  298. package/src/schema/property/modifiers/SchemaDefault.ts +0 -29
  299. package/src/schema/property/modifiers/SchemaDeserialize.ts +0 -23
  300. package/src/schema/property/modifiers/SchemaDistinct.ts +0 -14
  301. package/src/schema/property/modifiers/SchemaFrom.ts +0 -54
  302. package/src/schema/property/modifiers/SchemaIdentity.ts +0 -13
  303. package/src/schema/property/modifiers/SchemaIndex.ts +0 -60
  304. package/src/schema/property/modifiers/SchemaKey.ts +0 -28
  305. package/src/schema/property/modifiers/SchemaNullable.ts +0 -18
  306. package/src/schema/property/modifiers/SchemaOptional.ts +0 -19
  307. package/src/schema/property/modifiers/SchemaReadonly.ts +0 -34
  308. package/src/schema/property/modifiers/SchemaSerialize.ts +0 -18
  309. package/src/schema/property/modifiers/SchemaTracked.ts +0 -14
  310. package/src/schema/property/types/SchemaArray.ts +0 -50
  311. package/src/schema/property/types/SchemaBoolean.ts +0 -59
  312. package/src/schema/property/types/SchemaDate.ts +0 -58
  313. package/src/schema/property/types/SchemaNumber.ts +0 -69
  314. package/src/schema/property/types/SchemaObject.ts +0 -44
  315. package/src/schema/property/types/SchemaString.ts +0 -69
  316. package/src/schema/table/SchemaComputed.ts +0 -20
  317. package/src/schema/table/SchemaFunction.ts +0 -15
  318. package/src/utilities/arrays.test.ts +0 -312
  319. package/src/utilities/arrays.ts +0 -12
  320. package/src/utilities/dates.test.ts +0 -388
  321. package/src/utilities/dates.ts +0 -11
  322. package/src/utilities/dbPluginEventUtils.ts +0 -44
  323. package/src/utilities/objects.ts +0 -7
  324. package/src/utilities/queryOptionsCollection.ts +0 -16
  325. package/src/utilities/replication.ts +0 -23
  326. package/src/utilities/runtime.ts +0 -3
  327. package/src/utilities/strings.ts +0 -18
  328. package/src/utilities/types.ts +0 -1
  329. package/src/utilities/uuid.ts +0 -56
  330. package/tsconfig.json +0 -28
  331. package/vitest.config.ts +0 -11
@@ -1,44 +0,0 @@
1
- import { DefaultValue, SchemaModifiers, SchemaTypes } from "../../types";
2
- import { SchemaBase } from "../base/SchemaBase";
3
- import { SchemaDefault } from "../modifiers/SchemaDefault";
4
- import { SchemaFrom } from "../modifiers/SchemaFrom";
5
- import { SchemaIdentity } from "../modifiers/SchemaIdentity";
6
- import { SchemaNullable } from "../modifiers/SchemaNullable";
7
- import { SchemaOptional } from "../modifiers/SchemaOptional";
8
- import { SchemaArray } from "./SchemaArray";
9
-
10
- export class SchemaObject<T extends {}, TModifiers extends SchemaModifiers> extends SchemaBase<T, TModifiers> {
11
-
12
- instance: T;
13
- type = SchemaTypes.Object;
14
- private _schemaObject = true;
15
-
16
- constructor(schema: T) {
17
- super();
18
- this.instance = schema;
19
- }
20
-
21
- from(propertyName: string) {
22
- return new SchemaFrom<T, TModifiers>(propertyName, this);
23
- }
24
-
25
- optional() {
26
- return new SchemaOptional<T, TModifiers | "optional">(this);
27
- }
28
-
29
- nullable() {
30
- return new SchemaNullable<T, TModifiers | "nullable">(this);
31
- }
32
-
33
- default<I = never>(value: DefaultValue<T, I>, injected?: I) {
34
- return new SchemaDefault<T, I, TModifiers | "default">(value, injected, this);
35
- }
36
-
37
- identity() {
38
- return new SchemaIdentity<T, TModifiers | "identity" | "readonly">(this);
39
- }
40
-
41
- array() {
42
- return new SchemaArray<typeof this, TModifiers>(this as any);
43
- }
44
- }
@@ -1,69 +0,0 @@
1
- import { DefaultValue, PropertyDeserializer, PropertySerializer, SchemaModifiers, SchemaTypes } from "../../types";
2
- import { SchemaBase } from "../base/SchemaBase";
3
- import { SchemaDefault } from "../modifiers/SchemaDefault";
4
- import { SchemaDeserialize } from "../modifiers/SchemaDeserialize";
5
- import { SchemaDistinct } from "../modifiers/SchemaDistinct";
6
- import { SchemaFrom } from "../modifiers/SchemaFrom";
7
- import { SchemaIdentity } from "../modifiers/SchemaIdentity";
8
- import { SchemaIndex } from "../modifiers/SchemaIndex";
9
- import { SchemaKey } from "../modifiers/SchemaKey";
10
- import { SchemaNullable } from "../modifiers/SchemaNullable";
11
- import { SchemaOptional } from "../modifiers/SchemaOptional";
12
- import { SchemaReadonly } from "../modifiers/SchemaReadonly";
13
- import { SchemaSerialize } from "../modifiers/SchemaSerialize";
14
- import { SchemaArray } from "./SchemaArray";
15
-
16
- export class SchemaString<T extends string, TModifiers extends SchemaModifiers> extends SchemaBase<T, TModifiers> {
17
-
18
- instance: T;
19
- type = SchemaTypes.String;
20
- private _schemaString = true;
21
-
22
- from(propertyName: string) {
23
- return new SchemaFrom<T, TModifiers>(propertyName, this);
24
- }
25
-
26
- optional() {
27
- return new SchemaOptional<T, TModifiers | "optional">(this);
28
- }
29
-
30
- nullable() {
31
- return new SchemaNullable<T, TModifiers | "nullable">(this);
32
- }
33
-
34
- key() {
35
- return new SchemaKey<T, TModifiers | "key">(this);
36
- }
37
-
38
- default<I = never>(value: DefaultValue<T, I>, injected?: I) {
39
- return new SchemaDefault<T, I, TModifiers | "default">(value, injected, this);
40
- }
41
-
42
- readonly() {
43
- return new SchemaReadonly<T, TModifiers | "readonly">(this);
44
- }
45
-
46
- deserialize(deserializer: PropertyDeserializer<T>) {
47
- return new SchemaDeserialize<T, TModifiers | "deserialize">(deserializer, this);
48
- }
49
-
50
- serialize(serializer: PropertySerializer<T>) {
51
- return new SchemaSerialize<T, TModifiers | "serialize">(serializer, this);
52
- }
53
-
54
- identity() {
55
- return new SchemaIdentity<T, TModifiers | "identity" | "readonly">(this);
56
- }
57
-
58
- array() {
59
- return new SchemaArray<typeof this, TModifiers>(this as any);
60
- }
61
-
62
- index(...indexes: string[]) {
63
- return new SchemaIndex<T, TModifiers>(this as any, ...indexes);
64
- }
65
-
66
- distinct() {
67
- return new SchemaDistinct<T, TModifiers | "distinct">(this);
68
- }
69
- }
@@ -1,20 +0,0 @@
1
- import { SchemaBase } from "../property/base/SchemaBase";
2
- import { SchemaTracked } from '../property/modifiers/SchemaTracked';
3
- import { SchemaModifiers, SchemaTypes } from "../types";
4
-
5
- export class SchemaComputed<T extends any, I, TModifiers extends SchemaModifiers = "computed"> extends SchemaBase<T, TModifiers> {
6
- instance: T;
7
- type = SchemaTypes.Computed;
8
- private _schemaComputed = true;
9
-
10
- constructor(fn: T, injected: I, current?: SchemaBase<T, TModifiers>) {
11
- super(current);
12
- this.injected = injected;
13
- this.isUnmapped = true;
14
- this.functionBody = fn as any;
15
- }
16
-
17
- tracked() {
18
- return new SchemaTracked<T, TModifiers>(this);
19
- }
20
- }
@@ -1,15 +0,0 @@
1
- import { SchemaBase } from "../property/base/SchemaBase";
2
- import { SchemaModifiers, SchemaTypes } from "../types";
3
-
4
- export class SchemaFunction<T extends any, I, TModifiers extends SchemaModifiers = "unmapped"> extends SchemaBase<() => T, TModifiers> {
5
- instance: () => T;
6
- type = SchemaTypes.Function;
7
- private _schemaFunction = true;
8
-
9
- constructor(fn: (injected: I) => T, injected: I, current?: SchemaBase<() => T, TModifiers>) {
10
- super(current);
11
- this.injected = injected;
12
- this.isUnmapped = true;
13
- this.functionBody = fn as any;
14
- }
15
- }
@@ -1,312 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { toMap } from './arrays';
3
-
4
- interface TestUser {
5
- id: number;
6
- name: string;
7
- email: string;
8
- age: number;
9
- isActive: boolean;
10
- }
11
-
12
- interface TestProduct {
13
- sku: string;
14
- name: string;
15
- price: number;
16
- category: string;
17
- }
18
-
19
- describe('toMap', () => {
20
- describe('basic functionality', () => {
21
- it('should convert array to map using string key', () => {
22
- const users: TestUser[] = [
23
- { id: 1, name: 'Alice', email: 'alice@example.com', age: 25, isActive: true },
24
- { id: 2, name: 'Bob', email: 'bob@example.com', age: 30, isActive: false },
25
- { id: 3, name: 'Charlie', email: 'charlie@example.com', age: 35, isActive: true }
26
- ];
27
-
28
- const result = toMap(users, (user) => user.name);
29
-
30
- expect(result).toBeInstanceOf(Map);
31
- expect(result.size).toBe(3);
32
- expect(result.get('Alice')).toEqual(users[0]);
33
- expect(result.get('Bob')).toEqual(users[1]);
34
- expect(result.get('Charlie')).toEqual(users[2]);
35
- });
36
-
37
- it('should convert array to map using number key', () => {
38
- const users: TestUser[] = [
39
- { id: 1, name: 'Alice', email: 'alice@example.com', age: 25, isActive: true },
40
- { id: 2, name: 'Bob', email: 'bob@example.com', age: 30, isActive: false },
41
- { id: 3, name: 'Charlie', email: 'charlie@example.com', age: 35, isActive: true }
42
- ];
43
-
44
- const result = toMap(users, (user) => user.id);
45
-
46
- expect(result).toBeInstanceOf(Map);
47
- expect(result.size).toBe(3);
48
- expect(result.get(1)).toEqual(users[0]);
49
- expect(result.get(2)).toEqual(users[1]);
50
- expect(result.get(3)).toEqual(users[2]);
51
- });
52
-
53
- it('should convert array to map using boolean key', () => {
54
- const users: TestUser[] = [
55
- { id: 1, name: 'Alice', email: 'alice@example.com', age: 25, isActive: true },
56
- { id: 2, name: 'Bob', email: 'bob@example.com', age: 30, isActive: false },
57
- { id: 3, name: 'Charlie', email: 'charlie@example.com', age: 35, isActive: true }
58
- ];
59
-
60
- const result = toMap(users, (user) => user.isActive);
61
-
62
- expect(result).toBeInstanceOf(Map);
63
- expect(result.size).toBe(2); // Only 2 unique boolean values
64
- expect(result.get(true)).toEqual(users[2]); // Last one wins for duplicate keys
65
- expect(result.get(false)).toEqual(users[1]);
66
- });
67
- });
68
-
69
- describe('edge cases', () => {
70
- it('should handle empty array', () => {
71
- const result = toMap([], (item: any) => item.id);
72
-
73
- expect(result).toBeInstanceOf(Map);
74
- expect(result.size).toBe(0);
75
- });
76
-
77
- it('should handle single item array', () => {
78
- const users: TestUser[] = [
79
- { id: 1, name: 'Alice', email: 'alice@example.com', age: 25, isActive: true }
80
- ];
81
-
82
- const result = toMap(users, (user) => user.name);
83
-
84
- expect(result).toBeInstanceOf(Map);
85
- expect(result.size).toBe(1);
86
- expect(result.get('Alice')).toEqual(users[0]);
87
- });
88
-
89
- it('should handle duplicate keys (last item wins)', () => {
90
- const users: TestUser[] = [
91
- { id: 1, name: 'Alice', email: 'alice@example.com', age: 25, isActive: true },
92
- { id: 2, name: 'Alice', email: 'alice2@example.com', age: 30, isActive: false },
93
- { id: 3, name: 'Bob', email: 'bob@example.com', age: 35, isActive: true }
94
- ];
95
-
96
- const result = toMap(users, (user) => user.name);
97
-
98
- expect(result).toBeInstanceOf(Map);
99
- expect(result.size).toBe(2); // Only 2 unique names
100
- expect(result.get('Alice')).toEqual(users[1]); // Last Alice wins
101
- expect(result.get('Bob')).toEqual(users[2]);
102
- });
103
-
104
- it('should handle null and undefined values in key selector', () => {
105
- const users: TestUser[] = [
106
- { id: 1, name: 'Alice', email: 'alice@example.com', age: 25, isActive: true },
107
- { id: 2, name: 'Bob', email: 'bob@example.com', age: 30, isActive: false }
108
- ];
109
-
110
- // Test with key selector that could return null/undefined
111
- const result = toMap(users, (user) => user.age > 30 ? 'old' : 'young');
112
-
113
- expect(result).toBeInstanceOf(Map);
114
- expect(result.size).toBe(1); // Both users are 'young' (age <= 30)
115
- expect(result.get('young')).toEqual(users[1]); // Last 'young' user wins
116
- });
117
- });
118
-
119
- describe('complex key selectors', () => {
120
- it('should handle computed keys', () => {
121
- const products: TestProduct[] = [
122
- { sku: 'ABC123', name: 'Laptop', price: 999, category: 'Electronics' },
123
- { sku: 'DEF456', name: 'Mouse', price: 25, category: 'Electronics' },
124
- { sku: 'GHI789', name: 'Book', price: 15, category: 'Books' }
125
- ];
126
-
127
- const result = toMap(products, (product) => `${product.category}-${product.sku}`);
128
-
129
- expect(result).toBeInstanceOf(Map);
130
- expect(result.size).toBe(3);
131
- expect(result.get('Electronics-ABC123')).toEqual(products[0]);
132
- expect(result.get('Electronics-DEF456')).toEqual(products[1]);
133
- expect(result.get('Books-GHI789')).toEqual(products[2]);
134
- });
135
-
136
- it('should handle conditional key selection', () => {
137
- const users: TestUser[] = [
138
- { id: 1, name: 'Alice', email: 'alice@example.com', age: 25, isActive: true },
139
- { id: 2, name: 'Bob', email: 'bob@example.com', age: 30, isActive: false },
140
- { id: 3, name: 'Charlie', email: 'charlie@example.com', age: 35, isActive: true }
141
- ];
142
-
143
- const result = toMap(users, (user) => user.isActive ? `active-${user.id}` : `inactive-${user.id}`);
144
-
145
- expect(result).toBeInstanceOf(Map);
146
- expect(result.size).toBe(3);
147
- expect(result.get('active-1')).toEqual(users[0]);
148
- expect(result.get('inactive-2')).toEqual(users[1]);
149
- expect(result.get('active-3')).toEqual(users[2]);
150
- });
151
-
152
- it('should handle nested property access', () => {
153
- const users: TestUser[] = [
154
- { id: 1, name: 'Alice', email: 'alice@example.com', age: 25, isActive: true },
155
- { id: 2, name: 'Bob', email: 'bob@example.com', age: 30, isActive: false }
156
- ];
157
-
158
- // Simulate nested object access
159
- const result = toMap(users, (user) => user.email.split('@')[0]);
160
-
161
- expect(result).toBeInstanceOf(Map);
162
- expect(result.size).toBe(2);
163
- expect(result.get('alice')).toEqual(users[0]);
164
- expect(result.get('bob')).toEqual(users[1]);
165
- });
166
- });
167
-
168
- describe('type safety', () => {
169
- it('should maintain type safety with different key types', () => {
170
- const users: TestUser[] = [
171
- { id: 1, name: 'Alice', email: 'alice@example.com', age: 25, isActive: true }
172
- ];
173
-
174
- // String key
175
- const stringMap = toMap(users, (user) => user.name);
176
- expect(stringMap.get('Alice')).toBeDefined();
177
-
178
- // Number key
179
- const numberMap = toMap(users, (user) => user.id);
180
- expect(numberMap.get(1)).toBeDefined();
181
-
182
- // Boolean key
183
- const booleanMap = toMap(users, (user) => user.isActive);
184
- expect(booleanMap.get(true)).toBeDefined();
185
- });
186
-
187
- it('should handle mixed key types in same function', () => {
188
- const users: TestUser[] = [
189
- { id: 1, name: 'Alice', email: 'alice@example.com', age: 25, isActive: true },
190
- { id: 2, name: 'Bob', email: 'bob@example.com', age: 30, isActive: false }
191
- ];
192
-
193
- const result = toMap(users, (user) => user.isActive ? user.id : user.name);
194
-
195
- expect(result).toBeInstanceOf(Map);
196
- expect(result.size).toBe(2);
197
- expect(result.get(1)).toEqual(users[0]);
198
- expect(result.get('Bob')).toEqual(users[1]);
199
- });
200
- });
201
-
202
- describe('performance characteristics', () => {
203
- it('should handle large arrays efficiently', () => {
204
- const largeArray = Array.from({ length: 10000 }, (_, i) => ({
205
- id: i,
206
- name: `User${i}`,
207
- email: `user${i}@example.com`,
208
- age: 20 + (i % 50),
209
- isActive: i % 2 === 0
210
- }));
211
-
212
- const start = performance.now();
213
- const result = toMap(largeArray, (user) => user.id);
214
- const end = performance.now();
215
-
216
- expect(result).toBeInstanceOf(Map);
217
- expect(result.size).toBe(10000);
218
- expect(result.get(0)).toEqual(largeArray[0]);
219
- expect(result.get(9999)).toEqual(largeArray[9999]);
220
- expect(end - start).toBeLessThan(100); // Should complete in under 100ms
221
- });
222
-
223
- it('should handle many duplicate keys efficiently', () => {
224
- const arrayWithDuplicates = Array.from({ length: 1000 }, (_, i) => ({
225
- id: i,
226
- name: i % 10 === 0 ? 'Alice' : `User${i}`,
227
- email: `user${i}@example.com`,
228
- age: 20 + (i % 50),
229
- isActive: i % 2 === 0
230
- }));
231
-
232
- const start = performance.now();
233
- const result = toMap(arrayWithDuplicates, (user) => user.name);
234
- const end = performance.now();
235
-
236
- expect(result).toBeInstanceOf(Map);
237
- expect(result.size).toBeLessThan(1000); // Fewer unique keys due to duplicates
238
- expect(result.get('Alice')).toBeDefined(); // Last Alice should be in map
239
- expect(end - start).toBeLessThan(50); // Should complete in under 50ms
240
- });
241
- });
242
-
243
- describe('error handling', () => {
244
- it('should handle key selector that throws error', () => {
245
- const users: TestUser[] = [
246
- { id: 1, name: 'Alice', email: 'alice@example.com', age: 25, isActive: true },
247
- { id: 2, name: 'Bob', email: 'bob@example.com', age: 30, isActive: false }
248
- ];
249
-
250
- expect(() => {
251
- toMap(users, (user) => {
252
- if (user.id === 1) {
253
- throw new Error('Test error');
254
- }
255
- return user.name;
256
- });
257
- }).toThrow('Test error');
258
- });
259
-
260
- it('should handle null/undefined in input array', () => {
261
- const users: TestUser[] = [
262
- { id: 1, name: 'Alice', email: 'alice@example.com', age: 25, isActive: true },
263
- null as any,
264
- { id: 2, name: 'Bob', email: 'bob@example.com', age: 30, isActive: false }
265
- ];
266
-
267
- expect(() => {
268
- toMap(users, (user) => user.name);
269
- }).toThrow(); // Should throw when trying to access .name on null
270
- });
271
- });
272
-
273
- describe('real-world scenarios', () => {
274
- it('should work with user management system', () => {
275
- const users: TestUser[] = [
276
- { id: 1, name: 'Alice', email: 'alice@example.com', age: 25, isActive: true },
277
- { id: 2, name: 'Bob', email: 'bob@example.com', age: 30, isActive: false },
278
- { id: 3, name: 'Charlie', email: 'charlie@example.com', age: 35, isActive: true }
279
- ];
280
-
281
- // Create maps for different lookup scenarios
282
- const idMap = toMap(users, (user) => user.id);
283
- const emailMap = toMap(users, (user) => user.email);
284
- const activeStatusMap = toMap(users, (user) => user.isActive);
285
-
286
- expect(idMap.get(1)?.name).toBe('Alice');
287
- expect(emailMap.get('bob@example.com')?.id).toBe(2);
288
- expect(activeStatusMap.get(true)?.name).toBe('Charlie'); // Last active user
289
- });
290
-
291
- it('should work with e-commerce product catalog', () => {
292
- const products: TestProduct[] = [
293
- { sku: 'LAPTOP001', name: 'Gaming Laptop', price: 1299, category: 'Electronics' },
294
- { sku: 'MOUSE001', name: 'Wireless Mouse', price: 29, category: 'Electronics' },
295
- { sku: 'BOOK001', name: 'Programming Guide', price: 45, category: 'Books' },
296
- { sku: 'LAPTOP002', name: 'Business Laptop', price: 899, category: 'Electronics' }
297
- ];
298
-
299
- // Create maps for different lookup scenarios
300
- const skuMap = toMap(products, (product) => product.sku);
301
- const categoryMap = toMap(products, (product) => product.category);
302
- const priceRangeMap = toMap(products, (product) =>
303
- product.price > 1000 ? 'premium' : product.price > 100 ? 'mid-range' : 'budget'
304
- );
305
-
306
- expect(skuMap.get('LAPTOP001')?.name).toBe('Gaming Laptop');
307
- expect(categoryMap.get('Electronics')?.name).toBe('Business Laptop'); // Last electronics product
308
- expect(priceRangeMap.get('premium')?.sku).toBe('LAPTOP001');
309
- expect(priceRangeMap.get('budget')?.sku).toBe('BOOK001'); // Last budget item wins
310
- });
311
- });
312
- });
@@ -1,12 +0,0 @@
1
- export const toMap = <T extends {}>(data: T[], keySelector: (item: T) => T[keyof T] | string) => {
2
-
3
- const result = new Map<T[keyof T] | string, T>();
4
-
5
- for (let i = 0; i < data.length; i++) {
6
- const item = data[i];
7
- const key = keySelector(item);
8
- result.set(key, item);
9
- }
10
-
11
- return result;
12
- }