@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,202 +0,0 @@
1
- import { PluginEventCallbackPartialResult, PluginEventCallbackResult, PluginEventResult, Result } from '../../results';
2
- import { DbPluginBulkPersistEvent, DbPluginEvent, DbPluginQueryEvent, IDbPlugin, OptimisticReplicationPluginOptions } from '../types';
3
- import { WorkPipeline } from '../../pipeline'; 7
4
- import { CompiledSchema } from '../../schema';
5
- import { Query } from '../query';
6
- import { resolveBulkPersistChanges, uuid } from '../../utilities';
7
- import { BulkPersistChanges, BulkPersistResult } from '../../collections';
8
-
9
- const getMemoryPluginCollectionSize = <T extends {}>(plugin: IDbPlugin, schema: CompiledSchema<T>): number => {
10
-
11
- if ("getCollectionSize" in plugin && typeof plugin.getCollectionSize === "function") {
12
- return plugin.getCollectionSize(schema.collectionName) as number;
13
- }
14
-
15
- throw new Error("Cannot get size of collection for MemoryPlugin, not an instance of MemoryPlugin")
16
- }
17
-
18
- export class OptimisticReplicationDbPlugin implements IDbPlugin {
19
-
20
- protected plugins: OptimisticReplicationPluginOptions;
21
-
22
- protected constructor(plugins: OptimisticReplicationPluginOptions) {
23
- this.plugins = plugins;
24
- }
25
-
26
- /**
27
- * Creates a new OptimisticDbPluginReplicator that coordinates operations between a source database and its replicas.
28
- *
29
- * @param source The primary database plugin that will receive all operations first
30
- * @param replicas Additional database plugins that will replicate operations from the source
31
- * @returns A new DbPluginReplicator instance that manages the source-replica relationship
32
- */
33
- static create(plugins: OptimisticReplicationPluginOptions) {
34
- return new OptimisticReplicationDbPlugin(plugins);
35
- }
36
-
37
- /**
38
- * Will query the read plugin if there is one, otherwise the source plugin will be queried
39
- */
40
- query<TEntity extends {}, TShape extends any = TEntity>(event: DbPluginQueryEvent<TEntity, TShape>, done: PluginEventCallbackResult<TShape>): void {
41
- try {
42
-
43
- const readPlugin = this.plugins.read;
44
- const sourcePlugin = this.plugins.source;
45
- const collectionSize = getMemoryPluginCollectionSize(this.plugins.read, event.operation.schema);
46
-
47
- if (collectionSize === 0) {
48
- // nothing is hydrated, let's try and hydrate before querying
49
- // Memory plugin might not be hydrated, lets hydrate it for the targeted schema only,
50
- // Other queries will do the same and hydrate if needed
51
- // We want to select all data here
52
- sourcePlugin.query<TEntity, TShape>({
53
- id: uuid(8),
54
- schemas: event.schemas,
55
-
56
- // Select All Data
57
- operation: Query.EMPTY<TEntity, TShape>(event.operation.schema)
58
- }, (sourceResult) => {
59
-
60
- if (sourceResult.ok === Result.ERROR) {
61
- done(sourceResult);
62
- return;
63
- }
64
-
65
- if (sourceResult == null || (Array.isArray(sourceResult.data) && sourceResult.data.length === 0)) {
66
- done(sourceResult);
67
- return;
68
- }
69
-
70
- if (Array.isArray(sourceResult.data) === false) {
71
- done(PluginEventResult.error(event.id, "Query result is not an array"));
72
- return;
73
- }
74
-
75
- const changesCollection = new BulkPersistChanges();
76
- const schemaChanges = changesCollection.resolve(event.operation.schema.id);
77
-
78
- // Add the existing items into the persist payload as adds
79
- schemaChanges.adds = sourceResult.data;
80
-
81
- readPlugin.bulkPersist({
82
- id: uuid(8),
83
- schemas: event.schemas,
84
- operation: changesCollection
85
- }, (readPersistResult) => {
86
-
87
- if (readPersistResult.ok === Result.ERROR) {
88
- done(readPersistResult);
89
- return;
90
- }
91
-
92
- // requery the read plugin
93
- readPlugin.query(event, done);
94
- });
95
- });
96
- return;
97
- }
98
-
99
- // Collection is hydrated for the targeted collection and should be in sync
100
- readPlugin.query(event, (readResult) => {
101
-
102
- if (readResult.ok === Result.ERROR) {
103
- done(readResult);
104
- return;
105
- }
106
-
107
- done(readResult);
108
- return;
109
-
110
- });
111
- } catch (e: any) {
112
- done(PluginEventResult.error(event.id, e));
113
- }
114
- }
115
-
116
- destroy(event: DbPluginEvent, done: PluginEventCallbackResult<never>): void {
117
- try {
118
-
119
- const workPipeline = new WorkPipeline();
120
- const plugins = [this.plugins.source, ...this.plugins.replicas];
121
-
122
- for (let i = 0, length = plugins.length; i < length; i++) {
123
- workPipeline.pipe((done) => plugins[i].destroy(event, done));
124
- }
125
-
126
- workPipeline.filter((result) => {
127
-
128
- if (result.ok === Result.ERROR) {
129
- done(PluginEventResult.error(event.id, result.error));
130
- return;
131
- }
132
-
133
- done(PluginEventResult.success(event.id));
134
- });
135
-
136
- } catch (e: any) {
137
- done(PluginEventResult.error(event.id, e));
138
- }
139
- }
140
-
141
- bulkPersist(event: DbPluginBulkPersistEvent, done: PluginEventCallbackPartialResult<BulkPersistResult>): void {
142
- try {
143
-
144
- const workPipeline = new WorkPipeline();
145
- const deferredPlugins = [this.plugins.source, ... this.plugins.replicas];
146
-
147
- // Since we are doing optimistic, we insert into the read plugin first and assume later plugins will succeed
148
- // This means the read plugin will generate ids for the source plugin
149
- this.plugins.read.bulkPersist({
150
- id: uuid(8),
151
- operation: event.operation,
152
- schemas: event.schemas
153
- }, (r) => {
154
-
155
- if (r.ok !== Result.SUCCESS) {
156
- done(r);
157
- return;
158
- }
159
-
160
- // optimistically call done and still continue saving the rest of the data. We read from the memory
161
- // db anyways
162
- done(r);
163
-
164
- const optimisticBulkPersistChanges = new BulkPersistChanges();
165
-
166
- // make sure we swap the adds here, that way we can make sure other persist events
167
- // don't take their additions and try to change subsequent calls
168
- resolveBulkPersistChanges(event, r.data, optimisticBulkPersistChanges);
169
-
170
- for (let i = 0, length = deferredPlugins.length; i < length; i++) {
171
- workPipeline.pipe((d) => {
172
-
173
- const plugin = deferredPlugins[i];
174
-
175
- plugin.bulkPersist({
176
- id: uuid(8),
177
- operation: optimisticBulkPersistChanges,
178
- schemas: event.schemas
179
- }, (r) => {
180
-
181
- if (r.ok === Result.ERROR) {
182
- d(r);
183
- return;
184
- }
185
-
186
- d(Result.success());
187
- });
188
- });
189
- }
190
-
191
- setTimeout(() => {
192
- workPipeline.filter((_) => {
193
- // no-op for now, maybe implement retries?
194
- });
195
- }, 5);
196
- });
197
-
198
- } catch (e: any) {
199
- done(PluginEventResult.error(event.id, e));
200
- }
201
- }
202
- }
@@ -1,137 +0,0 @@
1
- import { PluginEventCallbackPartialResult, PluginEventCallbackResult, PluginEventResult, Result } from '../../results';
2
- import { DbPluginBulkPersistEvent, DbPluginEvent, DbPluginQueryEvent, IDbPlugin, ReplicationPluginOptions } from '../types';
3
- import { AsyncPipeline, WorkPipeline } from '../../pipeline';
4
- import { BulkPersistResult } from '../../collections';
5
- import { resolveBulkPersistChanges } from '../../utilities';
6
-
7
- export class ReplicationDbPlugin implements IDbPlugin {
8
-
9
- plugins: ReplicationPluginOptions;
10
-
11
- protected constructor(plugins: ReplicationPluginOptions) {
12
- this.plugins = plugins;
13
- }
14
-
15
- /**
16
- * Creates a new DbPluginReplicator that coordinates operations between a source database and its replicas.
17
- *
18
- * @param source The primary database plugin that will receive all operations first
19
- * @param replicas Additional database plugins that will replicate operations from the source
20
- * @returns A new DbPluginReplicator instance that manages the source-replica relationship
21
- */
22
- static create(plugins: ReplicationPluginOptions) {
23
- return new ReplicationDbPlugin(plugins);
24
- }
25
-
26
- /**
27
- * Will query the read plugin if there is one, otherwise the source plugin will be queried
28
- */
29
- query<TEntity extends {}, TShape extends any = TEntity>(event: DbPluginQueryEvent<TEntity, TShape>, done: PluginEventCallbackResult<TShape>): void {
30
- try {
31
-
32
- const plugin = this.plugins.read != null ? this.plugins.read : this.plugins.source;
33
-
34
- plugin.query(event, done);
35
- } catch (e: any) {
36
- done(PluginEventResult.error(event.id, e));
37
- }
38
- }
39
-
40
- destroy(event: DbPluginEvent, done: PluginEventCallbackResult<never>): void {
41
- try {
42
-
43
- const pipeline = new AsyncPipeline<IDbPlugin, never>();
44
- const plugins = [this.plugins.source, ...this.plugins.replicas];
45
-
46
- for (let i = 0, length = plugins.length; i < length; i++) {
47
- pipeline.pipe(plugins[i], (plugin, done) => plugin.destroy(event, done));
48
- }
49
-
50
- pipeline.filter((result) => {
51
-
52
- if (result.ok === Result.ERROR) {
53
- done(PluginEventResult.error(event.id, result.error));
54
- return;
55
- }
56
-
57
- done(PluginEventResult.success(event.id));
58
- });
59
-
60
- } catch (e: any) {
61
- done(PluginEventResult.error(event.id, e));
62
- }
63
- }
64
-
65
-
66
- bulkPersist(event: DbPluginBulkPersistEvent, done: PluginEventCallbackPartialResult<BulkPersistResult>): void {
67
- try {
68
- // insert into the source first to generate any ids, then take the result and persist that into the replicas
69
- const pipeline = new WorkPipeline();
70
- const plugins = [this.plugins.source, ...this.plugins.replicas];
71
-
72
- if (this.plugins.read != null) {
73
- plugins.push(this.plugins.read);
74
- }
75
-
76
- const result = new BulkPersistResult();
77
-
78
- for (let i = 0, length = plugins.length; i < length; i++) {
79
- pipeline.pipe((d) => {
80
-
81
- const plugin = plugins[i];
82
-
83
- // source is first
84
- if (i === 0) {
85
- plugin.bulkPersist(event, (r) => {
86
-
87
- if (r.ok === Result.ERROR) {
88
- d(r)
89
- return;
90
- }
91
-
92
- // make sure we swap the adds here, that way we can make sure other persist events
93
- // don't take their additions and try to change subsequent calls
94
- resolveBulkPersistChanges(event, r.data, event.operation);
95
-
96
- d(Result.success());
97
- });
98
- return;
99
- }
100
-
101
- plugin.bulkPersist(event, (r) => {
102
-
103
- if (r.ok === Result.ERROR) {
104
- d(r)
105
- return;
106
- }
107
-
108
- d(Result.success());
109
- });
110
- })
111
- }
112
-
113
- let successCount = 0;
114
-
115
- pipeline.filter((r) => {
116
-
117
- if (r.ok === Result.ERROR) {
118
-
119
- if (successCount > 0) {
120
- done(PluginEventResult.partial(event.id, result, r.error));
121
- return;
122
- }
123
-
124
- done(PluginEventResult.error(event.id, r.error));
125
- return;
126
- }
127
-
128
- successCount++;
129
-
130
- done(PluginEventResult.success(event.id, result));
131
- });
132
-
133
- } catch (e: any) {
134
- done(PluginEventResult.error(event.id, e));
135
- }
136
- }
137
- }
@@ -1,46 +0,0 @@
1
- import { QueryOption, QueryOptionName } from "../query/types";
2
- import { IQuery } from "../types";
3
-
4
- export abstract class DataTranslator<TRoot extends {}, TShape> {
5
-
6
- protected query: IQuery<TRoot, TShape>;
7
- private functionMap: Record<QueryOptionName, (data: unknown, option: QueryOption<any, any>) => TShape> = {
8
- count: (data: unknown, option: QueryOption<TShape, "count">) => this.count<any>(data, option),
9
- distinct: (data: unknown, option: QueryOption<TShape, "distinct">) => this.distinct(data, option),
10
- filter: (data: unknown, option: QueryOption<TShape, "filter">) => this.filter(data, option),
11
- map: (data: unknown, option: QueryOption<TShape, "map">) => this.map(data, option),
12
- max: (data: unknown, option: QueryOption<TShape, "max">) => this.max<any>(data, option),
13
- min: (data: unknown, option: QueryOption<TShape, "min">) => this.min<any>(data, option),
14
- skip: (data: unknown, option: QueryOption<TShape, "skip">) => this.skip(data, option),
15
- sort: (data: unknown, option: QueryOption<TShape, "sort">) => this.sort(data, option),
16
- sum: (data: unknown, option: QueryOption<TShape, "sum">) => this.sum<any>(data, option),
17
- take: (data: unknown, option: QueryOption<TShape, "take">) => this.take(data, option)
18
- };
19
-
20
- constructor(query: IQuery<TRoot, TShape>) {
21
- this.query = query;
22
- }
23
-
24
- // Terminators
25
- abstract count<TResult extends number>(data: unknown, option: QueryOption<TShape, "count">): TResult;
26
- abstract min<TResult extends string | number | Date>(data: unknown, option: QueryOption<TShape, "min">): TResult;
27
- abstract max<TResult extends string | number | Date>(data: unknown, option: QueryOption<TShape, "max">): TResult;
28
- abstract sum<TResult extends number>(data: unknown, option: QueryOption<TShape, "sum">): TResult;
29
- abstract distinct<TResult>(data: unknown, option: QueryOption<TShape, "distinct">): TResult;
30
-
31
- // Shapers
32
- abstract filter<TResult>(data: unknown, option: QueryOption<TShape, "filter">): TResult;
33
- abstract skip(data: unknown, option: QueryOption<TShape, "skip">): TShape;
34
- abstract take(data: unknown, option: QueryOption<TShape, "take">): TShape;
35
- abstract sort(data: unknown, option: QueryOption<TShape, "sort">): TShape;
36
- abstract map(data: unknown, option: QueryOption<TShape, "map">): TShape;
37
-
38
- translate(data: unknown): TShape {
39
-
40
- this.query.options.forEach(item => {
41
- data = this.functionMap[item.name](data, item);
42
- });
43
-
44
- return data as TShape;
45
- }
46
- }