@chipmobilesdk/rn-local-db 0.4.0 → 0.5.0

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 (680) hide show
  1. package/CHANGELOG.md +137 -0
  2. package/README.md +69 -8
  3. package/lib/commonjs/adapter/budgets.js +79 -0
  4. package/lib/commonjs/adapter/budgets.js.map +1 -0
  5. package/lib/commonjs/adapter/collection.js +236 -0
  6. package/lib/commonjs/adapter/collection.js.map +1 -0
  7. package/lib/commonjs/adapter/deletion.js +291 -0
  8. package/lib/commonjs/adapter/deletion.js.map +1 -0
  9. package/lib/commonjs/adapter/handle.js +259 -0
  10. package/lib/commonjs/adapter/handle.js.map +1 -0
  11. package/lib/commonjs/adapter/index.js +67 -0
  12. package/lib/commonjs/adapter/index.js.map +1 -0
  13. package/lib/commonjs/adapter/lifecycle.js +176 -0
  14. package/lib/commonjs/adapter/lifecycle.js.map +1 -0
  15. package/lib/commonjs/adapter/schema-sync.js +124 -0
  16. package/lib/commonjs/adapter/schema-sync.js.map +1 -0
  17. package/lib/commonjs/adapter/transaction.js +58 -0
  18. package/lib/commonjs/adapter/transaction.js.map +1 -0
  19. package/lib/commonjs/artifacts/availability.js +90 -0
  20. package/lib/commonjs/artifacts/availability.js.map +1 -0
  21. package/lib/commonjs/artifacts/cascade.js +80 -0
  22. package/lib/commonjs/artifacts/cascade.js.map +1 -0
  23. package/lib/commonjs/artifacts/paths.js +31 -0
  24. package/lib/commonjs/artifacts/paths.js.map +1 -0
  25. package/lib/commonjs/artifacts/reconcile.js +55 -0
  26. package/lib/commonjs/artifacts/reconcile.js.map +1 -0
  27. package/lib/commonjs/artifacts/store.js +300 -0
  28. package/lib/commonjs/artifacts/store.js.map +1 -0
  29. package/lib/commonjs/contract/adapter.js +6 -0
  30. package/lib/commonjs/contract/adapter.js.map +1 -0
  31. package/lib/commonjs/contract/attachment.js +2 -0
  32. package/lib/commonjs/contract/attachment.js.map +1 -0
  33. package/lib/commonjs/contract/backup.js +2 -0
  34. package/lib/commonjs/contract/backup.js.map +1 -0
  35. package/lib/commonjs/contract/config.js +31 -0
  36. package/lib/commonjs/contract/config.js.map +1 -0
  37. package/lib/commonjs/contract/encryption.js +6 -0
  38. package/lib/commonjs/contract/encryption.js.map +1 -0
  39. package/lib/commonjs/contract/errors.js +64 -0
  40. package/lib/commonjs/contract/errors.js.map +1 -0
  41. package/lib/commonjs/contract/migration.js +6 -0
  42. package/lib/commonjs/contract/migration.js.map +1 -0
  43. package/lib/commonjs/contract/query.js +6 -0
  44. package/lib/commonjs/contract/query.js.map +1 -0
  45. package/lib/commonjs/contract/record.js +6 -0
  46. package/lib/commonjs/contract/record.js.map +1 -0
  47. package/lib/commonjs/contract/schema.js +2 -0
  48. package/lib/commonjs/contract/schema.js.map +1 -0
  49. package/lib/commonjs/contract/scope.js +2 -0
  50. package/lib/commonjs/contract/scope.js.map +1 -0
  51. package/lib/commonjs/contract/transaction.js +6 -0
  52. package/lib/commonjs/contract/transaction.js.map +1 -0
  53. package/lib/commonjs/crypto/chunked-cipher.js +147 -0
  54. package/lib/commonjs/crypto/chunked-cipher.js.map +1 -0
  55. package/lib/commonjs/crypto/derive.js +61 -0
  56. package/lib/commonjs/crypto/derive.js.map +1 -0
  57. package/lib/commonjs/crypto/key-provider.js +70 -0
  58. package/lib/commonjs/crypto/key-provider.js.map +1 -0
  59. package/lib/commonjs/crypto/provider.js +54 -0
  60. package/lib/commonjs/crypto/provider.js.map +1 -0
  61. package/lib/commonjs/diagnostics/dev-log.js +127 -0
  62. package/lib/commonjs/diagnostics/dev-log.js.map +1 -0
  63. package/lib/commonjs/diagnostics/errors.js +57 -0
  64. package/lib/commonjs/diagnostics/errors.js.map +1 -0
  65. package/lib/commonjs/diagnostics/faults.js +54 -0
  66. package/lib/commonjs/diagnostics/faults.js.map +1 -0
  67. package/lib/commonjs/diagnostics/map-native.js +98 -0
  68. package/lib/commonjs/diagnostics/map-native.js.map +1 -0
  69. package/lib/commonjs/diagnostics/redact.js +110 -0
  70. package/lib/commonjs/diagnostics/redact.js.map +1 -0
  71. package/lib/commonjs/index.js +70 -0
  72. package/lib/commonjs/index.js.map +1 -0
  73. package/lib/commonjs/migration/executor.js +136 -0
  74. package/lib/commonjs/migration/executor.js.map +1 -0
  75. package/lib/commonjs/migration/ledger.js +64 -0
  76. package/lib/commonjs/migration/ledger.js.map +1 -0
  77. package/lib/commonjs/migration/validate-chain.js +76 -0
  78. package/lib/commonjs/migration/validate-chain.js.map +1 -0
  79. package/lib/commonjs/package.json +1 -0
  80. package/lib/commonjs/platform/backup-android-verify.js +76 -0
  81. package/lib/commonjs/platform/backup-android-verify.js.map +1 -0
  82. package/lib/commonjs/platform/backup-ios.js +50 -0
  83. package/lib/commonjs/platform/backup-ios.js.map +1 -0
  84. package/lib/commonjs/platform/bytes.js +158 -0
  85. package/lib/commonjs/platform/bytes.js.map +1 -0
  86. package/lib/commonjs/platform/fs.js +59 -0
  87. package/lib/commonjs/platform/fs.js.map +1 -0
  88. package/lib/commonjs/platform/location.js +129 -0
  89. package/lib/commonjs/platform/location.js.map +1 -0
  90. package/lib/commonjs/query/budgets.js +95 -0
  91. package/lib/commonjs/query/budgets.js.map +1 -0
  92. package/lib/commonjs/query/compare.js +97 -0
  93. package/lib/commonjs/query/compare.js.map +1 -0
  94. package/lib/commonjs/query/cursor.js +97 -0
  95. package/lib/commonjs/query/cursor.js.map +1 -0
  96. package/lib/commonjs/query/filter.js +82 -0
  97. package/lib/commonjs/query/filter.js.map +1 -0
  98. package/lib/commonjs/query/paginate.js +48 -0
  99. package/lib/commonjs/query/paginate.js.map +1 -0
  100. package/lib/commonjs/query/sort.js +61 -0
  101. package/lib/commonjs/query/sort.js.map +1 -0
  102. package/lib/commonjs/query/validate.js +180 -0
  103. package/lib/commonjs/query/validate.js.map +1 -0
  104. package/lib/commonjs/schema/declare.js +47 -0
  105. package/lib/commonjs/schema/declare.js.map +1 -0
  106. package/lib/commonjs/schema/validate-config.js +115 -0
  107. package/lib/commonjs/schema/validate-config.js.map +1 -0
  108. package/lib/commonjs/scope/hash.js +107 -0
  109. package/lib/commonjs/scope/hash.js.map +1 -0
  110. package/lib/commonjs/scope/normalize.js +73 -0
  111. package/lib/commonjs/scope/normalize.js.map +1 -0
  112. package/lib/commonjs/scope/validate.js +81 -0
  113. package/lib/commonjs/scope/validate.js.map +1 -0
  114. package/lib/commonjs/sqlite/adapter.js +31 -0
  115. package/lib/commonjs/sqlite/adapter.js.map +1 -0
  116. package/lib/commonjs/sqlite/batch.js +218 -0
  117. package/lib/commonjs/sqlite/batch.js.map +1 -0
  118. package/lib/commonjs/sqlite/catalog.js +81 -0
  119. package/lib/commonjs/sqlite/catalog.js.map +1 -0
  120. package/lib/commonjs/sqlite/connection.js +210 -0
  121. package/lib/commonjs/sqlite/connection.js.map +1 -0
  122. package/lib/commonjs/sqlite/index-coverage.js +42 -0
  123. package/lib/commonjs/sqlite/index-coverage.js.map +1 -0
  124. package/lib/commonjs/sqlite/native.js +54 -0
  125. package/lib/commonjs/sqlite/native.js.map +1 -0
  126. package/lib/commonjs/sqlite/row-codec.js +192 -0
  127. package/lib/commonjs/sqlite/row-codec.js.map +1 -0
  128. package/lib/commonjs/sqlite/sql-builder.js +253 -0
  129. package/lib/commonjs/sqlite/sql-builder.js.map +1 -0
  130. package/lib/commonjs/sqlite/statements.js +54 -0
  131. package/lib/commonjs/sqlite/statements.js.map +1 -0
  132. package/lib/commonjs/sqlite/transaction-queue.js +79 -0
  133. package/lib/commonjs/sqlite/transaction-queue.js.map +1 -0
  134. package/lib/commonjs/sqlite/transactions.js +33 -0
  135. package/lib/commonjs/sqlite/transactions.js.map +1 -0
  136. package/lib/commonjs/sqlite/values.js +31 -0
  137. package/lib/commonjs/sqlite/values.js.map +1 -0
  138. package/lib/commonjs/testing/conformance/attachments.js +180 -0
  139. package/lib/commonjs/testing/conformance/attachments.js.map +1 -0
  140. package/lib/commonjs/testing/conformance/encryption.js +187 -0
  141. package/lib/commonjs/testing/conformance/encryption.js.map +1 -0
  142. package/lib/commonjs/testing/conformance/index.js +103 -0
  143. package/lib/commonjs/testing/conformance/index.js.map +1 -0
  144. package/lib/commonjs/testing/conformance/lifecycle.js +134 -0
  145. package/lib/commonjs/testing/conformance/lifecycle.js.map +1 -0
  146. package/lib/commonjs/testing/conformance/migrations.js +167 -0
  147. package/lib/commonjs/testing/conformance/migrations.js.map +1 -0
  148. package/lib/commonjs/testing/conformance/queries.js +278 -0
  149. package/lib/commonjs/testing/conformance/queries.js.map +1 -0
  150. package/lib/commonjs/testing/conformance/records.js +224 -0
  151. package/lib/commonjs/testing/conformance/records.js.map +1 -0
  152. package/lib/commonjs/testing/conformance/scopes.js +107 -0
  153. package/lib/commonjs/testing/conformance/scopes.js.map +1 -0
  154. package/lib/commonjs/testing/conformance/transactions.js +228 -0
  155. package/lib/commonjs/testing/conformance/transactions.js.map +1 -0
  156. package/lib/commonjs/testing/faults.js +38 -0
  157. package/lib/commonjs/testing/faults.js.map +1 -0
  158. package/lib/commonjs/testing/index.js +59 -0
  159. package/lib/commonjs/testing/index.js.map +1 -0
  160. package/lib/commonjs/testing/memory-adapter/attachments.js +145 -0
  161. package/lib/commonjs/testing/memory-adapter/attachments.js.map +1 -0
  162. package/lib/commonjs/testing/memory-adapter/collection.js +224 -0
  163. package/lib/commonjs/testing/memory-adapter/collection.js.map +1 -0
  164. package/lib/commonjs/testing/memory-adapter/index.js +366 -0
  165. package/lib/commonjs/testing/memory-adapter/index.js.map +1 -0
  166. package/lib/commonjs/testing/memory-adapter/migrations.js +126 -0
  167. package/lib/commonjs/testing/memory-adapter/migrations.js.map +1 -0
  168. package/lib/commonjs/testing/memory-adapter/reset.js +49 -0
  169. package/lib/commonjs/testing/memory-adapter/reset.js.map +1 -0
  170. package/lib/commonjs/testing/memory-adapter/store.js +107 -0
  171. package/lib/commonjs/testing/memory-adapter/store.js.map +1 -0
  172. package/lib/module/adapter/budgets.js +51 -0
  173. package/lib/module/adapter/budgets.js.map +1 -0
  174. package/lib/module/adapter/collection.js +232 -0
  175. package/lib/module/adapter/collection.js.map +1 -0
  176. package/lib/module/adapter/deletion.js +280 -0
  177. package/lib/module/adapter/deletion.js.map +1 -0
  178. package/lib/module/adapter/handle.js +254 -0
  179. package/lib/module/adapter/handle.js.map +1 -0
  180. package/lib/module/adapter/index.js +59 -0
  181. package/lib/module/adapter/index.js.map +1 -0
  182. package/lib/module/adapter/lifecycle.js +172 -0
  183. package/lib/module/adapter/lifecycle.js.map +1 -0
  184. package/lib/module/adapter/schema-sync.js +121 -0
  185. package/lib/module/adapter/schema-sync.js.map +1 -0
  186. package/lib/module/adapter/transaction.js +54 -0
  187. package/lib/module/adapter/transaction.js.map +1 -0
  188. package/lib/module/artifacts/availability.js +86 -0
  189. package/lib/module/artifacts/availability.js.map +1 -0
  190. package/lib/module/artifacts/cascade.js +75 -0
  191. package/lib/module/artifacts/cascade.js.map +1 -0
  192. package/lib/module/artifacts/paths.js +26 -0
  193. package/lib/module/artifacts/paths.js.map +1 -0
  194. package/lib/module/artifacts/reconcile.js +51 -0
  195. package/lib/module/artifacts/reconcile.js.map +1 -0
  196. package/lib/module/artifacts/store.js +289 -0
  197. package/lib/module/artifacts/store.js.map +1 -0
  198. package/lib/module/contract/adapter.js +4 -0
  199. package/lib/module/contract/adapter.js.map +1 -0
  200. package/lib/module/contract/attachment.js +2 -0
  201. package/lib/module/contract/attachment.js.map +1 -0
  202. package/lib/module/contract/backup.js +2 -0
  203. package/lib/module/contract/backup.js.map +1 -0
  204. package/lib/module/contract/config.js +27 -0
  205. package/lib/module/contract/config.js.map +1 -0
  206. package/lib/module/contract/encryption.js +4 -0
  207. package/lib/module/contract/encryption.js.map +1 -0
  208. package/lib/module/contract/errors.js +60 -0
  209. package/lib/module/contract/errors.js.map +1 -0
  210. package/lib/module/contract/migration.js +4 -0
  211. package/lib/module/contract/migration.js.map +1 -0
  212. package/lib/module/contract/query.js +4 -0
  213. package/lib/module/contract/query.js.map +1 -0
  214. package/lib/module/contract/record.js +4 -0
  215. package/lib/module/contract/record.js.map +1 -0
  216. package/lib/module/contract/schema.js +2 -0
  217. package/lib/module/contract/schema.js.map +1 -0
  218. package/lib/module/contract/scope.js +2 -0
  219. package/lib/module/contract/scope.js.map +1 -0
  220. package/lib/module/contract/transaction.js +4 -0
  221. package/lib/module/contract/transaction.js.map +1 -0
  222. package/lib/module/crypto/chunked-cipher.js +134 -0
  223. package/lib/module/crypto/chunked-cipher.js.map +1 -0
  224. package/lib/module/crypto/derive.js +56 -0
  225. package/lib/module/crypto/derive.js.map +1 -0
  226. package/lib/module/crypto/key-provider.js +67 -0
  227. package/lib/module/crypto/key-provider.js.map +1 -0
  228. package/lib/module/crypto/provider.js +49 -0
  229. package/lib/module/crypto/provider.js.map +1 -0
  230. package/lib/module/diagnostics/dev-log.js +120 -0
  231. package/lib/module/diagnostics/dev-log.js.map +1 -0
  232. package/lib/module/diagnostics/errors.js +44 -0
  233. package/lib/module/diagnostics/errors.js.map +1 -0
  234. package/lib/module/diagnostics/faults.js +47 -0
  235. package/lib/module/diagnostics/faults.js.map +1 -0
  236. package/lib/module/diagnostics/map-native.js +93 -0
  237. package/lib/module/diagnostics/map-native.js.map +1 -0
  238. package/lib/module/diagnostics/redact.js +102 -0
  239. package/lib/module/diagnostics/redact.js.map +1 -0
  240. package/lib/module/index.js +28 -0
  241. package/lib/module/index.js.map +1 -0
  242. package/lib/module/migration/executor.js +132 -0
  243. package/lib/module/migration/executor.js.map +1 -0
  244. package/lib/module/migration/ledger.js +57 -0
  245. package/lib/module/migration/ledger.js.map +1 -0
  246. package/lib/module/migration/validate-chain.js +70 -0
  247. package/lib/module/migration/validate-chain.js.map +1 -0
  248. package/lib/module/package.json +1 -0
  249. package/lib/module/platform/backup-android-verify.js +69 -0
  250. package/lib/module/platform/backup-android-verify.js.map +1 -0
  251. package/lib/module/platform/backup-ios.js +44 -0
  252. package/lib/module/platform/backup-ios.js.map +1 -0
  253. package/lib/module/platform/bytes.js +148 -0
  254. package/lib/module/platform/bytes.js.map +1 -0
  255. package/lib/module/platform/fs.js +54 -0
  256. package/lib/module/platform/fs.js.map +1 -0
  257. package/lib/module/platform/location.js +120 -0
  258. package/lib/module/platform/location.js.map +1 -0
  259. package/lib/module/query/budgets.js +88 -0
  260. package/lib/module/query/budgets.js.map +1 -0
  261. package/lib/module/query/compare.js +90 -0
  262. package/lib/module/query/compare.js.map +1 -0
  263. package/lib/module/query/cursor.js +91 -0
  264. package/lib/module/query/cursor.js.map +1 -0
  265. package/lib/module/query/filter.js +78 -0
  266. package/lib/module/query/filter.js.map +1 -0
  267. package/lib/module/query/paginate.js +40 -0
  268. package/lib/module/query/paginate.js.map +1 -0
  269. package/lib/module/query/sort.js +53 -0
  270. package/lib/module/query/sort.js.map +1 -0
  271. package/lib/module/query/validate.js +173 -0
  272. package/lib/module/query/validate.js.map +1 -0
  273. package/lib/module/schema/declare.js +37 -0
  274. package/lib/module/schema/declare.js.map +1 -0
  275. package/lib/module/schema/validate-config.js +111 -0
  276. package/lib/module/schema/validate-config.js.map +1 -0
  277. package/lib/module/scope/hash.js +102 -0
  278. package/lib/module/scope/hash.js.map +1 -0
  279. package/lib/module/scope/normalize.js +67 -0
  280. package/lib/module/scope/normalize.js.map +1 -0
  281. package/lib/module/scope/validate.js +76 -0
  282. package/lib/module/scope/validate.js.map +1 -0
  283. package/lib/module/sqlite/adapter.js +27 -0
  284. package/lib/module/sqlite/adapter.js.map +1 -0
  285. package/lib/module/sqlite/batch.js +214 -0
  286. package/lib/module/sqlite/batch.js.map +1 -0
  287. package/lib/module/sqlite/catalog.js +72 -0
  288. package/lib/module/sqlite/catalog.js.map +1 -0
  289. package/lib/module/sqlite/connection.js +206 -0
  290. package/lib/module/sqlite/connection.js.map +1 -0
  291. package/lib/module/sqlite/index-coverage.js +38 -0
  292. package/lib/module/sqlite/index-coverage.js.map +1 -0
  293. package/lib/module/sqlite/native.js +48 -0
  294. package/lib/module/sqlite/native.js.map +1 -0
  295. package/lib/module/sqlite/row-codec.js +176 -0
  296. package/lib/module/sqlite/row-codec.js.map +1 -0
  297. package/lib/module/sqlite/sql-builder.js +247 -0
  298. package/lib/module/sqlite/sql-builder.js.map +1 -0
  299. package/lib/module/sqlite/statements.js +49 -0
  300. package/lib/module/sqlite/statements.js.map +1 -0
  301. package/lib/module/sqlite/transaction-queue.js +75 -0
  302. package/lib/module/sqlite/transaction-queue.js.map +1 -0
  303. package/lib/module/sqlite/transactions.js +29 -0
  304. package/lib/module/sqlite/transactions.js.map +1 -0
  305. package/lib/module/sqlite/values.js +24 -0
  306. package/lib/module/sqlite/values.js.map +1 -0
  307. package/lib/module/testing/conformance/attachments.js +176 -0
  308. package/lib/module/testing/conformance/attachments.js.map +1 -0
  309. package/lib/module/testing/conformance/encryption.js +183 -0
  310. package/lib/module/testing/conformance/encryption.js.map +1 -0
  311. package/lib/module/testing/conformance/index.js +97 -0
  312. package/lib/module/testing/conformance/index.js.map +1 -0
  313. package/lib/module/testing/conformance/lifecycle.js +130 -0
  314. package/lib/module/testing/conformance/lifecycle.js.map +1 -0
  315. package/lib/module/testing/conformance/migrations.js +163 -0
  316. package/lib/module/testing/conformance/migrations.js.map +1 -0
  317. package/lib/module/testing/conformance/queries.js +274 -0
  318. package/lib/module/testing/conformance/queries.js.map +1 -0
  319. package/lib/module/testing/conformance/records.js +220 -0
  320. package/lib/module/testing/conformance/records.js.map +1 -0
  321. package/lib/module/testing/conformance/scopes.js +103 -0
  322. package/lib/module/testing/conformance/scopes.js.map +1 -0
  323. package/lib/module/testing/conformance/transactions.js +224 -0
  324. package/lib/module/testing/conformance/transactions.js.map +1 -0
  325. package/lib/module/testing/faults.js +16 -0
  326. package/lib/module/testing/faults.js.map +1 -0
  327. package/lib/module/testing/index.js +16 -0
  328. package/lib/module/testing/index.js.map +1 -0
  329. package/lib/module/testing/memory-adapter/attachments.js +142 -0
  330. package/lib/module/testing/memory-adapter/attachments.js.map +1 -0
  331. package/lib/module/testing/memory-adapter/collection.js +220 -0
  332. package/lib/module/testing/memory-adapter/collection.js.map +1 -0
  333. package/lib/module/testing/memory-adapter/index.js +351 -0
  334. package/lib/module/testing/memory-adapter/index.js.map +1 -0
  335. package/lib/module/testing/memory-adapter/migrations.js +122 -0
  336. package/lib/module/testing/memory-adapter/migrations.js.map +1 -0
  337. package/lib/module/testing/memory-adapter/reset.js +44 -0
  338. package/lib/module/testing/memory-adapter/reset.js.map +1 -0
  339. package/lib/module/testing/memory-adapter/store.js +94 -0
  340. package/lib/module/testing/memory-adapter/store.js.map +1 -0
  341. package/lib/typescript/commonjs/adapter/budgets.d.ts +19 -0
  342. package/lib/typescript/commonjs/adapter/budgets.d.ts.map +1 -0
  343. package/lib/typescript/commonjs/adapter/collection.d.ts +25 -0
  344. package/lib/typescript/commonjs/adapter/collection.d.ts.map +1 -0
  345. package/lib/typescript/commonjs/adapter/deletion.d.ts +48 -0
  346. package/lib/typescript/commonjs/adapter/deletion.d.ts.map +1 -0
  347. package/lib/typescript/commonjs/adapter/handle.d.ts +30 -0
  348. package/lib/typescript/commonjs/adapter/handle.d.ts.map +1 -0
  349. package/lib/typescript/commonjs/adapter/index.d.ts +30 -0
  350. package/lib/typescript/commonjs/adapter/index.d.ts.map +1 -0
  351. package/lib/typescript/commonjs/adapter/lifecycle.d.ts +25 -0
  352. package/lib/typescript/commonjs/adapter/lifecycle.d.ts.map +1 -0
  353. package/lib/typescript/commonjs/adapter/schema-sync.d.ts +19 -0
  354. package/lib/typescript/commonjs/adapter/schema-sync.d.ts.map +1 -0
  355. package/lib/typescript/commonjs/adapter/transaction.d.ts +32 -0
  356. package/lib/typescript/commonjs/adapter/transaction.d.ts.map +1 -0
  357. package/lib/typescript/commonjs/artifacts/availability.d.ts +19 -0
  358. package/lib/typescript/commonjs/artifacts/availability.d.ts.map +1 -0
  359. package/lib/typescript/commonjs/artifacts/cascade.d.ts +26 -0
  360. package/lib/typescript/commonjs/artifacts/cascade.d.ts.map +1 -0
  361. package/lib/typescript/commonjs/artifacts/paths.d.ts +16 -0
  362. package/lib/typescript/commonjs/artifacts/paths.d.ts.map +1 -0
  363. package/lib/typescript/commonjs/artifacts/reconcile.d.ts +23 -0
  364. package/lib/typescript/commonjs/artifacts/reconcile.d.ts.map +1 -0
  365. package/lib/typescript/commonjs/artifacts/store.d.ts +45 -0
  366. package/lib/typescript/commonjs/artifacts/store.d.ts.map +1 -0
  367. package/lib/typescript/commonjs/contract/adapter.d.ts +55 -0
  368. package/lib/typescript/commonjs/contract/adapter.d.ts.map +1 -0
  369. package/lib/typescript/commonjs/contract/attachment.d.ts +84 -0
  370. package/lib/typescript/commonjs/contract/attachment.d.ts.map +1 -0
  371. package/lib/typescript/commonjs/contract/backup.d.ts +26 -0
  372. package/lib/typescript/commonjs/contract/backup.d.ts.map +1 -0
  373. package/lib/typescript/commonjs/contract/config.d.ts +50 -0
  374. package/lib/typescript/commonjs/contract/config.d.ts.map +1 -0
  375. package/lib/typescript/commonjs/contract/encryption.d.ts +31 -0
  376. package/lib/typescript/commonjs/contract/encryption.d.ts.map +1 -0
  377. package/lib/typescript/commonjs/contract/errors.d.ts +50 -0
  378. package/lib/typescript/commonjs/contract/errors.d.ts.map +1 -0
  379. package/lib/typescript/commonjs/contract/migration.d.ts +37 -0
  380. package/lib/typescript/commonjs/contract/migration.d.ts.map +1 -0
  381. package/lib/typescript/commonjs/contract/query.d.ts +79 -0
  382. package/lib/typescript/commonjs/contract/query.d.ts.map +1 -0
  383. package/lib/typescript/commonjs/contract/record.d.ts +43 -0
  384. package/lib/typescript/commonjs/contract/record.d.ts.map +1 -0
  385. package/lib/typescript/commonjs/contract/schema.d.ts +33 -0
  386. package/lib/typescript/commonjs/contract/schema.d.ts.map +1 -0
  387. package/lib/typescript/commonjs/contract/scope.d.ts +33 -0
  388. package/lib/typescript/commonjs/contract/scope.d.ts.map +1 -0
  389. package/lib/typescript/commonjs/contract/transaction.d.ts +66 -0
  390. package/lib/typescript/commonjs/contract/transaction.d.ts.map +1 -0
  391. package/lib/typescript/commonjs/crypto/chunked-cipher.d.ts +57 -0
  392. package/lib/typescript/commonjs/crypto/chunked-cipher.d.ts.map +1 -0
  393. package/lib/typescript/commonjs/crypto/derive.d.ts +28 -0
  394. package/lib/typescript/commonjs/crypto/derive.d.ts.map +1 -0
  395. package/lib/typescript/commonjs/crypto/key-provider.d.ts +30 -0
  396. package/lib/typescript/commonjs/crypto/key-provider.d.ts.map +1 -0
  397. package/lib/typescript/commonjs/crypto/provider.d.ts +35 -0
  398. package/lib/typescript/commonjs/crypto/provider.d.ts.map +1 -0
  399. package/lib/typescript/commonjs/diagnostics/dev-log.d.ts +35 -0
  400. package/lib/typescript/commonjs/diagnostics/dev-log.d.ts.map +1 -0
  401. package/lib/typescript/commonjs/diagnostics/errors.d.ts +34 -0
  402. package/lib/typescript/commonjs/diagnostics/errors.d.ts.map +1 -0
  403. package/lib/typescript/commonjs/diagnostics/faults.d.ts +26 -0
  404. package/lib/typescript/commonjs/diagnostics/faults.d.ts.map +1 -0
  405. package/lib/typescript/commonjs/diagnostics/map-native.d.ts +31 -0
  406. package/lib/typescript/commonjs/diagnostics/map-native.d.ts.map +1 -0
  407. package/lib/typescript/commonjs/diagnostics/redact.d.ts +70 -0
  408. package/lib/typescript/commonjs/diagnostics/redact.d.ts.map +1 -0
  409. package/lib/typescript/commonjs/index.d.ts +30 -0
  410. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  411. package/lib/typescript/commonjs/migration/executor.d.ts +40 -0
  412. package/lib/typescript/commonjs/migration/executor.d.ts.map +1 -0
  413. package/lib/typescript/commonjs/migration/ledger.d.ts +34 -0
  414. package/lib/typescript/commonjs/migration/ledger.d.ts.map +1 -0
  415. package/lib/typescript/commonjs/migration/validate-chain.d.ts +20 -0
  416. package/lib/typescript/commonjs/migration/validate-chain.d.ts.map +1 -0
  417. package/lib/typescript/commonjs/package.json +1 -0
  418. package/lib/typescript/commonjs/platform/backup-android-verify.d.ts +30 -0
  419. package/lib/typescript/commonjs/platform/backup-android-verify.d.ts.map +1 -0
  420. package/lib/typescript/commonjs/platform/backup-ios.d.ts +26 -0
  421. package/lib/typescript/commonjs/platform/backup-ios.d.ts.map +1 -0
  422. package/lib/typescript/commonjs/platform/bytes.d.ts +36 -0
  423. package/lib/typescript/commonjs/platform/bytes.d.ts.map +1 -0
  424. package/lib/typescript/commonjs/platform/fs.d.ts +47 -0
  425. package/lib/typescript/commonjs/platform/fs.d.ts.map +1 -0
  426. package/lib/typescript/commonjs/platform/location.d.ts +53 -0
  427. package/lib/typescript/commonjs/platform/location.d.ts.map +1 -0
  428. package/lib/typescript/commonjs/query/budgets.d.ts +23 -0
  429. package/lib/typescript/commonjs/query/budgets.d.ts.map +1 -0
  430. package/lib/typescript/commonjs/query/compare.d.ts +42 -0
  431. package/lib/typescript/commonjs/query/compare.d.ts.map +1 -0
  432. package/lib/typescript/commonjs/query/cursor.d.ts +27 -0
  433. package/lib/typescript/commonjs/query/cursor.d.ts.map +1 -0
  434. package/lib/typescript/commonjs/query/filter.d.ts +11 -0
  435. package/lib/typescript/commonjs/query/filter.d.ts.map +1 -0
  436. package/lib/typescript/commonjs/query/paginate.d.ts +15 -0
  437. package/lib/typescript/commonjs/query/paginate.d.ts.map +1 -0
  438. package/lib/typescript/commonjs/query/sort.d.ts +19 -0
  439. package/lib/typescript/commonjs/query/sort.d.ts.map +1 -0
  440. package/lib/typescript/commonjs/query/validate.d.ts +15 -0
  441. package/lib/typescript/commonjs/query/validate.d.ts.map +1 -0
  442. package/lib/typescript/commonjs/schema/declare.d.ts +20 -0
  443. package/lib/typescript/commonjs/schema/declare.d.ts.map +1 -0
  444. package/lib/typescript/commonjs/schema/validate-config.d.ts +11 -0
  445. package/lib/typescript/commonjs/schema/validate-config.d.ts.map +1 -0
  446. package/lib/typescript/commonjs/scope/hash.d.ts +24 -0
  447. package/lib/typescript/commonjs/scope/hash.d.ts.map +1 -0
  448. package/lib/typescript/commonjs/scope/normalize.d.ts +46 -0
  449. package/lib/typescript/commonjs/scope/normalize.d.ts.map +1 -0
  450. package/lib/typescript/commonjs/scope/validate.d.ts +15 -0
  451. package/lib/typescript/commonjs/scope/validate.d.ts.map +1 -0
  452. package/lib/typescript/commonjs/sqlite/adapter.d.ts +16 -0
  453. package/lib/typescript/commonjs/sqlite/adapter.d.ts.map +1 -0
  454. package/lib/typescript/commonjs/sqlite/batch.d.ts +25 -0
  455. package/lib/typescript/commonjs/sqlite/batch.d.ts.map +1 -0
  456. package/lib/typescript/commonjs/sqlite/catalog.d.ts +34 -0
  457. package/lib/typescript/commonjs/sqlite/catalog.d.ts.map +1 -0
  458. package/lib/typescript/commonjs/sqlite/connection.d.ts +58 -0
  459. package/lib/typescript/commonjs/sqlite/connection.d.ts.map +1 -0
  460. package/lib/typescript/commonjs/sqlite/index-coverage.d.ts +18 -0
  461. package/lib/typescript/commonjs/sqlite/index-coverage.d.ts.map +1 -0
  462. package/lib/typescript/commonjs/sqlite/native.d.ts +48 -0
  463. package/lib/typescript/commonjs/sqlite/native.d.ts.map +1 -0
  464. package/lib/typescript/commonjs/sqlite/row-codec.d.ts +69 -0
  465. package/lib/typescript/commonjs/sqlite/row-codec.d.ts.map +1 -0
  466. package/lib/typescript/commonjs/sqlite/sql-builder.d.ts +34 -0
  467. package/lib/typescript/commonjs/sqlite/sql-builder.d.ts.map +1 -0
  468. package/lib/typescript/commonjs/sqlite/statements.d.ts +26 -0
  469. package/lib/typescript/commonjs/sqlite/statements.d.ts.map +1 -0
  470. package/lib/typescript/commonjs/sqlite/transaction-queue.d.ts +31 -0
  471. package/lib/typescript/commonjs/sqlite/transaction-queue.d.ts.map +1 -0
  472. package/lib/typescript/commonjs/sqlite/transactions.d.ts +26 -0
  473. package/lib/typescript/commonjs/sqlite/transactions.d.ts.map +1 -0
  474. package/lib/typescript/commonjs/sqlite/values.d.ts +13 -0
  475. package/lib/typescript/commonjs/sqlite/values.d.ts.map +1 -0
  476. package/lib/typescript/commonjs/testing/conformance/attachments.d.ts +4 -0
  477. package/lib/typescript/commonjs/testing/conformance/attachments.d.ts.map +1 -0
  478. package/lib/typescript/commonjs/testing/conformance/encryption.d.ts +4 -0
  479. package/lib/typescript/commonjs/testing/conformance/encryption.d.ts.map +1 -0
  480. package/lib/typescript/commonjs/testing/conformance/index.d.ts +58 -0
  481. package/lib/typescript/commonjs/testing/conformance/index.d.ts.map +1 -0
  482. package/lib/typescript/commonjs/testing/conformance/lifecycle.d.ts +4 -0
  483. package/lib/typescript/commonjs/testing/conformance/lifecycle.d.ts.map +1 -0
  484. package/lib/typescript/commonjs/testing/conformance/migrations.d.ts +4 -0
  485. package/lib/typescript/commonjs/testing/conformance/migrations.d.ts.map +1 -0
  486. package/lib/typescript/commonjs/testing/conformance/queries.d.ts +4 -0
  487. package/lib/typescript/commonjs/testing/conformance/queries.d.ts.map +1 -0
  488. package/lib/typescript/commonjs/testing/conformance/records.d.ts +4 -0
  489. package/lib/typescript/commonjs/testing/conformance/records.d.ts.map +1 -0
  490. package/lib/typescript/commonjs/testing/conformance/scopes.d.ts +4 -0
  491. package/lib/typescript/commonjs/testing/conformance/scopes.d.ts.map +1 -0
  492. package/lib/typescript/commonjs/testing/conformance/transactions.d.ts +4 -0
  493. package/lib/typescript/commonjs/testing/conformance/transactions.d.ts.map +1 -0
  494. package/lib/typescript/commonjs/testing/faults.d.ts +13 -0
  495. package/lib/typescript/commonjs/testing/faults.d.ts.map +1 -0
  496. package/lib/typescript/commonjs/testing/index.d.ts +13 -0
  497. package/lib/typescript/commonjs/testing/index.d.ts.map +1 -0
  498. package/lib/typescript/commonjs/testing/memory-adapter/attachments.d.ts +23 -0
  499. package/lib/typescript/commonjs/testing/memory-adapter/attachments.d.ts.map +1 -0
  500. package/lib/typescript/commonjs/testing/memory-adapter/collection.d.ts +19 -0
  501. package/lib/typescript/commonjs/testing/memory-adapter/collection.d.ts.map +1 -0
  502. package/lib/typescript/commonjs/testing/memory-adapter/index.d.ts +22 -0
  503. package/lib/typescript/commonjs/testing/memory-adapter/index.d.ts.map +1 -0
  504. package/lib/typescript/commonjs/testing/memory-adapter/migrations.d.ts +11 -0
  505. package/lib/typescript/commonjs/testing/memory-adapter/migrations.d.ts.map +1 -0
  506. package/lib/typescript/commonjs/testing/memory-adapter/reset.d.ts +23 -0
  507. package/lib/typescript/commonjs/testing/memory-adapter/reset.d.ts.map +1 -0
  508. package/lib/typescript/commonjs/testing/memory-adapter/store.d.ts +54 -0
  509. package/lib/typescript/commonjs/testing/memory-adapter/store.d.ts.map +1 -0
  510. package/lib/typescript/module/adapter/budgets.d.ts +19 -0
  511. package/lib/typescript/module/adapter/budgets.d.ts.map +1 -0
  512. package/lib/typescript/module/adapter/collection.d.ts +25 -0
  513. package/lib/typescript/module/adapter/collection.d.ts.map +1 -0
  514. package/lib/typescript/module/adapter/deletion.d.ts +48 -0
  515. package/lib/typescript/module/adapter/deletion.d.ts.map +1 -0
  516. package/lib/typescript/module/adapter/handle.d.ts +30 -0
  517. package/lib/typescript/module/adapter/handle.d.ts.map +1 -0
  518. package/lib/typescript/module/adapter/index.d.ts +30 -0
  519. package/lib/typescript/module/adapter/index.d.ts.map +1 -0
  520. package/lib/typescript/module/adapter/lifecycle.d.ts +25 -0
  521. package/lib/typescript/module/adapter/lifecycle.d.ts.map +1 -0
  522. package/lib/typescript/module/adapter/schema-sync.d.ts +19 -0
  523. package/lib/typescript/module/adapter/schema-sync.d.ts.map +1 -0
  524. package/lib/typescript/module/adapter/transaction.d.ts +32 -0
  525. package/lib/typescript/module/adapter/transaction.d.ts.map +1 -0
  526. package/lib/typescript/module/artifacts/availability.d.ts +19 -0
  527. package/lib/typescript/module/artifacts/availability.d.ts.map +1 -0
  528. package/lib/typescript/module/artifacts/cascade.d.ts +26 -0
  529. package/lib/typescript/module/artifacts/cascade.d.ts.map +1 -0
  530. package/lib/typescript/module/artifacts/paths.d.ts +16 -0
  531. package/lib/typescript/module/artifacts/paths.d.ts.map +1 -0
  532. package/lib/typescript/module/artifacts/reconcile.d.ts +23 -0
  533. package/lib/typescript/module/artifacts/reconcile.d.ts.map +1 -0
  534. package/lib/typescript/module/artifacts/store.d.ts +45 -0
  535. package/lib/typescript/module/artifacts/store.d.ts.map +1 -0
  536. package/lib/typescript/module/contract/adapter.d.ts +55 -0
  537. package/lib/typescript/module/contract/adapter.d.ts.map +1 -0
  538. package/lib/typescript/module/contract/attachment.d.ts +84 -0
  539. package/lib/typescript/module/contract/attachment.d.ts.map +1 -0
  540. package/lib/typescript/module/contract/backup.d.ts +26 -0
  541. package/lib/typescript/module/contract/backup.d.ts.map +1 -0
  542. package/lib/typescript/module/contract/config.d.ts +50 -0
  543. package/lib/typescript/module/contract/config.d.ts.map +1 -0
  544. package/lib/typescript/module/contract/encryption.d.ts +31 -0
  545. package/lib/typescript/module/contract/encryption.d.ts.map +1 -0
  546. package/lib/typescript/module/contract/errors.d.ts +50 -0
  547. package/lib/typescript/module/contract/errors.d.ts.map +1 -0
  548. package/lib/typescript/module/contract/migration.d.ts +37 -0
  549. package/lib/typescript/module/contract/migration.d.ts.map +1 -0
  550. package/lib/typescript/module/contract/query.d.ts +79 -0
  551. package/lib/typescript/module/contract/query.d.ts.map +1 -0
  552. package/lib/typescript/module/contract/record.d.ts +43 -0
  553. package/lib/typescript/module/contract/record.d.ts.map +1 -0
  554. package/lib/typescript/module/contract/schema.d.ts +33 -0
  555. package/lib/typescript/module/contract/schema.d.ts.map +1 -0
  556. package/lib/typescript/module/contract/scope.d.ts +33 -0
  557. package/lib/typescript/module/contract/scope.d.ts.map +1 -0
  558. package/lib/typescript/module/contract/transaction.d.ts +66 -0
  559. package/lib/typescript/module/contract/transaction.d.ts.map +1 -0
  560. package/lib/typescript/module/crypto/chunked-cipher.d.ts +57 -0
  561. package/lib/typescript/module/crypto/chunked-cipher.d.ts.map +1 -0
  562. package/lib/typescript/module/crypto/derive.d.ts +28 -0
  563. package/lib/typescript/module/crypto/derive.d.ts.map +1 -0
  564. package/lib/typescript/module/crypto/key-provider.d.ts +30 -0
  565. package/lib/typescript/module/crypto/key-provider.d.ts.map +1 -0
  566. package/lib/typescript/module/crypto/provider.d.ts +35 -0
  567. package/lib/typescript/module/crypto/provider.d.ts.map +1 -0
  568. package/lib/typescript/module/diagnostics/dev-log.d.ts +35 -0
  569. package/lib/typescript/module/diagnostics/dev-log.d.ts.map +1 -0
  570. package/lib/typescript/module/diagnostics/errors.d.ts +34 -0
  571. package/lib/typescript/module/diagnostics/errors.d.ts.map +1 -0
  572. package/lib/typescript/module/diagnostics/faults.d.ts +26 -0
  573. package/lib/typescript/module/diagnostics/faults.d.ts.map +1 -0
  574. package/lib/typescript/module/diagnostics/map-native.d.ts +31 -0
  575. package/lib/typescript/module/diagnostics/map-native.d.ts.map +1 -0
  576. package/lib/typescript/module/diagnostics/redact.d.ts +70 -0
  577. package/lib/typescript/module/diagnostics/redact.d.ts.map +1 -0
  578. package/lib/typescript/module/index.d.ts +30 -0
  579. package/lib/typescript/module/index.d.ts.map +1 -0
  580. package/lib/typescript/module/migration/executor.d.ts +40 -0
  581. package/lib/typescript/module/migration/executor.d.ts.map +1 -0
  582. package/lib/typescript/module/migration/ledger.d.ts +34 -0
  583. package/lib/typescript/module/migration/ledger.d.ts.map +1 -0
  584. package/lib/typescript/module/migration/validate-chain.d.ts +20 -0
  585. package/lib/typescript/module/migration/validate-chain.d.ts.map +1 -0
  586. package/lib/typescript/module/package.json +1 -0
  587. package/lib/typescript/module/platform/backup-android-verify.d.ts +30 -0
  588. package/lib/typescript/module/platform/backup-android-verify.d.ts.map +1 -0
  589. package/lib/typescript/module/platform/backup-ios.d.ts +26 -0
  590. package/lib/typescript/module/platform/backup-ios.d.ts.map +1 -0
  591. package/lib/typescript/module/platform/bytes.d.ts +36 -0
  592. package/lib/typescript/module/platform/bytes.d.ts.map +1 -0
  593. package/lib/typescript/module/platform/fs.d.ts +47 -0
  594. package/lib/typescript/module/platform/fs.d.ts.map +1 -0
  595. package/lib/typescript/module/platform/location.d.ts +53 -0
  596. package/lib/typescript/module/platform/location.d.ts.map +1 -0
  597. package/lib/typescript/module/query/budgets.d.ts +23 -0
  598. package/lib/typescript/module/query/budgets.d.ts.map +1 -0
  599. package/lib/typescript/module/query/compare.d.ts +42 -0
  600. package/lib/typescript/module/query/compare.d.ts.map +1 -0
  601. package/lib/typescript/module/query/cursor.d.ts +27 -0
  602. package/lib/typescript/module/query/cursor.d.ts.map +1 -0
  603. package/lib/typescript/module/query/filter.d.ts +11 -0
  604. package/lib/typescript/module/query/filter.d.ts.map +1 -0
  605. package/lib/typescript/module/query/paginate.d.ts +15 -0
  606. package/lib/typescript/module/query/paginate.d.ts.map +1 -0
  607. package/lib/typescript/module/query/sort.d.ts +19 -0
  608. package/lib/typescript/module/query/sort.d.ts.map +1 -0
  609. package/lib/typescript/module/query/validate.d.ts +15 -0
  610. package/lib/typescript/module/query/validate.d.ts.map +1 -0
  611. package/lib/typescript/module/schema/declare.d.ts +20 -0
  612. package/lib/typescript/module/schema/declare.d.ts.map +1 -0
  613. package/lib/typescript/module/schema/validate-config.d.ts +11 -0
  614. package/lib/typescript/module/schema/validate-config.d.ts.map +1 -0
  615. package/lib/typescript/module/scope/hash.d.ts +24 -0
  616. package/lib/typescript/module/scope/hash.d.ts.map +1 -0
  617. package/lib/typescript/module/scope/normalize.d.ts +46 -0
  618. package/lib/typescript/module/scope/normalize.d.ts.map +1 -0
  619. package/lib/typescript/module/scope/validate.d.ts +15 -0
  620. package/lib/typescript/module/scope/validate.d.ts.map +1 -0
  621. package/lib/typescript/module/sqlite/adapter.d.ts +16 -0
  622. package/lib/typescript/module/sqlite/adapter.d.ts.map +1 -0
  623. package/lib/typescript/module/sqlite/batch.d.ts +25 -0
  624. package/lib/typescript/module/sqlite/batch.d.ts.map +1 -0
  625. package/lib/typescript/module/sqlite/catalog.d.ts +34 -0
  626. package/lib/typescript/module/sqlite/catalog.d.ts.map +1 -0
  627. package/lib/typescript/module/sqlite/connection.d.ts +58 -0
  628. package/lib/typescript/module/sqlite/connection.d.ts.map +1 -0
  629. package/lib/typescript/module/sqlite/index-coverage.d.ts +18 -0
  630. package/lib/typescript/module/sqlite/index-coverage.d.ts.map +1 -0
  631. package/lib/typescript/module/sqlite/native.d.ts +48 -0
  632. package/lib/typescript/module/sqlite/native.d.ts.map +1 -0
  633. package/lib/typescript/module/sqlite/row-codec.d.ts +69 -0
  634. package/lib/typescript/module/sqlite/row-codec.d.ts.map +1 -0
  635. package/lib/typescript/module/sqlite/sql-builder.d.ts +34 -0
  636. package/lib/typescript/module/sqlite/sql-builder.d.ts.map +1 -0
  637. package/lib/typescript/module/sqlite/statements.d.ts +26 -0
  638. package/lib/typescript/module/sqlite/statements.d.ts.map +1 -0
  639. package/lib/typescript/module/sqlite/transaction-queue.d.ts +31 -0
  640. package/lib/typescript/module/sqlite/transaction-queue.d.ts.map +1 -0
  641. package/lib/typescript/module/sqlite/transactions.d.ts +26 -0
  642. package/lib/typescript/module/sqlite/transactions.d.ts.map +1 -0
  643. package/lib/typescript/module/sqlite/values.d.ts +13 -0
  644. package/lib/typescript/module/sqlite/values.d.ts.map +1 -0
  645. package/lib/typescript/module/testing/conformance/attachments.d.ts +4 -0
  646. package/lib/typescript/module/testing/conformance/attachments.d.ts.map +1 -0
  647. package/lib/typescript/module/testing/conformance/encryption.d.ts +4 -0
  648. package/lib/typescript/module/testing/conformance/encryption.d.ts.map +1 -0
  649. package/lib/typescript/module/testing/conformance/index.d.ts +58 -0
  650. package/lib/typescript/module/testing/conformance/index.d.ts.map +1 -0
  651. package/lib/typescript/module/testing/conformance/lifecycle.d.ts +4 -0
  652. package/lib/typescript/module/testing/conformance/lifecycle.d.ts.map +1 -0
  653. package/lib/typescript/module/testing/conformance/migrations.d.ts +4 -0
  654. package/lib/typescript/module/testing/conformance/migrations.d.ts.map +1 -0
  655. package/lib/typescript/module/testing/conformance/queries.d.ts +4 -0
  656. package/lib/typescript/module/testing/conformance/queries.d.ts.map +1 -0
  657. package/lib/typescript/module/testing/conformance/records.d.ts +4 -0
  658. package/lib/typescript/module/testing/conformance/records.d.ts.map +1 -0
  659. package/lib/typescript/module/testing/conformance/scopes.d.ts +4 -0
  660. package/lib/typescript/module/testing/conformance/scopes.d.ts.map +1 -0
  661. package/lib/typescript/module/testing/conformance/transactions.d.ts +4 -0
  662. package/lib/typescript/module/testing/conformance/transactions.d.ts.map +1 -0
  663. package/lib/typescript/module/testing/faults.d.ts +13 -0
  664. package/lib/typescript/module/testing/faults.d.ts.map +1 -0
  665. package/lib/typescript/module/testing/index.d.ts +13 -0
  666. package/lib/typescript/module/testing/index.d.ts.map +1 -0
  667. package/lib/typescript/module/testing/memory-adapter/attachments.d.ts +23 -0
  668. package/lib/typescript/module/testing/memory-adapter/attachments.d.ts.map +1 -0
  669. package/lib/typescript/module/testing/memory-adapter/collection.d.ts +19 -0
  670. package/lib/typescript/module/testing/memory-adapter/collection.d.ts.map +1 -0
  671. package/lib/typescript/module/testing/memory-adapter/index.d.ts +22 -0
  672. package/lib/typescript/module/testing/memory-adapter/index.d.ts.map +1 -0
  673. package/lib/typescript/module/testing/memory-adapter/migrations.d.ts +11 -0
  674. package/lib/typescript/module/testing/memory-adapter/migrations.d.ts.map +1 -0
  675. package/lib/typescript/module/testing/memory-adapter/reset.d.ts +23 -0
  676. package/lib/typescript/module/testing/memory-adapter/reset.d.ts.map +1 -0
  677. package/lib/typescript/module/testing/memory-adapter/store.d.ts +54 -0
  678. package/lib/typescript/module/testing/memory-adapter/store.d.ts.map +1 -0
  679. package/package.json +51 -16
  680. package/src/crypto/provider.ts +7 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,142 @@
