@farukada/aws-langgraph-dynamodb-ts 1.0.0-rc.2 → 1.0.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 (409) hide show
  1. package/README.md +390 -193
  2. package/dist/{backfill → cjs/backfill}/backfill.d.ts +15 -12
  3. package/dist/cjs/backfill/backfill.js +177 -0
  4. package/dist/{checkpointer → cjs/checkpointer}/actions/delete-thread.d.ts +1 -1
  5. package/dist/cjs/checkpointer/actions/delete-thread.js +26 -0
  6. package/dist/{checkpointer → cjs/checkpointer}/actions/get-tuple.d.ts +4 -3
  7. package/dist/cjs/checkpointer/actions/get-tuple.js +22 -0
  8. package/dist/{checkpointer → cjs/checkpointer}/actions/list.d.ts +7 -4
  9. package/dist/cjs/checkpointer/actions/list.js +70 -0
  10. package/dist/{checkpointer → cjs/checkpointer}/actions/put-writes.d.ts +8 -6
  11. package/dist/cjs/checkpointer/actions/put-writes.js +21 -0
  12. package/dist/{checkpointer → cjs/checkpointer}/actions/put.d.ts +21 -15
  13. package/dist/cjs/checkpointer/actions/put.js +79 -0
  14. package/dist/{checkpointer → cjs/checkpointer}/internal/delta-history.d.ts +38 -26
  15. package/dist/cjs/checkpointer/internal/delta-history.js +131 -0
  16. package/dist/{checkpointer → cjs/checkpointer}/internal/listing.d.ts +4 -4
  17. package/dist/cjs/checkpointer/internal/listing.js +104 -0
  18. package/dist/{checkpointer → cjs/checkpointer}/internal/parse.d.ts +51 -15
  19. package/dist/cjs/checkpointer/internal/parse.js +184 -0
  20. package/dist/{checkpointer → cjs/checkpointer}/internal/pending-writes.d.ts +64 -25
  21. package/dist/cjs/checkpointer/internal/pending-writes.js +241 -0
  22. package/dist/{checkpointer → cjs/checkpointer}/internal/read.d.ts +15 -10
  23. package/dist/cjs/checkpointer/internal/read.js +132 -0
  24. package/dist/{checkpointer → cjs/checkpointer}/internal/rows.d.ts +94 -21
  25. package/dist/cjs/checkpointer/internal/rows.js +356 -0
  26. package/dist/{checkpointer → cjs/checkpointer}/internal/setup.d.ts +13 -20
  27. package/dist/cjs/checkpointer/internal/setup.js +25 -0
  28. package/dist/{checkpointer → cjs/checkpointer}/saver.d.ts +72 -36
  29. package/dist/cjs/checkpointer/saver.js +56 -0
  30. package/dist/{checkpointer → cjs/checkpointer}/types.d.ts +1 -1
  31. package/dist/cjs/checkpointer/types.js +2 -0
  32. package/dist/{factory → cjs/factory}/factory.d.ts +25 -20
  33. package/dist/cjs/factory/factory.js +137 -0
  34. package/dist/{factory → cjs/factory}/types.d.ts +12 -12
  35. package/dist/cjs/factory/types.js +2 -0
  36. package/dist/{history → cjs/history}/actions/add-messages.d.ts +18 -10
  37. package/dist/cjs/history/actions/add-messages.js +17 -0
  38. package/dist/{history → cjs/history}/actions/clear.d.ts +1 -1
  39. package/dist/cjs/history/actions/clear.js +29 -0
  40. package/dist/{history → cjs/history}/actions/get-messages.d.ts +11 -9
  41. package/dist/cjs/history/actions/get-messages.js +58 -0
  42. package/dist/{history → cjs/history}/actions/list-sessions.d.ts +3 -3
  43. package/dist/cjs/history/actions/list-sessions.js +67 -0
  44. package/dist/{history → cjs/history}/actions/reconcile-count.d.ts +13 -9
  45. package/dist/cjs/history/actions/reconcile-count.js +8 -0
  46. package/dist/{history → cjs/history}/chat-message-history.d.ts +62 -30
  47. package/dist/cjs/history/chat-message-history.js +61 -0
  48. package/dist/{history → cjs/history}/internal/append.d.ts +64 -32
  49. package/dist/cjs/history/internal/append.js +267 -0
  50. package/dist/{history → cjs/history}/internal/message-read.d.ts +3 -3
  51. package/dist/cjs/history/internal/message-read.js +93 -0
  52. package/dist/{history → cjs/history}/internal/parse.d.ts +2 -2
  53. package/dist/cjs/history/internal/parse.js +113 -0
  54. package/dist/{history → cjs/history}/internal/rows.d.ts +11 -10
  55. package/dist/cjs/history/internal/rows.js +96 -0
  56. package/dist/{history → cjs/history}/internal/session.d.ts +41 -22
  57. package/dist/cjs/history/internal/session.js +296 -0
  58. package/dist/{history → cjs/history}/internal/setup.d.ts +2 -2
  59. package/dist/cjs/history/internal/setup.js +60 -0
  60. package/dist/{history → cjs/history}/session-adapter.d.ts +0 -6
  61. package/dist/cjs/history/session-adapter.js +38 -0
  62. package/dist/{history → cjs/history}/types.d.ts +18 -15
  63. package/dist/cjs/history/types.js +2 -0
  64. package/dist/{index.d.ts → cjs/index.d.ts} +27 -27
  65. package/dist/cjs/index.js +25 -0
  66. package/dist/cjs/package.json +1 -0
  67. package/dist/{shared → cjs/shared}/adapter.d.ts +27 -16
  68. package/dist/cjs/shared/adapter.js +70 -0
  69. package/dist/cjs/shared/clock.js +14 -0
  70. package/dist/{shared → cjs/shared}/codec/codec.d.ts +37 -20
  71. package/dist/cjs/shared/codec/codec.js +162 -0
  72. package/dist/{shared → cjs/shared}/codec/compression.d.ts +9 -4
  73. package/dist/cjs/shared/codec/compression.js +45 -0
  74. package/dist/cjs/shared/codec/json-serde.js +58 -0
  75. package/dist/{shared → cjs/shared}/codec/s3/client-types.d.ts +2 -1
  76. package/dist/cjs/shared/codec/s3/client-types.js +6 -0
  77. package/dist/{shared → cjs/shared}/codec/s3/client.d.ts +25 -7
  78. package/dist/cjs/shared/codec/s3/client.js +78 -0
  79. package/dist/{shared → cjs/shared}/codec/s3/config.d.ts +12 -7
  80. package/dist/cjs/shared/codec/s3/config.js +92 -0
  81. package/dist/{shared → cjs/shared}/codec/s3/lifecycle.d.ts +71 -17
  82. package/dist/cjs/shared/codec/s3/lifecycle.js +223 -0
  83. package/dist/{shared → cjs/shared}/codec/s3/offloader.d.ts +42 -29
  84. package/dist/cjs/shared/codec/s3/offloader.js +289 -0
  85. package/dist/cjs/shared/concurrency.js +31 -0
  86. package/dist/{shared → cjs/shared}/dynamodb/abort.d.ts +2 -2
  87. package/dist/cjs/shared/dynamodb/abort.js +16 -0
  88. package/dist/{shared → cjs/shared}/dynamodb/batch-write.d.ts +2 -2
  89. package/dist/cjs/shared/dynamodb/batch-write.js +79 -0
  90. package/dist/cjs/shared/dynamodb/cancellation.js +37 -0
  91. package/dist/{shared → cjs/shared}/dynamodb/client.d.ts +24 -22
  92. package/dist/cjs/shared/dynamodb/client.js +40 -0
  93. package/dist/{shared → cjs/shared}/dynamodb/idempotent-write.d.ts +64 -19
  94. package/dist/cjs/shared/dynamodb/idempotent-write.js +173 -0
  95. package/dist/{shared → cjs/shared}/dynamodb/paginate.d.ts +2 -2
  96. package/dist/cjs/shared/dynamodb/paginate.js +90 -0
  97. package/dist/{shared → cjs/shared}/dynamodb/partition-delete.d.ts +6 -6
  98. package/dist/cjs/shared/dynamodb/partition-delete.js +177 -0
  99. package/dist/{shared → cjs/shared}/dynamodb/recency-index.d.ts +27 -15
  100. package/dist/cjs/shared/dynamodb/recency-index.js +146 -0
  101. package/dist/{shared → cjs/shared}/dynamodb/retry.d.ts +37 -6
  102. package/dist/cjs/shared/dynamodb/retry.js +193 -0
  103. package/dist/cjs/shared/dynamodb/row-size.d.ts +33 -0
  104. package/dist/cjs/shared/dynamodb/row-size.js +30 -0
  105. package/dist/{shared → cjs/shared}/dynamodb/table-schema.d.ts +27 -18
  106. package/dist/cjs/shared/dynamodb/table-schema.js +52 -0
  107. package/dist/{shared → cjs/shared}/errors/base-error.d.ts +42 -7
  108. package/dist/cjs/shared/errors/base-error.js +73 -0
  109. package/dist/{shared → cjs/shared}/errors/boundary.d.ts +29 -14
  110. package/dist/cjs/shared/errors/boundary.js +61 -0
  111. package/dist/cjs/shared/errors/classify.d.ts +206 -0
  112. package/dist/cjs/shared/errors/classify.js +232 -0
  113. package/dist/{shared → cjs/shared}/errors/error-code.d.ts +17 -10
  114. package/dist/cjs/shared/errors/error-code.js +27 -0
  115. package/dist/{shared → cjs/shared}/errors/errors.d.ts +75 -9
  116. package/dist/cjs/shared/errors/errors.js +123 -0
  117. package/dist/cjs/shared/logging/logger.js +30 -0
  118. package/dist/{shared → cjs/shared}/logging/redaction.d.ts +8 -4
  119. package/dist/cjs/shared/logging/redaction.js +145 -0
  120. package/dist/{shared → cjs/shared}/logging/secret-patterns.d.ts +30 -7
  121. package/dist/cjs/shared/logging/secret-patterns.js +93 -0
  122. package/dist/cjs/shared/logging/truncate.js +31 -0
  123. package/dist/{shared → cjs/shared}/options.d.ts +27 -11
  124. package/dist/cjs/shared/options.js +2 -0
  125. package/dist/cjs/shared/ulid.js +83 -0
  126. package/dist/{shared → cjs/shared}/validation/collaborators.d.ts +21 -2
  127. package/dist/cjs/shared/validation/collaborators.js +79 -0
  128. package/dist/{shared → cjs/shared}/validation/option-shape.d.ts +7 -5
  129. package/dist/cjs/shared/validation/option-shape.js +31 -0
  130. package/dist/{shared → cjs/shared}/validation/options.d.ts +4 -4
  131. package/dist/cjs/shared/validation/options.js +166 -0
  132. package/dist/cjs/shared/validation/primitives.js +114 -0
  133. package/dist/{shared → cjs/shared}/validation/ttl.d.ts +26 -9
  134. package/dist/cjs/shared/validation/ttl.js +52 -0
  135. package/dist/{store → cjs/store}/actions/list-namespaces.d.ts +5 -5
  136. package/dist/cjs/store/actions/list-namespaces.js +92 -0
  137. package/dist/{store → cjs/store}/actions/put.d.ts +11 -4
  138. package/dist/cjs/store/actions/put.js +49 -0
  139. package/dist/{store → cjs/store}/actions/reconcile-vector-index.d.ts +5 -5
  140. package/dist/cjs/store/actions/reconcile-vector-index.js +13 -0
  141. package/dist/{store → cjs/store}/actions/search.d.ts +2 -2
  142. package/dist/cjs/store/actions/search.js +26 -0
  143. package/dist/cjs/store/internal/batch-plan.d.ts +56 -0
  144. package/dist/cjs/store/internal/batch-plan.js +32 -0
  145. package/dist/{store → cjs/store}/internal/filter.d.ts +3 -3
  146. package/dist/cjs/store/internal/filter.js +64 -0
  147. package/dist/cjs/store/internal/get-item.d.ts +77 -0
  148. package/dist/cjs/store/internal/get-item.js +58 -0
  149. package/dist/{store → cjs/store}/internal/item-write.d.ts +72 -32
  150. package/dist/cjs/store/internal/item-write.js +181 -0
  151. package/dist/{store → cjs/store}/internal/parse.d.ts +15 -10
  152. package/dist/cjs/store/internal/parse.js +180 -0
  153. package/dist/{store → cjs/store}/internal/rows.d.ts +38 -34
  154. package/dist/cjs/store/internal/rows.js +166 -0
  155. package/dist/{store → cjs/store}/internal/semantic-search.d.ts +2 -2
  156. package/dist/cjs/store/internal/semantic-search.js +211 -0
  157. package/dist/{store → cjs/store}/internal/setup.d.ts +10 -15
  158. package/dist/cjs/store/internal/setup.js +103 -0
  159. package/dist/{store → cjs/store}/internal/table-search.d.ts +5 -5
  160. package/dist/cjs/store/internal/table-search.js +123 -0
  161. package/dist/{store → cjs/store}/internal/vector-index.d.ts +26 -15
  162. package/dist/cjs/store/internal/vector-index.js +269 -0
  163. package/dist/{store → cjs/store}/store.d.ts +82 -39
  164. package/dist/cjs/store/store.js +97 -0
  165. package/dist/{store → cjs/store}/types.d.ts +25 -10
  166. package/dist/cjs/store/types.js +2 -0
  167. package/dist/cjs/store/vector-backend.js +4 -0
  168. package/dist/esm/backfill/backfill.d.ts +171 -0
  169. package/dist/esm/backfill/backfill.js +170 -0
  170. package/dist/{checkpointer/actions/delete-thread.js → esm/checkpointer/actions/delete-thread.d.ts} +4 -26
  171. package/dist/esm/checkpointer/actions/delete-thread.js +23 -0
  172. package/dist/{checkpointer/actions/get-tuple.js → esm/checkpointer/actions/get-tuple.d.ts} +7 -24
  173. package/dist/esm/checkpointer/actions/get-tuple.js +19 -0
  174. package/dist/esm/checkpointer/actions/list.d.ts +55 -0
  175. package/dist/esm/checkpointer/actions/list.js +67 -0
  176. package/dist/{checkpointer/actions/put-writes.js → esm/checkpointer/actions/put-writes.d.ts} +10 -37
  177. package/dist/esm/checkpointer/actions/put-writes.js +18 -0
  178. package/dist/esm/checkpointer/actions/put.d.ts +95 -0
  179. package/dist/esm/checkpointer/actions/put.js +75 -0
  180. package/dist/esm/checkpointer/internal/delta-history.d.ts +124 -0
  181. package/dist/esm/checkpointer/internal/delta-history.js +126 -0
  182. package/dist/{checkpointer/internal/listing.js → esm/checkpointer/internal/listing.d.ts} +22 -118
  183. package/dist/esm/checkpointer/internal/listing.js +95 -0
  184. package/dist/esm/checkpointer/internal/parse.d.ts +298 -0
  185. package/dist/esm/checkpointer/internal/parse.js +169 -0
  186. package/dist/esm/checkpointer/internal/pending-writes.d.ts +314 -0
  187. package/dist/esm/checkpointer/internal/pending-writes.js +229 -0
  188. package/dist/esm/checkpointer/internal/read.d.ts +135 -0
  189. package/dist/esm/checkpointer/internal/read.js +125 -0
  190. package/dist/esm/checkpointer/internal/rows.d.ts +644 -0
  191. package/dist/esm/checkpointer/internal/rows.js +323 -0
  192. package/dist/esm/checkpointer/internal/setup.d.ts +47 -0
  193. package/dist/esm/checkpointer/internal/setup.js +21 -0
  194. package/dist/{checkpointer/saver.js → esm/checkpointer/saver.d.ts} +84 -87
  195. package/dist/esm/checkpointer/saver.js +52 -0
  196. package/dist/esm/checkpointer/types.d.ts +51 -0
  197. package/dist/esm/checkpointer/types.js +1 -0
  198. package/dist/esm/factory/factory.d.ts +154 -0
  199. package/dist/esm/factory/factory.js +133 -0
  200. package/dist/esm/factory/types.d.ts +76 -0
  201. package/dist/esm/factory/types.js +1 -0
  202. package/dist/{history/actions/add-messages.js → esm/history/actions/add-messages.d.ts} +20 -26
  203. package/dist/esm/history/actions/add-messages.js +14 -0
  204. package/dist/{history/actions/clear.js → esm/history/actions/clear.d.ts} +4 -35
  205. package/dist/esm/history/actions/clear.js +26 -0
  206. package/dist/esm/history/actions/get-messages.d.ts +60 -0
  207. package/dist/esm/history/actions/get-messages.js +55 -0
  208. package/dist/esm/history/actions/list-sessions.d.ts +55 -0
  209. package/dist/esm/history/actions/list-sessions.js +64 -0
  210. package/dist/{history/actions/reconcile-count.js → esm/history/actions/reconcile-count.d.ts} +14 -16
  211. package/dist/esm/history/actions/reconcile-count.js +5 -0
  212. package/dist/{history/chat-message-history.js → esm/history/chat-message-history.d.ts} +76 -87
  213. package/dist/esm/history/chat-message-history.js +57 -0
  214. package/dist/esm/history/internal/append.d.ts +244 -0
  215. package/dist/esm/history/internal/append.js +259 -0
  216. package/dist/esm/history/internal/message-read.d.ts +84 -0
  217. package/dist/esm/history/internal/message-read.js +89 -0
  218. package/dist/esm/history/internal/parse.d.ts +153 -0
  219. package/dist/esm/history/internal/parse.js +105 -0
  220. package/dist/{history/internal/rows.js → esm/history/internal/rows.d.ts} +58 -112
  221. package/dist/esm/history/internal/rows.js +83 -0
  222. package/dist/esm/history/internal/session.d.ts +350 -0
  223. package/dist/esm/history/internal/session.js +285 -0
  224. package/dist/esm/history/internal/setup.d.ts +64 -0
  225. package/dist/esm/history/internal/setup.js +56 -0
  226. package/dist/{history/session-adapter.js → esm/history/session-adapter.d.ts} +25 -39
  227. package/dist/esm/history/session-adapter.js +34 -0
  228. package/dist/esm/history/types.d.ts +102 -0
  229. package/dist/esm/history/types.js +1 -0
  230. package/dist/esm/index.d.ts +53 -0
  231. package/dist/esm/index.js +10 -0
  232. package/dist/esm/shared/adapter.d.ts +146 -0
  233. package/dist/esm/shared/adapter.js +65 -0
  234. package/dist/{shared/clock.js → esm/shared/clock.d.ts} +3 -14
  235. package/dist/esm/shared/clock.js +9 -0
  236. package/dist/esm/shared/codec/codec.d.ts +336 -0
  237. package/dist/esm/shared/codec/codec.js +150 -0
  238. package/dist/esm/shared/codec/compression.d.ts +66 -0
  239. package/dist/esm/shared/codec/compression.js +40 -0
  240. package/dist/esm/shared/codec/json-serde.d.ts +80 -0
  241. package/dist/esm/shared/codec/json-serde.js +54 -0
  242. package/dist/esm/shared/codec/s3/client-types.d.ts +54 -0
  243. package/dist/esm/shared/codec/s3/client-types.js +3 -0
  244. package/dist/esm/shared/codec/s3/client.d.ts +63 -0
  245. package/dist/esm/shared/codec/s3/client.js +40 -0
  246. package/dist/{shared/codec/s3/config.js → esm/shared/codec/s3/config.d.ts} +45 -93
  247. package/dist/esm/shared/codec/s3/config.js +79 -0
  248. package/dist/esm/shared/codec/s3/lifecycle.d.ts +220 -0
  249. package/dist/esm/shared/codec/s3/lifecycle.js +214 -0
  250. package/dist/esm/shared/codec/s3/offloader.d.ts +428 -0
  251. package/dist/esm/shared/codec/s3/offloader.js +278 -0
  252. package/dist/{shared/concurrency.js → esm/shared/concurrency.d.ts} +2 -37
  253. package/dist/esm/shared/concurrency.js +27 -0
  254. package/dist/{shared/dynamodb/abort.js → esm/shared/dynamodb/abort.d.ts} +4 -16
  255. package/dist/esm/shared/dynamodb/abort.js +12 -0
  256. package/dist/esm/shared/dynamodb/batch-write.d.ts +86 -0
  257. package/dist/esm/shared/dynamodb/batch-write.js +74 -0
  258. package/dist/{shared/dynamodb/cancellation.js → esm/shared/dynamodb/cancellation.d.ts} +25 -53
  259. package/dist/esm/shared/dynamodb/cancellation.js +30 -0
  260. package/dist/{shared/dynamodb/client.js → esm/shared/dynamodb/client.d.ts} +74 -64
  261. package/dist/esm/shared/dynamodb/client.js +35 -0
  262. package/dist/{shared/dynamodb/idempotent-write.js → esm/shared/dynamodb/idempotent-write.d.ts} +172 -169
  263. package/dist/esm/shared/dynamodb/idempotent-write.js +153 -0
  264. package/dist/esm/shared/dynamodb/paginate.d.ts +111 -0
  265. package/dist/esm/shared/dynamodb/paginate.js +84 -0
  266. package/dist/esm/shared/dynamodb/partition-delete.d.ts +204 -0
  267. package/dist/esm/shared/dynamodb/partition-delete.js +171 -0
  268. package/dist/esm/shared/dynamodb/recency-index.d.ts +243 -0
  269. package/dist/esm/shared/dynamodb/recency-index.js +136 -0
  270. package/dist/esm/shared/dynamodb/retry.d.ts +317 -0
  271. package/dist/esm/shared/dynamodb/retry.js +180 -0
  272. package/dist/esm/shared/dynamodb/row-size.d.ts +33 -0
  273. package/dist/esm/shared/dynamodb/row-size.js +26 -0
  274. package/dist/{shared/dynamodb/table-schema.js → esm/shared/dynamodb/table-schema.d.ts} +57 -67
  275. package/dist/esm/shared/dynamodb/table-schema.js +43 -0
  276. package/dist/esm/shared/errors/base-error.d.ts +231 -0
  277. package/dist/esm/shared/errors/base-error.js +64 -0
  278. package/dist/esm/shared/errors/boundary.d.ts +86 -0
  279. package/dist/esm/shared/errors/boundary.js +54 -0
  280. package/dist/esm/shared/errors/classify.d.ts +206 -0
  281. package/dist/esm/shared/errors/classify.js +220 -0
  282. package/dist/{shared/errors/error-code.js → esm/shared/errors/error-code.d.ts} +39 -43
  283. package/dist/esm/shared/errors/error-code.js +24 -0
  284. package/dist/{shared/errors/errors.js → esm/shared/errors/errors.d.ts} +92 -98
  285. package/dist/esm/shared/errors/errors.js +110 -0
  286. package/dist/{shared/logging/logger.js → esm/shared/logging/logger.d.ts} +22 -52
  287. package/dist/esm/shared/logging/logger.js +25 -0
  288. package/dist/esm/shared/logging/redaction.d.ts +123 -0
  289. package/dist/esm/shared/logging/redaction.js +140 -0
  290. package/dist/{shared/logging/secret-patterns.js → esm/shared/logging/secret-patterns.d.ts} +46 -87
  291. package/dist/esm/shared/logging/secret-patterns.js +83 -0
  292. package/dist/{shared/logging/truncate.js → esm/shared/logging/truncate.d.ts} +6 -40
  293. package/dist/esm/shared/logging/truncate.js +25 -0
  294. package/dist/esm/shared/options.d.ts +100 -0
  295. package/dist/esm/shared/options.js +1 -0
  296. package/dist/{shared/ulid.js → esm/shared/ulid.d.ts} +4 -84
  297. package/dist/esm/shared/ulid.js +77 -0
  298. package/dist/{shared/validation/collaborators.js → esm/shared/validation/collaborators.d.ts} +37 -65
  299. package/dist/esm/shared/validation/collaborators.js +70 -0
  300. package/dist/{shared/validation/option-shape.js → esm/shared/validation/option-shape.d.ts} +14 -36
  301. package/dist/esm/shared/validation/option-shape.js +24 -0
  302. package/dist/esm/shared/validation/options.d.ts +145 -0
  303. package/dist/esm/shared/validation/options.js +156 -0
  304. package/dist/{shared/validation/primitives.js → esm/shared/validation/primitives.d.ts} +30 -125
  305. package/dist/esm/shared/validation/primitives.js +100 -0
  306. package/dist/esm/shared/validation/ttl.d.ts +94 -0
  307. package/dist/esm/shared/validation/ttl.js +46 -0
  308. package/dist/esm/store/actions/list-namespaces.d.ts +79 -0
  309. package/dist/esm/store/actions/list-namespaces.js +86 -0
  310. package/dist/esm/store/actions/put.d.ts +43 -0
  311. package/dist/esm/store/actions/put.js +46 -0
  312. package/dist/{store/actions/reconcile-vector-index.js → esm/store/actions/reconcile-vector-index.d.ts} +8 -16
  313. package/dist/esm/store/actions/reconcile-vector-index.js +10 -0
  314. package/dist/esm/store/actions/search.d.ts +38 -0
  315. package/dist/esm/store/actions/search.js +23 -0
  316. package/dist/esm/store/internal/batch-plan.d.ts +56 -0
  317. package/dist/esm/store/internal/batch-plan.js +28 -0
  318. package/dist/esm/store/internal/filter.d.ts +43 -0
  319. package/dist/esm/store/internal/filter.js +60 -0
  320. package/dist/esm/store/internal/get-item.d.ts +77 -0
  321. package/dist/esm/store/internal/get-item.js +54 -0
  322. package/dist/esm/store/internal/item-write.d.ts +270 -0
  323. package/dist/esm/store/internal/item-write.js +173 -0
  324. package/dist/esm/store/internal/parse.d.ts +230 -0
  325. package/dist/esm/store/internal/parse.js +169 -0
  326. package/dist/{store/internal/rows.js → esm/store/internal/rows.d.ts} +111 -199
  327. package/dist/esm/store/internal/rows.js +147 -0
  328. package/dist/esm/store/internal/semantic-search.d.ts +168 -0
  329. package/dist/esm/store/internal/semantic-search.js +200 -0
  330. package/dist/esm/store/internal/setup.d.ts +96 -0
  331. package/dist/esm/store/internal/setup.js +98 -0
  332. package/dist/esm/store/internal/table-search.d.ts +100 -0
  333. package/dist/esm/store/internal/table-search.js +119 -0
  334. package/dist/esm/store/internal/vector-index.d.ts +258 -0
  335. package/dist/esm/store/internal/vector-index.js +256 -0
  336. package/dist/{store/store.js → esm/store/store.d.ts} +99 -133
  337. package/dist/esm/store/store.js +93 -0
  338. package/dist/esm/store/types.d.ts +111 -0
  339. package/dist/esm/store/types.js +1 -0
  340. package/dist/esm/store/vector-backend.d.ts +104 -0
  341. package/dist/esm/store/vector-backend.js +1 -0
  342. package/package.json +50 -44
  343. package/dist/backfill/backfill.js +0 -393
  344. package/dist/checkpointer/actions/list.js +0 -142
  345. package/dist/checkpointer/actions/put.js +0 -195
  346. package/dist/checkpointer/internal/delta-history.js +0 -252
  347. package/dist/checkpointer/internal/parse.js +0 -372
  348. package/dist/checkpointer/internal/pending-writes.js +0 -588
  349. package/dist/checkpointer/internal/read.js +0 -264
  350. package/dist/checkpointer/internal/rows.js +0 -834
  351. package/dist/checkpointer/internal/setup.js +0 -72
  352. package/dist/checkpointer/types.js +0 -12
  353. package/dist/factory/factory.js +0 -266
  354. package/dist/factory/types.js +0 -10
  355. package/dist/history/actions/get-messages.js +0 -141
  356. package/dist/history/actions/list-sessions.js +0 -156
  357. package/dist/history/internal/append.js +0 -500
  358. package/dist/history/internal/message-read.js +0 -204
  359. package/dist/history/internal/parse.js +0 -252
  360. package/dist/history/internal/session.js +0 -628
  361. package/dist/history/internal/setup.js +0 -106
  362. package/dist/history/types.js +0 -12
  363. package/dist/index.js +0 -51
  364. package/dist/shared/adapter.js +0 -143
  365. package/dist/shared/codec/codec.js +0 -441
  366. package/dist/shared/codec/compression.js +0 -89
  367. package/dist/shared/codec/json-serde.js +0 -191
  368. package/dist/shared/codec/s3/client-types.js +0 -26
  369. package/dist/shared/codec/s3/client.js +0 -97
  370. package/dist/shared/codec/s3/lifecycle.js +0 -355
  371. package/dist/shared/codec/s3/offloader.js +0 -658
  372. package/dist/shared/dynamodb/batch-write.js +0 -173
  373. package/dist/shared/dynamodb/paginate.js +0 -188
  374. package/dist/shared/dynamodb/partition-delete.js +0 -340
  375. package/dist/shared/dynamodb/recency-index.js +0 -377
  376. package/dist/shared/dynamodb/retry.js +0 -463
  377. package/dist/shared/errors/base-error.js +0 -174
  378. package/dist/shared/errors/boundary.js +0 -143
  379. package/dist/shared/errors/classify.d.ts +0 -97
  380. package/dist/shared/errors/classify.js +0 -257
  381. package/dist/shared/logging/redaction.js +0 -316
  382. package/dist/shared/options.js +0 -11
  383. package/dist/shared/validation/options.js +0 -328
  384. package/dist/shared/validation/ttl.js +0 -132
  385. package/dist/store/actions/list-namespaces.js +0 -197
  386. package/dist/store/actions/put.js +0 -78
  387. package/dist/store/actions/search.js +0 -66
  388. package/dist/store/internal/batch-plan.d.ts +0 -26
  389. package/dist/store/internal/batch-plan.js +0 -109
  390. package/dist/store/internal/filter.js +0 -137
  391. package/dist/store/internal/get-item.d.ts +0 -45
  392. package/dist/store/internal/get-item.js +0 -115
  393. package/dist/store/internal/item-write.js +0 -463
  394. package/dist/store/internal/parse.js +0 -350
  395. package/dist/store/internal/semantic-search.js +0 -389
  396. package/dist/store/internal/setup.js +0 -223
  397. package/dist/store/internal/table-search.js +0 -213
  398. package/dist/store/internal/vector-index.js +0 -546
  399. package/dist/store/types.js +0 -15
  400. package/dist/store/vector-backend.js +0 -17
  401. /package/dist/{shared → cjs/shared}/clock.d.ts +0 -0
  402. /package/dist/{shared → cjs/shared}/codec/json-serde.d.ts +0 -0
  403. /package/dist/{shared → cjs/shared}/concurrency.d.ts +0 -0
  404. /package/dist/{shared → cjs/shared}/dynamodb/cancellation.d.ts +0 -0
  405. /package/dist/{shared → cjs/shared}/logging/logger.d.ts +0 -0
  406. /package/dist/{shared → cjs/shared}/logging/truncate.d.ts +0 -0
  407. /package/dist/{shared → cjs/shared}/ulid.d.ts +0 -0
  408. /package/dist/{shared → cjs/shared}/validation/primitives.d.ts +0 -0
  409. /package/dist/{store → cjs/store}/vector-backend.d.ts +0 -0