1
1
  # @chipmobilesdk/rn-local-db
2
2
 
3
+ ## 0.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Every peer range has an upper bound, and no package declares a peer it does not use. ([#21](https://github.com/operationd8979/chip-mobile-sdk/pull/21))
8
+
9
+ A peer range is now a caret, a tilde or an explicit `<`, except for `react` and
10
+ `react-native`: an app brings exactly one of each, so a floor is the only useful thing
11
+ to say about them. Every other peer is a library the app installs beside us, and an
12
+ open `>=` was a promise about versions nobody had run — mmkv 3→4 lost entitlements and
13
+ pending purchases exactly that way.
14
+
15
+ **Four of the new ceilings exclude a version that is already published**, so an app
16
+ that took the open range at its word may now see a peer warning. The new bound is the
17
+ major this release is tested against, which is the thing the old range failed to say:
18
+
19
+ | Peer | Was | Now | Published above the ceiling |
20
+ |---|---|---|---|
21
+ | `react-native-app-auth` (rn-auth) | `>=8` | `^8.0.0` | 9.0.0 |
22
+ | `react-native-keychain` (rn-auth) | `>=10` | `^10.0.0` | 11.0.0 |
23
+ | `@op-engineering/op-sqlite` (rn-local-db) | `>=17.1.0` | `^17.1.0` | 18.x, 19.x |
24
+ | `@react-native-firebase/messaging` (rn-notification) | `>=26.0.0` | `^26.0.0` | 27.x |
25
+
26
+ The others — `react-native-vision-camera` `^5.1.1`, `react-native-svg` `^15.15.0`,
27
+ `react-native-unistyles` `^3.2.0`, `@dr.pogodin/react-native-fs` `^2.39.2`,
28
+ `react-native-quick-crypto` `^1.0.0`, `react-native-notify-kit` `^10.5.0`,
29
+ `react-native-localize` `^3.7.0`, `react-native-mmkv` `^4.0.0` — exclude nothing that
30
+ exists today. rn-payment's mmkv range was already bounded (`>=4.0.0 <5`) and is now
31
+ written as the caret that means the same thing.
32
+
33
+ Peers nothing imports are gone. `rn-theme`, `rn-local-db` and `rn-notification` asked
34
+ for `react` without having a component or a hook between them; `rn-auth`, `rn-ai` and
35
+ `rn-i18n` asked for `react-native` without touching a React Native API (rn-auth reaches
36
+ both native modules through `lazyPeer`, rn-i18n formats on `Intl`); `rn-notification`
37
+ asked for `@react-native-firebase/app`, which messaging declares itself. `rn-ai` no
38
+ longer peers on `@chipmobilesdk/rn-auth` at all — it asks for a `TokenProvider`, a
39
+ two-method interface rn-auth's `auth` satisfies, so an app with its own token source
40
+ installs nothing extra. An app that enables push or signs in through rn-auth installs
41
+ the same packages as before; it is the manifest that stopped overstating.
42
+
43
+ `react-native-localize` is declared optional, which is what the code already did: the
44
+ time-zone reader goes through `lazyPeer` and falls back to `Intl` without it. The
45
+ `peerDependenciesMeta` entries that said `optional: false` are gone — that is npm's
46
+ default, and writing it down only invited the question of which peers were undecided.
47
+
48
+ `npm run check:manifests` now fails on an unbounded peer range, a peer nothing in
49
+ `src/` imports, and a `peerDependenciesMeta` entry for either, so the policy holds
50
+ without anyone remembering it.
51
+
52
+ - Every package now ships built JavaScript with declaration files, instead of asking the
53
+ app to compile its TypeScript. ([#22](https://github.com/operationd8979/chip-mobile-sdk/pull/22))
54
+
55
+ Each tarball carries `lib/commonjs`, `lib/module` and `lib/typescript` (built with
56
+ `react-native-builder-bob`), and `src/` alongside them. What that changes for a
57
+ consumer:
58
+
59
+ - **Nothing to add to `transformIgnorePatterns`.** `require` resolves to the CommonJS
60
+ build, so an app's Jest loads this package without being told to transform it. That
61
+ was the one thing every consuming app had to know about us (DEP-04).
62
+ - **Typechecking reads our `.d.ts`** rather than compiling our source under our
63
+ `tsconfig`. A consumer's stricter — or looser — settings no longer meet our code.
64
+ - **`import` resolves to ESM**, so a bundler can tree-shake what it does not use.
65
+
66
+ No exported name changed, and no subpath moved: `.`, `./testing`, `./push`,
67
+ `./advanced`, `./app-auth`, `./keychain` and rn-core's twelve subpaths resolve exactly
68
+ as before, each now with its own declarations for both module systems. publint and
69
+ `attw --profile node16` pass on all twelve packages, which they could not before.
70
+
71
+ Inside the monorepo nothing changed either, and that is deliberate: every subpath also
72
+ declares a private `chipmobilesdk-source` condition pointing at its TypeScript, and
73
+ Metro, Jest and `tsc` here ask for that condition first. The demo app bundles 371
74
+ modules straight from `packages/*/src`, so editing a package still changes the app with
75
+ no build step, and coverage is still measured on the source. The condition is named for
76
+ this organization rather than using the conventional `source` because third-party
77
+ packages declare that one too — `@dr.pogodin/react-native-fs` does — and asking for it
78
+ pulled their sources into our stricter compile.
79
+
80
+ `npm run build:packages` builds everything, `prepack` rebuilds before any `npm pack`,
81
+ and `lib/` is git-ignored: the published bytes are produced by the release, never
82
+ committed. `npm run check:manifests` now fails a package whose `main`, `module`,
83
+ `types`, `source` condition, `files`, build script or `prepack` do not match this shape.
84
+
85
+ ### Patch Changes
86
+
87
+ - Each package's public API and its weight are now recorded in the repository, so a change
88
+ to either is reviewed rather than discovered. ([#23](https://github.com/operationd8979/chip-mobile-sdk/pull/23))
89
+
90
+ `packages/<pkg>/etc/*.api.md` is an api-extractor report per entrypoint — twenty-seven
91
+ of them, generated from the declarations the package publishes and committed. A renamed
92
+ type, a widened union, one more optional field: all of it shows up in a pull request's
93
+ diff. `npm run check:api` fails when a report is out of date and `npm run api:update`
94
+ rewrites them.
95
+
96
+ A report that moves now needs a **minor or major** changeset for that package.
97
+ `check:changesets` enforces it, because the report is generated from what the package
98
+ publishes, and a patch release that moves the public surface is how a consumer's build
99
+ breaks on `npm update`. A report added for the first time is a baseline, not a change.
100
+ `./testing` deliberately has no report: test doubles are not a surface a release is
101
+ gated on.
102
+
103
+ `npm run check:size` holds every entrypoint to a budget in `.size-limit.json`, measured
104
+ on the ESM build with peers and rn-core treated as external — they are what an app
105
+ installs beside us, not our weight. Each budget started at today's measurement plus five
106
+ per cent, so growth becomes a decision someone makes instead of a drift nobody sees. The
107
+ current figures run from 500 B (`rn-core/lazy`) to 19 kB (rn-notification).
108
+
109
+ No behaviour or API changed in this release; the entry is here so the changelog records
110
+ when the reports and the budgets began.
111
+
112
+ - The crypto footprint is written down, and the device gate for encryption is a checklist
113
+ someone can run. ([#21](https://github.com/operationd8979/chip-mobile-sdk/pull/21))
114
+
115
+ `@noble/hashes` was considered for HKDF and SHA, and declined (DEP-10). It removes no
116
+ dependency — `react-native-quick-crypto` stays for AES-GCM either way, so moving HKDF
117
+ out of it buys nothing at install time — while adding it would give this package a
118
+ second runtime dependency, against the rule that rn-core is the only one. The hashing
119
+ that genuinely had to work without a native module, the scope digest, is already plain
120
+ TypeScript. The README now states which primitive lives where and why, and when to
121
+ revisit.
122
+
123
+ `CipherModule` no longer declares `createHash`. Nothing called it: the scope digest is
124
+ computed in TypeScript precisely so a scope can be resolved by an app that never
125
+ enables encryption and may have no crypto module installed. The port now asks for the
126
+ two things the package actually uses, AES-256-GCM and `hkdfSync`.
127
+
128
+ The README's "Demo and validation" section gained **Device checks for the encrypted
129
+ database**: the steps to run after every op-sqlite or quick-crypto upgrade, with the
130
+ diagnostic each one must produce. It also stops claiming the LocalDB demo screens run
131
+ on the memory adapter — nothing overrides the adapter, so they exercise op-sqlite on
132
+ the device, which is what makes them evidence. Every step was run on a Pixel 3a
133
+ emulator (API 36, release build) before being written down: the four key-provider modes
134
+ answer `opened successfully`, `KEY_INVALID`, `KEY_PROVIDER_FAILED` and `KEY_INVALID`,
135
+ the wrong posture answers `ENCRYPTION_MISMATCH` with the data still readable, and a
136
+ 32 MB artifact writes in 128 chunks.
137
+ - Updated dependencies ([#22](https://github.com/operationd8979/chip-mobile-sdk/pull/22), [#23](https://github.com/operationd8979/chip-mobile-sdk/pull/23)):
138
+ - @chipmobilesdk/rn-core@0.2.0
139
+
3
140
  ## 0.4.0
4
141
 
5
142
  ### Minor Changes
package/README.md CHANGED
@@ -463,6 +463,25 @@ tag per chunk. Encryption and range decryption operate by chunk. A write from
463
463
  `sourcePath` holds one chunk at a time; a write from base64 `content` first
464
464
  decodes the complete input, so its memory grows with the artifact.
465
465
 
466
+ ### Crypto footprint: what is native and what is not
467
+
468
+ | Primitive | Where | Why |
469
+ |---|---|---|
470
+ | SQLCipher (records) | `@op-engineering/op-sqlite`, built with the SQLCipher flag | Page-level encryption of the database file; nothing in JavaScript can do this |
471
+ | AES-256-GCM (artifacts) | `react-native-quick-crypto` | 256 KB chunks of a photo or recording; this is where native speed is the whole point |
472
+ | HKDF-SHA256 (per-artifact subkey) | `react-native-quick-crypto` | One hash per artifact write, in the module AES-GCM already requires |
473
+ | SHA-256 (scope digest) | plain TypeScript, `src/scope/hash.ts` | Runs on **every** scope resolution, including apps that never enable encryption and so may not have a crypto module installed at all |
474
+
475
+ **`@noble/hashes` was considered for HKDF and SHA, and declined** (DEP-10, WS4-08).
476
+ It would not remove a dependency: `react-native-quick-crypto` stays for AES-GCM
477
+ either way, so moving HKDF out of it buys nothing at install time, while adding
478
+ `@noble/hashes` would give this package a second runtime dependency — against the rule
479
+ that rn-core is the only one (`npm run check:manifests` enforces it) — or a vendored
480
+ copy to maintain. The hashing that genuinely had to work without a native module, the
481
+ scope digest, is already plain TypeScript and byte-for-byte equal to Node's
482
+ `createHash('sha256')` under test. Revisit only if quick-crypto stops shipping an
483
+ `hkdfSync`, or if AES-GCM moves out of it.
484
+
466
485
  A key-provider failure while the device is locked is an **expected condition**, not a bug:
467
486
 
468
487
  | Code | Means | Retryable |
@@ -699,9 +718,9 @@ Four are **hard limits** with a typed error. The rest are soft: exceeding them i
699
718
  | Node (tooling) | 22.11+ |
700
719
  | Android | `minSdkVersion` 24, `targetSdkVersion` 36 |
701
720
  | iOS | 15.1+ |
702
- | `@op-engineering/op-sqlite` | >= 17.1.0 |
703
- | `@dr.pogodin/react-native-fs` | >= 2.39.2 |
704
- | `react-native-quick-crypto` | >= 1.0.0 — **optional**, only for encryption. Its own peer `react-native-quick-base64` must also be in the **app's** `dependencies`: autolinking compiles only what the app declares, and without it the first encrypted attachment fails with `'QuickBase64' could not be found` |
721
+ | `@op-engineering/op-sqlite` | `^17.1.0` |
722
+ | `@dr.pogodin/react-native-fs` | `^2.39.2` |
723
+ | `react-native-quick-crypto` | `^1.0.0` — **optional**, only for encryption. Its own peer `react-native-quick-base64` must also be in the **app's** `dependencies`: autolinking compiles only what the app declares, and without it the first encrypted attachment fails with `'QuickBase64' could not be found` |
705
724
 
706
725
  **Storage location**: app-private documents directory, under `chipmobilesdk-localdb/`.
707
726
  **Backup mechanism**: `NSURLIsExcludedFromBackupKey` on iOS; `dataExtractionRules` / `fullBackupContent` on Android.
@@ -733,9 +752,13 @@ Written for the privacy disclosure a consuming app has to make.
733
752
 
734
753
  ## Demo and validation
735
754
 
736
- The demo app exposes ten `src/screens/LocalDb*Screen.tsx` scenarios and uses
737
- the testing entrypoint's memory adapter so the UI can run without native
738
- database setup. Run from the repository root:
755
+ The demo app exposes ten `src/screens/LocalDb*Screen.tsx` scenarios. They run on the
756
+ **real** adapter — op-sqlite on the device — because nothing overrides it; only
757
+ `LocalDbDiagnosticsScreen` reaches for the testing entrypoint, and only for fault
758
+ injection. So the screens are evidence about native behaviour, which is the point of
759
+ the checklist below.
760
+
761
+ Node-side gates, from the repository root:
739
762
 
740
763
  ```bash
741
764
  npm run typecheck --workspace @chipmobilesdk/rn-local-db
@@ -743,5 +766,43 @@ npm run pack:check --workspace @chipmobilesdk/rn-local-db
743
766
  npm run validate
744
767
  ```
745
768
 
746
- Physical-device SQLCipher, backup, corruption, and large-artifact evidence are
747
- separate release gates; the memory demo does not prove those native behaviors.
769
+ ### Device checks for the encrypted database
770
+
771
+ SQLCipher and AES-GCM live in two native modules this package does not control
772
+ (`@op-engineering/op-sqlite`, `react-native-quick-crypto`), and neither is exercised by
773
+ a Jest run. **Run this after every upgrade of either one, and before a release that
774
+ touches encryption** (WS4-08). It takes a few minutes on one device.
775
+
776
+ ```bash
777
+ # A release build: a debug bundle's timings say nothing about chunked AES-GCM.
778
+ npx react-native run-android --mode release # or: adb install -r <apk>
779
+ ```
780
+
781
+ Then, in the app's sidebar:
782
+
783
+ 1. **LocalDB · Encryption** → *Write to both*. The two scopes must disagree: `Guest
784
+ scope encrypted: false` reading back `Stored in the clear`, `Tenant scope encrypted:
785
+ true` reading back `Stored under a key`. If both report `false`, the app is missing
786
+ the SQLCipher build flag — the package answers `ENCRYPTION_UNAVAILABLE` rather than
787
+ writing plaintext, so check the flag before suspecting this package.
788
+ 2. **Key provider** → each of the four modes, each followed by *Open with this key*.
789
+ The expected diagnostics are `opened successfully`, then `KEY_INVALID` (wrong key,
790
+ not retryable), `KEY_PROVIDER_FAILED` (device locked, **retryable**) and
791
+ `KEY_INVALID` again (no key returned — an empty key is an invalid one, not a
792
+ different condition). Then *Open with the wrong posture* → `ENCRYPTION_MISMATCH`,
793
+ and `Data still readable with the correct key: yes`. That last line is the one that
794
+ matters: none of these paths opens, truncates or recreates the database.
795
+ 3. **Large artifacts** → *Write 1 MB*, *8 MB*, *32 MB*. All three must complete. The
796
+ 32 MB run reports `128 chunk(s)`, which is the 256 KB chunking doing its job
797
+ (FR-107a), followed by a 256 KB range read and a reconcile with `0 orphans, 0
798
+ dangling`. The panel reports durations, not memory: watch the device's memory graph
799
+ while it runs, and it must not scale with the file.
800
+ 4. **LocalDB · Attachments** → *Attach a file* (inventory shows `available · 16384
801
+ bytes`), *Read a byte range*, *Escape the managed area* (must be refused, not
802
+ served), then *Reconcile and reclaim* and read the counts.
803
+
804
+ Record the device, the OS version and the two native module versions with the result.
805
+ As of 2026-11, on a Pixel 3a emulator (API 36, release build, op-sqlite 17.1.3,
806
+ quick-crypto 1.1.6): every expectation above held, with the 32 MB write at 4,200 ms and
807
+ the 256 KB range read at 33 ms. Backup/restore and corruption recovery are not covered
808
+ here — corruption needs a deliberately damaged file — and remain separate gates.
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.acquireHandleSlot = acquireHandleSlot;
7
+ Object.defineProperty(exports, "assertArtifactWithinBudget", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _budgets.assertArtifactWithinBudget;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "assertBatchWithinBudget", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _budgets.assertBatchWithinBudget;
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "assertRecordWithinBudget", {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _budgets.assertRecordWithinBudget;
23
+ }
24
+ });
25
+ exports.releaseHandleSlot = releaseHandleSlot;
26
+ exports.resetHandleSlots = resetHandleSlots;
27
+ Object.defineProperty(exports, "serializedSize", {
28
+ enumerable: true,
29
+ get: function () {
30
+ return _budgets.serializedSize;
31
+ }
32
+ });
33
+ var _config = require("../contract/config.js");
34
+ var _errors = require("../contract/errors.js");
35
+ var _errors2 = require("../diagnostics/errors.js");
36
+ var _budgets = require("../query/budgets.js");
37
+ /**
38
+ * Where the FR-088 budgets are actually enforced.
39
+ *
40
+ * The checks live in `query/budgets.ts` so both adapters share them; this
41
+ * module is the adapter-layer entry point, and exists so there is one place
42
+ * to answer "which budgets are hard?" — per-record size, batch size, page
43
+ * size, and artifact size, each with a typed error (FR-088a).
44
+ *
45
+ * The rest are soft by design. Exceeding 100,000 records in a collection is
46
+ * slow, not an error, and refusing the 100,001st write would destroy data an
47
+ * app already holds. Degraded behavior is documented in the README instead.
48
+ */
49
+
50
+ /**
51
+ * Concurrently open handles.
52
+ *
53
+ * Each one holds a native connection and its write-ahead log, so an app that
54
+ * leaks handles runs out of file descriptors rather than slowing down. Eight
55
+ * is generous for the multi-identity case FR-008b describes and low enough
56
+ * that a leak surfaces during development instead of in the field.
57
+ */
58
+ let openHandles = 0;
59
+ function acquireHandleSlot() {
60
+ if (openHandles >= _config.Budgets.MAX_OPEN_HANDLES) {
61
+ (0, _errors2.raise)(_errors.DiagnosticCodes.OPEN_FAILED, {
62
+ message: 'too many database handles are open',
63
+ detail: {
64
+ count: openHandles,
65
+ limit: _config.Budgets.MAX_OPEN_HANDLES
66
+ }
67
+ });
68
+ }
69
+ openHandles += 1;
70
+ }
71
+ function releaseHandleSlot() {
72
+ openHandles = Math.max(0, openHandles - 1);
73
+ }
74
+
75
+ /** Between tests. */
76
+ function resetHandleSlots() {
77
+ openHandles = 0;
78
+ }
79
+ //# sourceMappingURL=budgets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_config","require","_errors","_errors2","_budgets","openHandles","acquireHandleSlot","Budgets","MAX_OPEN_HANDLES","raise","DiagnosticCodes","OPEN_FAILED","message","detail","count","limit","releaseHandleSlot","Math","max","resetHandleSlots"],"sourceRoot":"../../../src","sources":["adapter/budgets.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAII,WAAW,GAAG,CAAC;AAEZ,SAASC,iBAAiBA,CAAA,EAAS;EACzC,IAAID,WAAW,IAAIE,eAAO,CAACC,gBAAgB,EAAE;IAC5C,IAAAC,cAAK,EAACC,uBAAe,CAACC,WAAW,EAAE;MAClCC,OAAO,EAAE,oCAAoC;MAC7CC,MAAM,EAAE;QAAEC,KAAK,EAAET,WAAW;QAAEU,KAAK,EAAER,eAAO,CAACC;MAAiB;IAC/D,CAAC,CAAC;EACH;EACAH,WAAW,IAAI,CAAC;AACjB;AAEO,SAASW,iBAAiBA,CAAA,EAAS;EACzCX,WAAW,GAAGY,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEb,WAAW,GAAG,CAAC,CAAC;AAC3C;;AAEA;AACO,SAASc,gBAAgBA,CAAA,EAAS;EACxCd,WAAW,GAAG,CAAC;AAChB","ignoreList":[]}
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createSqlCollection = createSqlCollection;
7
+ var _errors = require("../contract/errors.js");
8
+ var _errors2 = require("../diagnostics/errors.js");
9
+ var _faults = require("../diagnostics/faults.js");
10
+ var _cursor = require("../query/cursor.js");
11
+ var _paginate = require("../query/paginate.js");
12
+ var _sort = require("../query/sort.js");
13
+ var _validate = require("../query/validate.js");
14
+ var _declare = require("../schema/declare.js");
15
+ var _rowCodec = require("../sqlite/row-codec.js");
16
+ var _sqlBuilder = require("../sqlite/sql-builder.js");
17
+ var _statements = require("../sqlite/statements.js");
18
+ var _budgets = require("./budgets.js");
19
+ /**
20
+ * Collection operations against a SQLite executor.
21
+ *
22
+ * The executor is either the connection or the transaction in flight on it,
23
+ * which is what gives read-your-own-writes for free (FR-043): a read inside a
24
+ * transaction runs on the same handle that made the writes, so it sees them,
25
+ * and a reader outside does not.
26
+ *
27
+ * Every semantic decision that could differ between the two adapters —
28
+ * which operators mean what, how nulls sort, what a cursor points at — is
29
+ * delegated to `query/`. This file decides only how to say it in SQL.
30
+ */
31
+
32
+ const LIVE = 'deleted_at IS NULL';
33
+ function notFound(collection, id) {
34
+ (0, _errors2.raise)(_errors.DiagnosticCodes.RECORD_NOT_FOUND, {
35
+ message: 'record not found',
36
+ detail: {
37
+ collection,
38
+ recordId: id
39
+ }
40
+ });
41
+ }
42
+ function createSqlCollection(context) {
43
+ const {
44
+ schema
45
+ } = context;
46
+ const table = `"${(0, _declare.collectionTable)(schema.name)}"`;
47
+ const selectColumns = ['id', 'payload', 'created_at', 'updated_at', 'deleted_at'].join(', ');
48
+ async function rowById(id, includeDeleted = false) {
49
+ const result = await context.executor().execute(`SELECT ${selectColumns} FROM ${table} WHERE id = ?${includeDeleted ? '' : ` AND ${LIVE}`}`, [id]);
50
+ return result.rows[0];
51
+ }
52
+ return {
53
+ async insert(record) {
54
+ context.assertUsable();
55
+ (0, _faults.throwIfFaulted)('write');
56
+ const payload = (0, _budgets.assertRecordWithinBudget)(schema.name, record.data);
57
+
58
+ // One statement: a row that is already there is left untouched and
59
+ // reported, instead of a SELECT first and an INSERT after (LDB-08). The
60
+ // failure stays boring — nothing was written, and no engine error
61
+ // surfaces from inside a transaction.
62
+ const result = await context.executor().execute(...(0, _statements.insertStatement)(schema, record.id, record.data, context.now(), payload, 'ignore'));
63
+ if (result.rowsAffected === 0) {
64
+ (0, _errors2.raise)(_errors.DiagnosticCodes.RECORD_CONFLICT, {
65
+ message: 'record already exists',
66
+ detail: {
67
+ collection: schema.name,
68
+ recordId: record.id
69
+ }
70
+ });
71
+ }
72
+ return {
73
+ operation: 'created',
74
+ id: record.id
75
+ };
76
+ },
77
+ async update(id, record) {
78
+ context.assertUsable();
79
+ (0, _faults.throwIfFaulted)('write');
80
+ const payload = (0, _budgets.assertRecordWithinBudget)(schema.name, record.data);
81
+ const result = await context.executor().execute(...(0, _statements.updateStatement)(schema, id, record.data, context.now(), payload, {
82
+ liveOnly: true
83
+ }));
84
+ if (result.rowsAffected === 0) {
85
+ // Creating the record instead would be a silent write to an id
86
+ // the caller believed already existed.
87
+ notFound(schema.name, id);
88
+ }
89
+ return {
90
+ operation: 'updated',
91
+ id
92
+ };
93
+ },
94
+ async upsert(record) {
95
+ context.assertUsable();
96
+ (0, _faults.throwIfFaulted)('write');
97
+ const payload = (0, _budgets.assertRecordWithinBudget)(schema.name, record.data);
98
+ const now = context.now();
99
+
100
+ // An upsert over a soft-deleted record brings it back: the caller
101
+ // asked for this id to hold this data.
102
+ const update = async () => {
103
+ const result = await context.executor().execute(...(0, _statements.updateStatement)(schema, record.id, record.data, now, payload, {
104
+ restore: true
105
+ }));
106
+ return result.rowsAffected > 0;
107
+ };
108
+
109
+ // The update is tried first: one round-trip for a record that exists,
110
+ // with no SELECT before it (LDB-08).
111
+ if (await update()) {
112
+ return {
113
+ operation: 'updated',
114
+ id: record.id
115
+ };
116
+ }
117
+ const inserted = await context.executor().execute(...(0, _statements.insertStatement)(schema, record.id, record.data, now, payload, 'ignore'));
118
+ if (inserted.rowsAffected > 0) {
119
+ return {
120
+ operation: 'created',
121
+ id: record.id
122
+ };
123
+ }
124
+ // Another write created the row between the two statements.
125
+ await update();
126
+ return {
127
+ operation: 'updated',
128
+ id: record.id
129
+ };
130
+ },
131
+ async get(id) {
132
+ context.assertUsable();
133
+ (0, _faults.throwIfFaulted)('read');
134
+ const row = await rowById(id);
135
+ if (!row) {
136
+ notFound(schema.name, id);
137
+ }
138
+ return (0, _rowCodec.decodeRow)(schema, row);
139
+ },
140
+ async find(id) {
141
+ context.assertUsable();
142
+ (0, _faults.throwIfFaulted)('read');
143
+ const row = await rowById(id);
144
+ return row ? (0, _rowCodec.decodeRow)(schema, row) : null;
145
+ },
146
+ async delete(id) {
147
+ context.assertUsable();
148
+ (0, _faults.throwIfFaulted)('write');
149
+ const result = await context.executor().execute(`DELETE FROM ${table} WHERE id = ?`, [id]);
150
+ if (result.rowsAffected === 0) {
151
+ notFound(schema.name, id);
152
+ }
153
+ return {
154
+ operation: 'deleted',
155
+ id
156
+ };
157
+ },
158
+ async softDelete(id) {
159
+ context.assertUsable();
160
+ (0, _faults.throwIfFaulted)('write');
161
+ if (!(0, _declare.hasSoftDelete)(schema)) {
162
+ (0, _errors2.raise)(_errors.DiagnosticCodes.CONFIG_INVALID, {
163
+ message: 'collection does not declare soft delete',
164
+ detail: {
165
+ collection: schema.name
166
+ }
167
+ });
168
+ }
169
+ const result = await context.executor().execute(`UPDATE ${table} SET deleted_at = ? WHERE id = ? AND ${LIVE}`, [context.now(), id]);
170
+ if (result.rowsAffected === 0) {
171
+ notFound(schema.name, id);
172
+ }
173
+ return {
174
+ operation: 'deleted',
175
+ id
176
+ };
177
+ },
178
+ async restore(id) {
179
+ context.assertUsable();
180
+ (0, _faults.throwIfFaulted)('write');
181
+ if (!(0, _declare.hasSoftDelete)(schema)) {
182
+ (0, _errors2.raise)(_errors.DiagnosticCodes.CONFIG_INVALID, {
183
+ message: 'collection does not declare soft delete',
184
+ detail: {
185
+ collection: schema.name
186
+ }
187
+ });
188
+ }
189
+ const result = await context.executor().execute(`UPDATE ${table} SET deleted_at = NULL WHERE id = ? AND deleted_at IS NOT NULL`, [id]);
190
+ if (result.rowsAffected === 0) {
191
+ notFound(schema.name, id);
192
+ }
193
+ return {
194
+ operation: 'restored',
195
+ id
196
+ };
197
+ },
198
+ async list(query) {
199
+ context.assertUsable();
200
+ (0, _faults.throwIfFaulted)('read');
201
+ (0, _validate.validateQuery)(schema, query);
202
+ const sort = (0, _sort.withStableTiebreaker)(query?.sort);
203
+ const size = (0, _paginate.resolvePageSize)(query?.page);
204
+ const filter = (0, _sqlBuilder.buildFilter)(query?.filter);
205
+ const clauses = [filter.sql];
206
+ const params = [...filter.params];
207
+ if (query?.includeSoftDeleted !== true) {
208
+ clauses.push(LIVE);
209
+ }
210
+ if (query?.page?.cursor) {
211
+ const keyset = (0, _sqlBuilder.buildKeysetPredicate)(sort, (0, _cursor.decodeCursor)(query.page.cursor, sort));
212
+ clauses.push(keyset.sql);
213
+ params.push(...keyset.params);
214
+ }
215
+
216
+ // One row past the page, so `hasMore` is answered without a second
217
+ // query that could disagree with the first under a concurrent write.
218
+ const limit = (0, _paginate.fetchLimitFor)(size);
219
+ const result = await context.executor().execute(`SELECT ${selectColumns} FROM ${table} WHERE ${clauses.join(' AND ')} ORDER BY ${(0, _sqlBuilder.buildOrderBy)(sort)} LIMIT ?`, [...params, limit]);
220
+ return (0, _paginate.buildPage)(result.rows.map(row => (0, _rowCodec.decodeRow)(schema, row)), sort, size);
221
+ },
222
+ async count(filter) {
223
+ context.assertUsable();
224
+ (0, _faults.throwIfFaulted)('read');
225
+ if (filter) {
226
+ (0, _validate.validateQuery)(schema, {
227
+ filter
228
+ });
229
+ }
230
+ const built = (0, _sqlBuilder.buildFilter)(filter);
231
+ const result = await context.executor().execute(`SELECT count(*) AS total FROM ${table} WHERE ${built.sql} AND ${LIVE}`, built.params);
232
+ return Number(result.rows[0]?.total ?? 0);
233
+ }
234
+ };
235
+ }
236
+ //# sourceMappingURL=collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_errors","require","_errors2","_faults","_cursor","_paginate","_sort","_validate","_declare","_rowCodec","_sqlBuilder","_statements","_budgets","LIVE","notFound","collection","id","raise","DiagnosticCodes","RECORD_NOT_FOUND","message","detail","recordId","createSqlCollection","context","schema","table","collectionTable","name","selectColumns","join","rowById","includeDeleted","result","executor","execute","rows","insert","record","assertUsable","throwIfFaulted","payload","assertRecordWithinBudget","data","insertStatement","now","rowsAffected","RECORD_CONFLICT","operation","update","updateStatement","liveOnly","upsert","restore","inserted","get","row","decodeRow","find","delete","softDelete","hasSoftDelete","CONFIG_INVALID","list","query","validateQuery","sort","withStableTiebreaker","size","resolvePageSize","page","filter","buildFilter","clauses","sql","params","includeSoftDeleted","push","cursor","keyset","buildKeysetPredicate","decodeCursor","limit","fetchLimitFor","buildOrderBy","buildPage","map","count","built","Number","total"],"sourceRoot":"../../../src","sources":["adapter/collection.ts"],"mappings":"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","ignoreList":[]}