@@ -1,137 +0,0 @@
1
- "use strict";
2
- /**
3
- * Hides the store's filter grammar.
4
- *
5
- * Which operators a search filter accepts, how each compares a stored field —
6
- * ordered comparisons only between like-typed values, an absent field matching
7
- * nothing — and whether an item passes a search's optional filter are decided
8
- * here, the same way whichever search path runs.
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.matchesStoreFilter = matchesStoreFilter;
12
- exports.passesFilter = passesFilter;
13
- const node_util_1 = require("node:util");
14
- /**
15
- * Three-way order for a like-typed pair, or `undefined` when the pair is
16
- * *unordered*. `NaN` compares `false` against everything including itself, so a
17
- * bare `===`/`>` ternary silently reports it as "less than" — which let a
18
- * stored `NaN` satisfy `$lt`/`$lte` against any number, contradicting
19
- * {@link compareOrdered}'s own contract.
20
- */
21
- function orderOf(actual, expected) {
22
- if (actual < expected)
23
- return -1;
24
- if (actual > expected)
25
- return 1;
26
- return actual === expected ? 0 : undefined;
27
- }
28
- /** Apply `test` to a resolved order; an unordered pair never matches. */
29
- function testOrder(order, test) {
30
- return order !== undefined && test(order);
31
- }
32
- /**
33
- * Ordered comparison over like-typed values only: numbers compare numerically,
34
- * strings lexicographically, and a mismatched or unordered pair never matches.
35
- *
36
- * Deliberately stricter than both native comparison and what upstream does.
37
- * Native `>` coerces, so a stored `'10'` would satisfy `{ $gt: 5 }` — inclusion
38
- * decided by JS coercion rather than by the stored type. Upstream instead
39
- * reduces both sides with `Number()`, which makes two ISO-8601 date strings
40
- * `NaN` and every comparison between them false. Comparing like types
41
- * directly is well-defined in both cases.
42
- */
43
- function compareOrdered(actual, expected, test) {
44
- if (typeof actual === 'number' && typeof expected === 'number') {
45
- return testOrder(orderOf(actual, expected), test);
46
- }
47
- if (typeof actual === 'string' && typeof expected === 'string') {
48
- return testOrder(orderOf(actual, expected), test);
49
- }
50
- return false;
51
- }
52
- const COMPARATORS = {
53
- $eq: (actual, expected) => (0, node_util_1.isDeepStrictEqual)(actual, expected),
54
- $ne: (actual, expected) => !(0, node_util_1.isDeepStrictEqual)(actual, expected),
55
- $gt: (actual, expected) => compareOrdered(actual, expected, (order) => order > 0),
56
- $gte: (actual, expected) => compareOrdered(actual, expected, (order) => order >= 0),
57
- $lt: (actual, expected) => compareOrdered(actual, expected, (order) => order < 0),
58
- $lte: (actual, expected) => compareOrdered(actual, expected, (order) => order <= 0),
59
- $in: (actual, expected) => Array.isArray(expected)
60
- ? expected.some((candidate) => (0, node_util_1.isDeepStrictEqual)(actual, candidate))
61
- : false,
62
- $nin: (actual, expected) => Array.isArray(expected)
63
- ? !expected.some((candidate) => (0, node_util_1.isDeepStrictEqual)(actual, candidate))
64
- : true,
65
- };
66
- /**
67
- * True when every key is one of the exact known operator names, which matches
68
- * the reference store's own detection (`@langchain/langgraph-checkpoint@1.1.5`
69
- * `dist/store/utils.js:61`): a stored value that merely has `$`-prefixed keys —
70
- * a JSON Schema document, say — is compared as a literal instead of misread as
71
- * a filter.
72
- *
73
- * An empty condition qualifies, and therefore imposes no constraint: `every`
74
- * over no operators is true, exactly as it is upstream, so `{ field: {} }`
75
- * matches every item — including one that does not hold the field at all, for
76
- * which there is likewise no operator to fail. Requiring at least one key
77
- * inverted that answer and made the same filter match nothing.
78
- *
79
- * Arrays are excluded where the reference does not. Upstream an empty array
80
- * reaches `Object.keys([]).every(...)` and is likewise vacuously true, so `[]`
81
- * as a condition matches everything there; treating a stored array as a literal
82
- * to compare is the answer a caller means, and the difference is recorded
83
- * rather than copied.
84
- */
85
- function isOperatorObject(condition) {
86
- return (typeof condition === 'object' &&
87
- condition !== null &&
88
- !Array.isArray(condition) &&
89
- Object.keys(condition).every((key) => Object.prototype.hasOwnProperty.call(COMPARATORS, key)));
90
- }
91
- function matchesCondition(actual, condition) {
92
- if (!isOperatorObject(condition))
93
- return (0, node_util_1.isDeepStrictEqual)(actual, condition);
94
- return Object.entries(condition).every(([operator, expected]) => COMPARATORS[operator](actual, expected));
95
- }
96
- /** The value `item` holds at `field`, or undefined when it holds no such own property. */
97
- function ownField(item, field) {
98
- if (item === null || typeof item !== 'object')
99
- return undefined;
100
- return Object.hasOwn(item, field) ? item[field] : undefined;
101
- }
102
- /**
103
- * Whether `value` satisfies every field condition in `filter`.
104
- *
105
- * Accepts: `value` — a stored item's decoded value. Declared as a record, but a
106
- * row holds whatever its writer stored, including `null` and a scalar; such a
107
- * value has no own properties and so satisfies no condition. `filter` — a plain
108
- * value per field is exact match, an operator object (`{ $gt: 4 }`) applies
109
- * comparisons, and `{}` constrains nothing.
110
- *
111
- * Returns: whether every condition holds.
112
- *
113
- * Throws: nothing. `search` walks every candidate row, so one row whose value
114
- * is not an object must not fail the search.
115
- *
116
- * Guarantees: own properties only — `value['toString']` would otherwise resolve
117
- * up the prototype chain and be compared as if it were stored data.
118
- */
119
- function matchesStoreFilter(value, filter) {
120
- return Object.entries(filter).every(([field, condition]) => matchesCondition(ownField(value, field), condition));
121
- }
122
- /**
123
- * Whether `item` satisfies a search's optional metadata filter.
124
- *
125
- * Accepts: `filter` — a parsed search's filter; absent passes every item.
126
- * `item.value` — whatever the item's writer stored; a value that is not
127
- * an object satisfies no condition (see `matchesStoreFilter`).
128
- *
129
- * Returns: whether the item belongs in the result.
130
- *
131
- * Throws: nothing, so one unusual row cannot fail a search over many.
132
- */
133
- function passesFilter(item, filter) {
134
- if (!filter)
135
- return true;
136
- return matchesStoreFilter(item.value, filter);
137
- }
@@ -1,45 +0,0 @@
1
- /**
2
- * Hides what a single read counts as absent, and how it outlives an overwrite.
3
- *
4
- * A get reads its row strongly consistently and answers `null` alike for a
5
- * missing row, an expired one and a row this adapter does not own. When the
6
- * object an offloaded row names is deleted between the row read and the
7
- * download, one re-read settles whether the item was replaced, removed or
8
- * truly lost. A caller gets an item or `null` and never sees the race.
9
- */
10
- import type { Item } from '@langchain/langgraph-checkpoint';
11
- import type { StoreAddress } from './parse';
12
- import type { StoreContext } from './setup';
13
- /**
14
- * Retrieve a single item by namespace and key (strongly consistent), or null.
15
- *
16
- * An offloaded item can lose a race with a concurrent overwrite: between the
17
- * row read and the S3 download the writer commits a new descriptor and deletes
18
- * the object this read was about to fetch. That surfaces as `NoSuchKey`, and
19
- * one strongly-consistent re-read settles it — the row now points at the new
20
- * object (return that), is gone (null), or still points at the same missing
21
- * object (a genuine loss, rethrown). A row the overwrite left with no
22
- * descriptor at all is a replacement like any other: it is decoded, and refused
23
- * by its own coded error. Any other download failure propagates.
24
- *
25
- * Accepts: `address` — parsed; no check is repeated here. `signal` — aborts
26
- * the reads.
27
- *
28
- * Returns: the item, or `null` for one that does not exist, has expired, or
29
- * whose key holds a row this adapter does not own — which includes a row whose
30
- * `createdAt` or `updatedAt` is not the string this package writes there, since
31
- * an item is reported with both. The answers are one on purpose: a caller
32
- * cannot act on the difference, and reporting a foreign row would leak that a
33
- * shared table holds one.
34
- *
35
- * Throws: `VALIDATION` naming — for a row whose descriptor is not one —
36
- * `descriptor`; `FORMAT_UNSUPPORTED` for
37
- * a row, or a payload, written by a newer version, which is *not* reported as
38
- * absent — hiding an item that exists is worse than failing; `PAYLOAD_CORRUPT`
39
- * or the download's own error for a payload that cannot be read; `ABORTED`
40
- * when the signal fires.
41
- *
42
- * Guarantees: strongly consistent — an item just written is always seen, and
43
- * the ttl is honoured here rather than waited for.
44
- */
45
- export declare function getItem(context: StoreContext, address: StoreAddress, signal?: AbortSignal): Promise<Item | null>;
@@ -1,115 +0,0 @@
1
- "use strict";
2
- /**
3
- * Hides what a single read counts as absent, and how it outlives an overwrite.
4
- *
5
- * A get reads its row strongly consistently and answers `null` alike for a
6
- * missing row, an expired one and a row this adapter does not own. When the
7
- * object an offloaded row names is deleted between the row read and the
8
- * download, one re-read settles whether the item was replaced, removed or
9
- * truly lost. A caller gets an item or `null` and never sees the race.
10
- */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getItem = getItem;
13
- const clock_1 = require("../../shared/clock");
14
- const codec_1 = require("../../shared/codec/codec");
15
- const retry_1 = require("../../shared/dynamodb/retry");
16
- const table_schema_1 = require("../../shared/dynamodb/table-schema");
17
- const rows_1 = require("./rows");
18
- /**
19
- * Read the row strongly consistently and narrow it rather than cast. A
20
- * foreign row sharing this key has no `namespace`, and one carrying a `value`
21
- * PayloadDescriptor in the same shape a store item uses (a checkpointer WRITE
22
- * row) would otherwise decode cleanly and be handed back as the caller's own
23
- * value. The narrow is the whole-row one, so a row with no `createdAt` or
24
- * `updatedAt` is refused here rather than decoded into an item whose
25
- * timestamps are `Invalid Date`.
26
- */
27
- async function readRow(context, namespace, key, signal) {
28
- const result = await (0, retry_1.withDynamoDBRetry)((request) => context.client.get({
29
- TableName: context.tableName,
30
- Key: (0, rows_1.itemRowKey)({ namespace, key }),
31
- ConsistentRead: true,
32
- }, request), (0, retry_1.retryFor)(context, signal));
33
- if (!result.Item)
34
- return undefined;
35
- const record = (0, rows_1.parseWholeStoreRow)(result.Item);
36
- if (!record) {
37
- context.logger.warn('store.get: ignored a row that is not a store item', {
38
- partitionKey: (0, rows_1.partitionKey)(namespace),
39
- sortKey: (0, rows_1.sortKey)(namespace, key),
40
- });
41
- return undefined;
42
- }
43
- // A row past its ttl is absent to every reader, however long DynamoDB's sweep lags.
44
- return (0, table_schema_1.isExpiredRow)(record, (0, clock_1.nowSeconds)()) ? undefined : record;
45
- }
46
- /**
47
- * True when both records point at the same offloaded object.
48
- *
49
- * Only `read` is known to hold a descriptor: it is the row whose download just
50
- * failed. `reread` is whatever the overwrite this recovery exists for left
51
- * behind, which can be a `null` where the descriptor belongs, so it is tested
52
- * for presence first. A row pointing at nothing is not pointing at the object
53
- * this read lost, so it is decoded like any other replacement and answered with
54
- * the coded error that names the descriptor — not with a property read that
55
- * would replace the download's own failure with a bare `TypeError`.
56
- */
57
- function sameObject(read, reread) {
58
- const fresh = reread.value;
59
- if (!fresh)
60
- return false;
61
- return (read.value.location === codec_1.PayloadLocation.S3 &&
62
- fresh.location === codec_1.PayloadLocation.S3 &&
63
- read.value.s3Key === fresh.s3Key);
64
- }
65
- /**
66
- * Retrieve a single item by namespace and key (strongly consistent), or null.
67
- *
68
- * An offloaded item can lose a race with a concurrent overwrite: between the
69
- * row read and the S3 download the writer commits a new descriptor and deletes
70
- * the object this read was about to fetch. That surfaces as `NoSuchKey`, and
71
- * one strongly-consistent re-read settles it — the row now points at the new
72
- * object (return that), is gone (null), or still points at the same missing
73
- * object (a genuine loss, rethrown). A row the overwrite left with no
74
- * descriptor at all is a replacement like any other: it is decoded, and refused
75
- * by its own coded error. Any other download failure propagates.
76
- *
77
- * Accepts: `address` — parsed; no check is repeated here. `signal` — aborts
78
- * the reads.
79
- *
80
- * Returns: the item, or `null` for one that does not exist, has expired, or
81
- * whose key holds a row this adapter does not own — which includes a row whose
82
- * `createdAt` or `updatedAt` is not the string this package writes there, since
83
- * an item is reported with both. The answers are one on purpose: a caller
84
- * cannot act on the difference, and reporting a foreign row would leak that a
85
- * shared table holds one.
86
- *
87
- * Throws: `VALIDATION` naming — for a row whose descriptor is not one —
88
- * `descriptor`; `FORMAT_UNSUPPORTED` for
89
- * a row, or a payload, written by a newer version, which is *not* reported as
90
- * absent — hiding an item that exists is worse than failing; `PAYLOAD_CORRUPT`
91
- * or the download's own error for a payload that cannot be read; `ABORTED`
92
- * when the signal fires.
93
- *
94
- * Guarantees: strongly consistent — an item just written is always seen, and
95
- * the ttl is honoured here rather than waited for.
96
- */
97
- async function getItem(context, address, signal) {
98
- const { namespace, key } = address;
99
- const record = await readRow(context, namespace, key, signal);
100
- if (!record)
101
- return null;
102
- try {
103
- return await (0, rows_1.readStoreItem)(context, record, signal);
104
- }
105
- catch (error) {
106
- if (!(0, codec_1.isMissingObjectError)(error))
107
- throw error;
108
- const fresh = await readRow(context, namespace, key, signal);
109
- if (!fresh)
110
- return null;
111
- if (sameObject(record, fresh))
112
- throw error;
113
- return (0, rows_1.readStoreItem)(context, fresh, signal);
114
- }
115
- }