@farukada/aws-langgraph-dynamodb-ts 1.0.0-rc.1 → 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 (608) hide show
  1. package/README.md +1820 -290
  2. package/dist/cjs/backfill/backfill.d.ts +171 -0
  3. package/dist/cjs/backfill/backfill.js +177 -0
  4. package/dist/cjs/checkpointer/actions/delete-thread.d.ts +50 -0
  5. package/dist/cjs/checkpointer/actions/delete-thread.js +26 -0
  6. package/dist/cjs/checkpointer/actions/get-tuple.d.ts +36 -0
  7. package/dist/cjs/checkpointer/actions/get-tuple.js +22 -0
  8. package/dist/cjs/checkpointer/actions/list.d.ts +55 -0
  9. package/dist/cjs/checkpointer/actions/list.js +70 -0
  10. package/dist/cjs/checkpointer/actions/put-writes.d.ts +49 -0
  11. package/dist/cjs/checkpointer/actions/put-writes.js +21 -0
  12. package/dist/cjs/checkpointer/actions/put.d.ts +95 -0
  13. package/dist/cjs/checkpointer/actions/put.js +79 -0
  14. package/dist/cjs/checkpointer/internal/delta-history.d.ts +124 -0
  15. package/dist/cjs/checkpointer/internal/delta-history.js +131 -0
  16. package/dist/cjs/checkpointer/internal/listing.d.ts +149 -0
  17. package/dist/cjs/checkpointer/internal/listing.js +104 -0
  18. package/dist/cjs/checkpointer/internal/parse.d.ts +298 -0
  19. package/dist/cjs/checkpointer/internal/parse.js +184 -0
  20. package/dist/cjs/checkpointer/internal/pending-writes.d.ts +314 -0
  21. package/dist/cjs/checkpointer/internal/pending-writes.js +241 -0
  22. package/dist/cjs/checkpointer/internal/read.d.ts +135 -0
  23. package/dist/cjs/checkpointer/internal/read.js +132 -0
  24. package/dist/cjs/checkpointer/internal/rows.d.ts +644 -0
  25. package/dist/cjs/checkpointer/internal/rows.js +356 -0
  26. package/dist/cjs/checkpointer/internal/setup.d.ts +47 -0
  27. package/dist/cjs/checkpointer/internal/setup.js +25 -0
  28. package/dist/cjs/checkpointer/saver.d.ts +306 -0
  29. package/dist/cjs/checkpointer/saver.js +56 -0
  30. package/dist/cjs/checkpointer/types.d.ts +51 -0
  31. package/dist/cjs/factory/factory.d.ts +154 -0
  32. package/dist/cjs/factory/factory.js +137 -0
  33. package/dist/{factory → cjs/factory}/types.d.ts +33 -14
  34. package/dist/cjs/history/actions/add-messages.d.ts +51 -0
  35. package/dist/cjs/history/actions/add-messages.js +17 -0
  36. package/dist/cjs/history/actions/clear.d.ts +52 -0
  37. package/dist/cjs/history/actions/clear.js +29 -0
  38. package/dist/cjs/history/actions/get-messages.d.ts +60 -0
  39. package/dist/cjs/history/actions/get-messages.js +58 -0
  40. package/dist/cjs/history/actions/list-sessions.d.ts +55 -0
  41. package/dist/cjs/history/actions/list-sessions.js +67 -0
  42. package/dist/cjs/history/actions/reconcile-count.d.ts +49 -0
  43. package/dist/cjs/history/actions/reconcile-count.js +8 -0
  44. package/dist/cjs/history/chat-message-history.d.ts +267 -0
  45. package/dist/cjs/history/chat-message-history.js +61 -0
  46. package/dist/cjs/history/internal/append.d.ts +244 -0
  47. package/dist/cjs/history/internal/append.js +267 -0
  48. package/dist/cjs/history/internal/message-read.d.ts +84 -0
  49. package/dist/cjs/history/internal/message-read.js +93 -0
  50. package/dist/cjs/history/internal/parse.d.ts +153 -0
  51. package/dist/cjs/history/internal/parse.js +113 -0
  52. package/dist/cjs/history/internal/rows.d.ts +196 -0
  53. package/dist/cjs/history/internal/rows.js +96 -0
  54. package/dist/cjs/history/internal/session.d.ts +350 -0
  55. package/dist/cjs/history/internal/session.js +296 -0
  56. package/dist/cjs/history/internal/setup.d.ts +64 -0
  57. package/dist/cjs/history/internal/setup.js +60 -0
  58. package/dist/cjs/history/session-adapter.d.ts +112 -0
  59. package/dist/cjs/history/session-adapter.js +38 -0
  60. package/dist/cjs/history/types.d.ts +102 -0
  61. package/dist/cjs/index.d.ts +53 -0
  62. package/dist/cjs/index.js +25 -0
  63. package/dist/cjs/package.json +1 -0
  64. package/dist/cjs/shared/adapter.d.ts +146 -0
  65. package/dist/cjs/shared/adapter.js +70 -0
  66. package/dist/cjs/shared/clock.d.ts +52 -0
  67. package/dist/cjs/shared/clock.js +14 -0
  68. package/dist/cjs/shared/codec/codec.d.ts +336 -0
  69. package/dist/cjs/shared/codec/codec.js +162 -0
  70. package/dist/cjs/shared/codec/compression.d.ts +66 -0
  71. package/dist/cjs/shared/codec/compression.js +45 -0
  72. package/dist/cjs/shared/codec/json-serde.d.ts +80 -0
  73. package/dist/cjs/shared/codec/json-serde.js +58 -0
  74. package/dist/{shared → cjs/shared}/codec/s3/client-types.d.ts +22 -2
  75. package/dist/{shared → cjs/shared}/codec/s3/client-types.js +0 -1
  76. package/dist/cjs/shared/codec/s3/client.d.ts +63 -0
  77. package/dist/cjs/shared/codec/s3/client.js +78 -0
  78. package/dist/cjs/shared/codec/s3/config.d.ts +260 -0
  79. package/dist/cjs/shared/codec/s3/config.js +92 -0
  80. package/dist/cjs/shared/codec/s3/lifecycle.d.ts +220 -0
  81. package/dist/cjs/shared/codec/s3/lifecycle.js +223 -0
  82. package/dist/cjs/shared/codec/s3/offloader.d.ts +428 -0
  83. package/dist/cjs/shared/codec/s3/offloader.js +289 -0
  84. package/dist/cjs/shared/concurrency.d.ts +43 -0
  85. package/dist/{shared → cjs/shared}/concurrency.js +10 -9
  86. package/dist/cjs/shared/dynamodb/abort.d.ts +47 -0
  87. package/dist/cjs/shared/dynamodb/abort.js +16 -0
  88. package/dist/cjs/shared/dynamodb/batch-write.d.ts +86 -0
  89. package/dist/cjs/shared/dynamodb/batch-write.js +79 -0
  90. package/dist/cjs/shared/dynamodb/cancellation.d.ts +124 -0
  91. package/dist/cjs/shared/dynamodb/cancellation.js +37 -0
  92. package/dist/cjs/shared/dynamodb/client.d.ts +177 -0
  93. package/dist/{shared → cjs/shared}/dynamodb/client.js +12 -14
  94. package/dist/cjs/shared/dynamodb/idempotent-write.d.ts +596 -0
  95. package/dist/cjs/shared/dynamodb/idempotent-write.js +173 -0
  96. package/dist/cjs/shared/dynamodb/paginate.d.ts +111 -0
  97. package/dist/cjs/shared/dynamodb/paginate.js +90 -0
  98. package/dist/cjs/shared/dynamodb/partition-delete.d.ts +204 -0
  99. package/dist/cjs/shared/dynamodb/partition-delete.js +177 -0
  100. package/dist/cjs/shared/dynamodb/recency-index.d.ts +243 -0
  101. package/dist/cjs/shared/dynamodb/recency-index.js +146 -0
  102. package/dist/cjs/shared/dynamodb/retry.d.ts +317 -0
  103. package/dist/cjs/shared/dynamodb/retry.js +193 -0
  104. package/dist/cjs/shared/dynamodb/row-size.d.ts +33 -0
  105. package/dist/cjs/shared/dynamodb/row-size.js +30 -0
  106. package/dist/cjs/shared/dynamodb/table-schema.d.ts +199 -0
  107. package/dist/cjs/shared/dynamodb/table-schema.js +52 -0
  108. package/dist/cjs/shared/errors/base-error.d.ts +231 -0
  109. package/dist/cjs/shared/errors/base-error.js +73 -0
  110. package/dist/cjs/shared/errors/boundary.d.ts +86 -0
  111. package/dist/cjs/shared/errors/boundary.js +61 -0
  112. package/dist/cjs/shared/errors/classify.d.ts +206 -0
  113. package/dist/cjs/shared/errors/classify.js +232 -0
  114. package/dist/cjs/shared/errors/error-code.d.ts +95 -0
  115. package/dist/{shared → cjs/shared}/errors/error-code.js +12 -2
  116. package/dist/cjs/shared/errors/errors.d.ts +233 -0
  117. package/dist/cjs/shared/errors/errors.js +123 -0
  118. package/dist/cjs/shared/logging/logger.d.ts +80 -0
  119. package/dist/cjs/shared/logging/logger.js +30 -0
  120. package/dist/cjs/shared/logging/redaction.d.ts +123 -0
  121. package/dist/cjs/shared/logging/redaction.js +145 -0
  122. package/dist/cjs/shared/logging/secret-patterns.d.ts +227 -0
  123. package/dist/cjs/shared/logging/secret-patterns.js +93 -0
  124. package/dist/cjs/shared/logging/truncate.d.ts +197 -0
  125. package/dist/cjs/shared/logging/truncate.js +31 -0
  126. package/dist/cjs/shared/options.d.ts +100 -0
  127. package/dist/cjs/shared/ulid.d.ts +80 -0
  128. package/dist/{shared → cjs/shared}/ulid.js +7 -21
  129. package/dist/cjs/shared/validation/collaborators.d.ts +160 -0
  130. package/dist/cjs/shared/validation/collaborators.js +79 -0
  131. package/dist/cjs/shared/validation/option-shape.d.ts +91 -0
  132. package/dist/cjs/shared/validation/option-shape.js +31 -0
  133. package/dist/cjs/shared/validation/options.d.ts +145 -0
  134. package/dist/cjs/shared/validation/options.js +166 -0
  135. package/dist/cjs/shared/validation/primitives.d.ts +292 -0
  136. package/dist/cjs/shared/validation/primitives.js +114 -0
  137. package/dist/cjs/shared/validation/ttl.d.ts +94 -0
  138. package/dist/cjs/shared/validation/ttl.js +52 -0
  139. package/dist/cjs/store/actions/list-namespaces.d.ts +79 -0
  140. package/dist/cjs/store/actions/list-namespaces.js +92 -0
  141. package/dist/cjs/store/actions/put.d.ts +43 -0
  142. package/dist/cjs/store/actions/put.js +49 -0
  143. package/dist/cjs/store/actions/reconcile-vector-index.d.ts +38 -0
  144. package/dist/cjs/store/actions/reconcile-vector-index.js +13 -0
  145. package/dist/cjs/store/actions/search.d.ts +38 -0
  146. package/dist/cjs/store/actions/search.js +26 -0
  147. package/dist/cjs/store/internal/batch-plan.d.ts +56 -0
  148. package/dist/cjs/store/internal/batch-plan.js +32 -0
  149. package/dist/cjs/store/internal/filter.d.ts +43 -0
  150. package/dist/cjs/store/internal/filter.js +64 -0
  151. package/dist/cjs/store/internal/get-item.d.ts +77 -0
  152. package/dist/cjs/store/internal/get-item.js +58 -0
  153. package/dist/cjs/store/internal/item-write.d.ts +270 -0
  154. package/dist/cjs/store/internal/item-write.js +181 -0
  155. package/dist/cjs/store/internal/parse.d.ts +230 -0
  156. package/dist/cjs/store/internal/parse.js +180 -0
  157. package/dist/cjs/store/internal/rows.d.ts +359 -0
  158. package/dist/cjs/store/internal/rows.js +166 -0
  159. package/dist/cjs/store/internal/semantic-search.d.ts +168 -0
  160. package/dist/{store/internal/text-path.js → cjs/store/internal/semantic-search.js} +92 -28
  161. package/dist/cjs/store/internal/setup.d.ts +96 -0
  162. package/dist/cjs/store/internal/setup.js +103 -0
  163. package/dist/cjs/store/internal/table-search.d.ts +100 -0
  164. package/dist/cjs/store/internal/table-search.js +123 -0
  165. package/dist/cjs/store/internal/vector-index.d.ts +258 -0
  166. package/dist/cjs/store/internal/vector-index.js +269 -0
  167. package/dist/cjs/store/store.d.ts +329 -0
  168. package/dist/cjs/store/store.js +97 -0
  169. package/dist/cjs/store/types.d.ts +111 -0
  170. package/dist/cjs/store/vector-backend.d.ts +104 -0
  171. package/dist/cjs/store/vector-backend.js +4 -0
  172. package/dist/esm/backfill/backfill.d.ts +171 -0
  173. package/dist/esm/backfill/backfill.js +170 -0
  174. package/dist/esm/checkpointer/actions/delete-thread.d.ts +50 -0
  175. package/dist/esm/checkpointer/actions/delete-thread.js +23 -0
  176. package/dist/esm/checkpointer/actions/get-tuple.d.ts +36 -0
  177. package/dist/esm/checkpointer/actions/get-tuple.js +19 -0
  178. package/dist/esm/checkpointer/actions/list.d.ts +55 -0
  179. package/dist/esm/checkpointer/actions/list.js +67 -0
  180. package/dist/esm/checkpointer/actions/put-writes.d.ts +49 -0
  181. package/dist/esm/checkpointer/actions/put-writes.js +18 -0
  182. package/dist/esm/checkpointer/actions/put.d.ts +95 -0
  183. package/dist/esm/checkpointer/actions/put.js +75 -0
  184. package/dist/esm/checkpointer/internal/delta-history.d.ts +124 -0
  185. package/dist/esm/checkpointer/internal/delta-history.js +126 -0
  186. package/dist/esm/checkpointer/internal/listing.d.ts +149 -0
  187. package/dist/esm/checkpointer/internal/listing.js +95 -0
  188. package/dist/esm/checkpointer/internal/parse.d.ts +298 -0
  189. package/dist/esm/checkpointer/internal/parse.js +169 -0
  190. package/dist/esm/checkpointer/internal/pending-writes.d.ts +314 -0
  191. package/dist/esm/checkpointer/internal/pending-writes.js +229 -0
  192. package/dist/esm/checkpointer/internal/read.d.ts +135 -0
  193. package/dist/esm/checkpointer/internal/read.js +125 -0
  194. package/dist/esm/checkpointer/internal/rows.d.ts +644 -0
  195. package/dist/esm/checkpointer/internal/rows.js +323 -0
  196. package/dist/esm/checkpointer/internal/setup.d.ts +47 -0
  197. package/dist/esm/checkpointer/internal/setup.js +21 -0
  198. package/dist/esm/checkpointer/saver.d.ts +306 -0
  199. package/dist/esm/checkpointer/saver.js +52 -0
  200. package/dist/esm/checkpointer/types.d.ts +51 -0
  201. package/dist/esm/checkpointer/types.js +1 -0
  202. package/dist/esm/factory/factory.d.ts +154 -0
  203. package/dist/esm/factory/factory.js +133 -0
  204. package/dist/esm/factory/types.d.ts +76 -0
  205. package/dist/esm/factory/types.js +1 -0
  206. package/dist/esm/history/actions/add-messages.d.ts +51 -0
  207. package/dist/esm/history/actions/add-messages.js +14 -0
  208. package/dist/esm/history/actions/clear.d.ts +52 -0
  209. package/dist/esm/history/actions/clear.js +26 -0
  210. package/dist/esm/history/actions/get-messages.d.ts +60 -0
  211. package/dist/esm/history/actions/get-messages.js +55 -0
  212. package/dist/esm/history/actions/list-sessions.d.ts +55 -0
  213. package/dist/esm/history/actions/list-sessions.js +64 -0
  214. package/dist/esm/history/actions/reconcile-count.d.ts +49 -0
  215. package/dist/esm/history/actions/reconcile-count.js +5 -0
  216. package/dist/esm/history/chat-message-history.d.ts +267 -0
  217. package/dist/esm/history/chat-message-history.js +57 -0
  218. package/dist/esm/history/internal/append.d.ts +244 -0
  219. package/dist/esm/history/internal/append.js +259 -0
  220. package/dist/esm/history/internal/message-read.d.ts +84 -0
  221. package/dist/esm/history/internal/message-read.js +89 -0
  222. package/dist/esm/history/internal/parse.d.ts +153 -0
  223. package/dist/esm/history/internal/parse.js +105 -0
  224. package/dist/esm/history/internal/rows.d.ts +196 -0
  225. package/dist/esm/history/internal/rows.js +83 -0
  226. package/dist/esm/history/internal/session.d.ts +350 -0
  227. package/dist/esm/history/internal/session.js +285 -0
  228. package/dist/esm/history/internal/setup.d.ts +64 -0
  229. package/dist/esm/history/internal/setup.js +56 -0
  230. package/dist/esm/history/session-adapter.d.ts +112 -0
  231. package/dist/esm/history/session-adapter.js +34 -0
  232. package/dist/esm/history/types.d.ts +102 -0
  233. package/dist/esm/history/types.js +1 -0
  234. package/dist/esm/index.d.ts +53 -0
  235. package/dist/esm/index.js +10 -0
  236. package/dist/esm/shared/adapter.d.ts +146 -0
  237. package/dist/esm/shared/adapter.js +65 -0
  238. package/dist/esm/shared/clock.d.ts +52 -0
  239. package/dist/esm/shared/clock.js +9 -0
  240. package/dist/esm/shared/codec/codec.d.ts +336 -0
  241. package/dist/esm/shared/codec/codec.js +150 -0
  242. package/dist/esm/shared/codec/compression.d.ts +66 -0
  243. package/dist/esm/shared/codec/compression.js +40 -0
  244. package/dist/esm/shared/codec/json-serde.d.ts +80 -0
  245. package/dist/esm/shared/codec/json-serde.js +54 -0
  246. package/dist/esm/shared/codec/s3/client-types.d.ts +54 -0
  247. package/dist/esm/shared/codec/s3/client-types.js +3 -0
  248. package/dist/esm/shared/codec/s3/client.d.ts +63 -0
  249. package/dist/esm/shared/codec/s3/client.js +40 -0
  250. package/dist/esm/shared/codec/s3/config.d.ts +260 -0
  251. package/dist/esm/shared/codec/s3/config.js +79 -0
  252. package/dist/esm/shared/codec/s3/lifecycle.d.ts +220 -0
  253. package/dist/esm/shared/codec/s3/lifecycle.js +214 -0
  254. package/dist/esm/shared/codec/s3/offloader.d.ts +428 -0
  255. package/dist/esm/shared/codec/s3/offloader.js +278 -0
  256. package/dist/esm/shared/concurrency.d.ts +43 -0
  257. package/dist/esm/shared/concurrency.js +27 -0
  258. package/dist/esm/shared/dynamodb/abort.d.ts +47 -0
  259. package/dist/esm/shared/dynamodb/abort.js +12 -0
  260. package/dist/esm/shared/dynamodb/batch-write.d.ts +86 -0
  261. package/dist/esm/shared/dynamodb/batch-write.js +74 -0
  262. package/dist/esm/shared/dynamodb/cancellation.d.ts +124 -0
  263. package/dist/esm/shared/dynamodb/cancellation.js +30 -0
  264. package/dist/esm/shared/dynamodb/client.d.ts +177 -0
  265. package/dist/esm/shared/dynamodb/client.js +35 -0
  266. package/dist/esm/shared/dynamodb/idempotent-write.d.ts +596 -0
  267. package/dist/esm/shared/dynamodb/idempotent-write.js +153 -0
  268. package/dist/esm/shared/dynamodb/paginate.d.ts +111 -0
  269. package/dist/esm/shared/dynamodb/paginate.js +84 -0
  270. package/dist/esm/shared/dynamodb/partition-delete.d.ts +204 -0
  271. package/dist/esm/shared/dynamodb/partition-delete.js +171 -0
  272. package/dist/esm/shared/dynamodb/recency-index.d.ts +243 -0
  273. package/dist/esm/shared/dynamodb/recency-index.js +136 -0
  274. package/dist/esm/shared/dynamodb/retry.d.ts +317 -0
  275. package/dist/esm/shared/dynamodb/retry.js +180 -0
  276. package/dist/esm/shared/dynamodb/row-size.d.ts +33 -0
  277. package/dist/esm/shared/dynamodb/row-size.js +26 -0
  278. package/dist/esm/shared/dynamodb/table-schema.d.ts +199 -0
  279. package/dist/esm/shared/dynamodb/table-schema.js +43 -0
  280. package/dist/esm/shared/errors/base-error.d.ts +231 -0
  281. package/dist/esm/shared/errors/base-error.js +64 -0
  282. package/dist/esm/shared/errors/boundary.d.ts +86 -0
  283. package/dist/esm/shared/errors/boundary.js +54 -0
  284. package/dist/esm/shared/errors/classify.d.ts +206 -0
  285. package/dist/esm/shared/errors/classify.js +220 -0
  286. package/dist/esm/shared/errors/error-code.d.ts +95 -0
  287. package/dist/esm/shared/errors/error-code.js +24 -0
  288. package/dist/esm/shared/errors/errors.d.ts +233 -0
  289. package/dist/esm/shared/errors/errors.js +110 -0
  290. package/dist/esm/shared/logging/logger.d.ts +80 -0
  291. package/dist/esm/shared/logging/logger.js +25 -0
  292. package/dist/esm/shared/logging/redaction.d.ts +123 -0
  293. package/dist/esm/shared/logging/redaction.js +140 -0
  294. package/dist/esm/shared/logging/secret-patterns.d.ts +227 -0
  295. package/dist/esm/shared/logging/secret-patterns.js +83 -0
  296. package/dist/esm/shared/logging/truncate.d.ts +197 -0
  297. package/dist/esm/shared/logging/truncate.js +25 -0
  298. package/dist/esm/shared/options.d.ts +100 -0
  299. package/dist/esm/shared/options.js +1 -0
  300. package/dist/esm/shared/ulid.d.ts +80 -0
  301. package/dist/esm/shared/ulid.js +77 -0
  302. package/dist/esm/shared/validation/collaborators.d.ts +160 -0
  303. package/dist/esm/shared/validation/collaborators.js +70 -0
  304. package/dist/esm/shared/validation/option-shape.d.ts +91 -0
  305. package/dist/esm/shared/validation/option-shape.js +24 -0
  306. package/dist/esm/shared/validation/options.d.ts +145 -0
  307. package/dist/esm/shared/validation/options.js +156 -0
  308. package/dist/esm/shared/validation/primitives.d.ts +292 -0
  309. package/dist/esm/shared/validation/primitives.js +100 -0
  310. package/dist/esm/shared/validation/ttl.d.ts +94 -0
  311. package/dist/esm/shared/validation/ttl.js +46 -0
  312. package/dist/esm/store/actions/list-namespaces.d.ts +79 -0
  313. package/dist/esm/store/actions/list-namespaces.js +86 -0
  314. package/dist/esm/store/actions/put.d.ts +43 -0
  315. package/dist/esm/store/actions/put.js +46 -0
  316. package/dist/esm/store/actions/reconcile-vector-index.d.ts +38 -0
  317. package/dist/esm/store/actions/reconcile-vector-index.js +10 -0
  318. package/dist/esm/store/actions/search.d.ts +38 -0
  319. package/dist/esm/store/actions/search.js +23 -0
  320. package/dist/esm/store/internal/batch-plan.d.ts +56 -0
  321. package/dist/esm/store/internal/batch-plan.js +28 -0
  322. package/dist/esm/store/internal/filter.d.ts +43 -0
  323. package/dist/esm/store/internal/filter.js +60 -0
  324. package/dist/esm/store/internal/get-item.d.ts +77 -0
  325. package/dist/esm/store/internal/get-item.js +54 -0
  326. package/dist/esm/store/internal/item-write.d.ts +270 -0
  327. package/dist/esm/store/internal/item-write.js +173 -0
  328. package/dist/esm/store/internal/parse.d.ts +230 -0
  329. package/dist/esm/store/internal/parse.js +169 -0
  330. package/dist/esm/store/internal/rows.d.ts +359 -0
  331. package/dist/esm/store/internal/rows.js +147 -0
  332. package/dist/esm/store/internal/semantic-search.d.ts +168 -0
  333. package/dist/esm/store/internal/semantic-search.js +200 -0
  334. package/dist/esm/store/internal/setup.d.ts +96 -0
  335. package/dist/esm/store/internal/setup.js +98 -0
  336. package/dist/esm/store/internal/table-search.d.ts +100 -0
  337. package/dist/esm/store/internal/table-search.js +119 -0
  338. package/dist/esm/store/internal/vector-index.d.ts +258 -0
  339. package/dist/esm/store/internal/vector-index.js +256 -0
  340. package/dist/esm/store/store.d.ts +329 -0
  341. package/dist/esm/store/store.js +93 -0
  342. package/dist/esm/store/types.d.ts +111 -0
  343. package/dist/esm/store/types.js +1 -0
  344. package/dist/esm/store/vector-backend.d.ts +104 -0
  345. package/dist/esm/store/vector-backend.js +1 -0
  346. package/package.json +68 -46
  347. package/dist/checkpointer/actions/delete-thread.d.ts +0 -10
  348. package/dist/checkpointer/actions/delete-thread.js +0 -38
  349. package/dist/checkpointer/actions/get-tuple.d.ts +0 -11
  350. package/dist/checkpointer/actions/get-tuple.js +0 -25
  351. package/dist/checkpointer/actions/list.d.ts +0 -20
  352. package/dist/checkpointer/actions/list.js +0 -113
  353. package/dist/checkpointer/actions/put-writes.d.ts +0 -15
  354. package/dist/checkpointer/actions/put-writes.js +0 -62
  355. package/dist/checkpointer/actions/put.d.ts +0 -17
  356. package/dist/checkpointer/actions/put.js +0 -73
  357. package/dist/checkpointer/internal/assemble.d.ts +0 -17
  358. package/dist/checkpointer/internal/assemble.js +0 -38
  359. package/dist/checkpointer/internal/checkpoint-write-verify.d.ts +0 -24
  360. package/dist/checkpointer/internal/checkpoint-write-verify.js +0 -67
  361. package/dist/checkpointer/internal/configurable.d.ts +0 -12
  362. package/dist/checkpointer/internal/configurable.js +0 -24
  363. package/dist/checkpointer/internal/fetch.d.ts +0 -19
  364. package/dist/checkpointer/internal/fetch.js +0 -88
  365. package/dist/checkpointer/internal/filter-match.d.ts +0 -13
  366. package/dist/checkpointer/internal/filter-match.js +0 -15
  367. package/dist/checkpointer/internal/item-reader.d.ts +0 -66
  368. package/dist/checkpointer/internal/item-reader.js +0 -113
  369. package/dist/checkpointer/internal/item-writer.d.ts +0 -35
  370. package/dist/checkpointer/internal/item-writer.js +0 -107
  371. package/dist/checkpointer/internal/keys.d.ts +0 -41
  372. package/dist/checkpointer/internal/keys.js +0 -117
  373. package/dist/checkpointer/internal/list-scope.d.ts +0 -61
  374. package/dist/checkpointer/internal/list-scope.js +0 -108
  375. package/dist/checkpointer/internal/pending-sends.d.ts +0 -13
  376. package/dist/checkpointer/internal/pending-sends.js +0 -29
  377. package/dist/checkpointer/internal/query.d.ts +0 -21
  378. package/dist/checkpointer/internal/query.js +0 -42
  379. package/dist/checkpointer/internal/regular-write.d.ts +0 -28
  380. package/dist/checkpointer/internal/regular-write.js +0 -66
  381. package/dist/checkpointer/internal/setup.d.ts +0 -33
  382. package/dist/checkpointer/internal/setup.js +0 -38
  383. package/dist/checkpointer/internal/special-write-cas.d.ts +0 -29
  384. package/dist/checkpointer/internal/special-write-cas.js +0 -104
  385. package/dist/checkpointer/internal/special-write-cleanup.d.ts +0 -23
  386. package/dist/checkpointer/internal/special-write-cleanup.js +0 -50
  387. package/dist/checkpointer/internal/special-write-verify.d.ts +0 -53
  388. package/dist/checkpointer/internal/special-write-verify.js +0 -80
  389. package/dist/checkpointer/internal/stored-channels.d.ts +0 -31
  390. package/dist/checkpointer/internal/stored-channels.js +0 -70
  391. package/dist/checkpointer/internal/validation.d.ts +0 -18
  392. package/dist/checkpointer/internal/validation.js +0 -40
  393. package/dist/checkpointer/internal/write-guard.d.ts +0 -20
  394. package/dist/checkpointer/internal/write-guard.js +0 -48
  395. package/dist/checkpointer/internal/write-index.d.ts +0 -36
  396. package/dist/checkpointer/internal/write-index.js +0 -41
  397. package/dist/checkpointer/saver.d.ts +0 -70
  398. package/dist/checkpointer/saver.js +0 -105
  399. package/dist/checkpointer/types.d.ts +0 -58
  400. package/dist/factory/factory.d.ts +0 -40
  401. package/dist/factory/factory.js +0 -87
  402. package/dist/history/actions/add-messages.d.ts +0 -15
  403. package/dist/history/actions/add-messages.js +0 -77
  404. package/dist/history/actions/clear.d.ts +0 -10
  405. package/dist/history/actions/clear.js +0 -34
  406. package/dist/history/actions/get-messages.d.ts +0 -17
  407. package/dist/history/actions/get-messages.js +0 -79
  408. package/dist/history/actions/list-sessions.d.ts +0 -13
  409. package/dist/history/actions/list-sessions.js +0 -53
  410. package/dist/history/actions/reconcile-count.d.ts +0 -12
  411. package/dist/history/actions/reconcile-count.js +0 -64
  412. package/dist/history/chat-message-history.d.ts +0 -73
  413. package/dist/history/chat-message-history.js +0 -111
  414. package/dist/history/internal/append-saga.d.ts +0 -25
  415. package/dist/history/internal/append-saga.js +0 -79
  416. package/dist/history/internal/compensation.d.ts +0 -25
  417. package/dist/history/internal/compensation.js +0 -92
  418. package/dist/history/internal/item-mapper.d.ts +0 -9
  419. package/dist/history/internal/item-mapper.js +0 -27
  420. package/dist/history/internal/keys.d.ts +0 -16
  421. package/dist/history/internal/keys.js +0 -48
  422. package/dist/history/internal/message-chunker.d.ts +0 -13
  423. package/dist/history/internal/message-chunker.js +0 -67
  424. package/dist/history/internal/message-transaction.d.ts +0 -25
  425. package/dist/history/internal/message-transaction.js +0 -61
  426. package/dist/history/internal/message-window.d.ts +0 -17
  427. package/dist/history/internal/message-window.js +0 -49
  428. package/dist/history/internal/query.d.ts +0 -23
  429. package/dist/history/internal/query.js +0 -39
  430. package/dist/history/internal/session-count.d.ts +0 -47
  431. package/dist/history/internal/session-count.js +0 -115
  432. package/dist/history/internal/session-title.d.ts +0 -19
  433. package/dist/history/internal/session-title.js +0 -43
  434. package/dist/history/internal/session-update.d.ts +0 -27
  435. package/dist/history/internal/session-update.js +0 -69
  436. package/dist/history/internal/setup.d.ts +0 -31
  437. package/dist/history/internal/setup.js +0 -43
  438. package/dist/history/internal/title-generator.d.ts +0 -12
  439. package/dist/history/internal/title-generator.js +0 -41
  440. package/dist/history/internal/ttl-anchor.d.ts +0 -24
  441. package/dist/history/internal/ttl-anchor.js +0 -38
  442. package/dist/history/internal/validation.d.ts +0 -25
  443. package/dist/history/internal/validation.js +0 -53
  444. package/dist/history/session-adapter.d.ts +0 -29
  445. package/dist/history/session-adapter.js +0 -35
  446. package/dist/history/types.d.ts +0 -69
  447. package/dist/index.d.ts +0 -29
  448. package/dist/index.js +0 -32
  449. package/dist/shared/clock.d.ts +0 -8
  450. package/dist/shared/clock.js +0 -16
  451. package/dist/shared/codec/codec.d.ts +0 -53
  452. package/dist/shared/codec/codec.js +0 -66
  453. package/dist/shared/codec/compression.d.ts +0 -24
  454. package/dist/shared/codec/compression.js +0 -48
  455. package/dist/shared/codec/descriptor-keys.d.ts +0 -12
  456. package/dist/shared/codec/descriptor-keys.js +0 -14
  457. package/dist/shared/codec/encode.d.ts +0 -13
  458. package/dist/shared/codec/encode.js +0 -43
  459. package/dist/shared/codec/json-serde.d.ts +0 -7
  460. package/dist/shared/codec/json-serde.js +0 -17
  461. package/dist/shared/codec/payload-loss.d.ts +0 -12
  462. package/dist/shared/codec/payload-loss.js +0 -38
  463. package/dist/shared/codec/s3/adapter-config.d.ts +0 -13
  464. package/dist/shared/codec/s3/adapter-config.js +0 -22
  465. package/dist/shared/codec/s3/bounded-body.d.ts +0 -14
  466. package/dist/shared/codec/s3/bounded-body.js +0 -47
  467. package/dist/shared/codec/s3/client.d.ts +0 -18
  468. package/dist/shared/codec/s3/client.js +0 -46
  469. package/dist/shared/codec/s3/config.d.ts +0 -51
  470. package/dist/shared/codec/s3/config.js +0 -58
  471. package/dist/shared/codec/s3/delete.d.ts +0 -7
  472. package/dist/shared/codec/s3/delete.js +0 -28
  473. package/dist/shared/codec/s3/key-scope.d.ts +0 -23
  474. package/dist/shared/codec/s3/key-scope.js +0 -44
  475. package/dist/shared/codec/s3/lifecycle.d.ts +0 -14
  476. package/dist/shared/codec/s3/lifecycle.js +0 -63
  477. package/dist/shared/codec/s3/offloader.d.ts +0 -44
  478. package/dist/shared/codec/s3/offloader.js +0 -118
  479. package/dist/shared/codec/s3/orphans.d.ts +0 -23
  480. package/dist/shared/codec/s3/orphans.js +0 -71
  481. package/dist/shared/codec/s3/read-write.d.ts +0 -18
  482. package/dist/shared/codec/s3/read-write.js +0 -51
  483. package/dist/shared/codec/s3/retry.d.ts +0 -5
  484. package/dist/shared/codec/s3/retry.js +0 -22
  485. package/dist/shared/concurrency.d.ts +0 -6
  486. package/dist/shared/constants.d.ts +0 -112
  487. package/dist/shared/constants.js +0 -115
  488. package/dist/shared/dynamodb/abort.d.ts +0 -9
  489. package/dist/shared/dynamodb/abort.js +0 -27
  490. package/dist/shared/dynamodb/backoff.d.ts +0 -15
  491. package/dist/shared/dynamodb/backoff.js +0 -48
  492. package/dist/shared/dynamodb/batch-write.d.ts +0 -22
  493. package/dist/shared/dynamodb/batch-write.js +0 -53
  494. package/dist/shared/dynamodb/cancellation.d.ts +0 -6
  495. package/dist/shared/dynamodb/cancellation.js +0 -7
  496. package/dist/shared/dynamodb/client.d.ts +0 -28
  497. package/dist/shared/dynamodb/conditional-put.d.ts +0 -67
  498. package/dist/shared/dynamodb/conditional-put.js +0 -76
  499. package/dist/shared/dynamodb/drain-unprocessed.d.ts +0 -21
  500. package/dist/shared/dynamodb/drain-unprocessed.js +0 -43
  501. package/dist/shared/dynamodb/expiry.d.ts +0 -16
  502. package/dist/shared/dynamodb/expiry.js +0 -29
  503. package/dist/shared/dynamodb/paginate-core.d.ts +0 -24
  504. package/dist/shared/dynamodb/paginate-core.js +0 -82
  505. package/dist/shared/dynamodb/paginate.d.ts +0 -14
  506. package/dist/shared/dynamodb/paginate.js +0 -19
  507. package/dist/shared/dynamodb/partition-delete.d.ts +0 -39
  508. package/dist/shared/dynamodb/partition-delete.js +0 -71
  509. package/dist/shared/dynamodb/retry-classifier.d.ts +0 -17
  510. package/dist/shared/dynamodb/retry-classifier.js +0 -118
  511. package/dist/shared/dynamodb/retry-policy.d.ts +0 -26
  512. package/dist/shared/dynamodb/retry-policy.js +0 -22
  513. package/dist/shared/dynamodb/retry.d.ts +0 -31
  514. package/dist/shared/dynamodb/retry.js +0 -57
  515. package/dist/shared/dynamodb/scan.d.ts +0 -14
  516. package/dist/shared/dynamodb/scan.js +0 -19
  517. package/dist/shared/dynamodb/types.d.ts +0 -23
  518. package/dist/shared/errors/base-error.d.ts +0 -30
  519. package/dist/shared/errors/base-error.js +0 -27
  520. package/dist/shared/errors/boundary.d.ts +0 -18
  521. package/dist/shared/errors/boundary.js +0 -46
  522. package/dist/shared/errors/error-code.d.ts +0 -13
  523. package/dist/shared/errors/errors.d.ts +0 -68
  524. package/dist/shared/errors/errors.js +0 -114
  525. package/dist/shared/errors/upstream-error.d.ts +0 -16
  526. package/dist/shared/errors/upstream-error.js +0 -27
  527. package/dist/shared/errors/wrap-error.d.ts +0 -7
  528. package/dist/shared/errors/wrap-error.js +0 -15
  529. package/dist/shared/logging/logger.d.ts +0 -18
  530. package/dist/shared/logging/logger.js +0 -15
  531. package/dist/shared/logging/redaction-walk.d.ts +0 -23
  532. package/dist/shared/logging/redaction-walk.js +0 -112
  533. package/dist/shared/logging/redaction.d.ts +0 -39
  534. package/dist/shared/logging/redaction.js +0 -75
  535. package/dist/shared/logging/secret-patterns.d.ts +0 -92
  536. package/dist/shared/logging/secret-patterns.js +0 -133
  537. package/dist/shared/options.d.ts +0 -37
  538. package/dist/shared/ulid.d.ts +0 -23
  539. package/dist/shared/validation/options.d.ts +0 -8
  540. package/dist/shared/validation/options.js +0 -90
  541. package/dist/shared/validation/primitives.d.ts +0 -29
  542. package/dist/shared/validation/primitives.js +0 -82
  543. package/dist/shared/validation/ttl.d.ts +0 -28
  544. package/dist/shared/validation/ttl.js +0 -52
  545. package/dist/store/actions/get.d.ts +0 -13
  546. package/dist/store/actions/get.js +0 -73
  547. package/dist/store/actions/list-namespaces.d.ts +0 -8
  548. package/dist/store/actions/list-namespaces.js +0 -59
  549. package/dist/store/actions/put.d.ts +0 -10
  550. package/dist/store/actions/put.js +0 -96
  551. package/dist/store/actions/reconcile-vector-index.d.ts +0 -18
  552. package/dist/store/actions/reconcile-vector-index.js +0 -26
  553. package/dist/store/actions/search.d.ts +0 -9
  554. package/dist/store/actions/search.js +0 -34
  555. package/dist/store/internal/backend-search.d.ts +0 -4
  556. package/dist/store/internal/backend-search.js +0 -74
  557. package/dist/store/internal/batch-plan.d.ts +0 -11
  558. package/dist/store/internal/batch-plan.js +0 -52
  559. package/dist/store/internal/candidates.d.ts +0 -23
  560. package/dist/store/internal/candidates.js +0 -94
  561. package/dist/store/internal/filter.d.ts +0 -9
  562. package/dist/store/internal/filter.js +0 -85
  563. package/dist/store/internal/index-reconcile.d.ts +0 -21
  564. package/dist/store/internal/index-reconcile.js +0 -118
  565. package/dist/store/internal/index-sync.d.ts +0 -10
  566. package/dist/store/internal/index-sync.js +0 -25
  567. package/dist/store/internal/item-mapper.d.ts +0 -27
  568. package/dist/store/internal/item-mapper.js +0 -61
  569. package/dist/store/internal/keys.d.ts +0 -17
  570. package/dist/store/internal/keys.js +0 -41
  571. package/dist/store/internal/namespace-match.d.ts +0 -11
  572. package/dist/store/internal/namespace-match.js +0 -40
  573. package/dist/store/internal/option-validation.d.ts +0 -13
  574. package/dist/store/internal/option-validation.js +0 -77
  575. package/dist/store/internal/overwrite-swap.d.ts +0 -32
  576. package/dist/store/internal/overwrite-swap.js +0 -68
  577. package/dist/store/internal/persist.d.ts +0 -28
  578. package/dist/store/internal/persist.js +0 -64
  579. package/dist/store/internal/query.d.ts +0 -11
  580. package/dist/store/internal/query.js +0 -48
  581. package/dist/store/internal/ranker.d.ts +0 -18
  582. package/dist/store/internal/ranker.js +0 -39
  583. package/dist/store/internal/read-existing.d.ts +0 -23
  584. package/dist/store/internal/read-existing.js +0 -41
  585. package/dist/store/internal/score-direction.d.ts +0 -31
  586. package/dist/store/internal/score-direction.js +0 -38
  587. package/dist/store/internal/search-filter.d.ts +0 -3
  588. package/dist/store/internal/search-filter.js +0 -10
  589. package/dist/store/internal/semantic-search.d.ts +0 -34
  590. package/dist/store/internal/semantic-search.js +0 -87
  591. package/dist/store/internal/setup.d.ts +0 -36
  592. package/dist/store/internal/setup.js +0 -40
  593. package/dist/store/internal/text-path.d.ts +0 -17
  594. package/dist/store/internal/validation.d.ts +0 -18
  595. package/dist/store/internal/validation.js +0 -51
  596. package/dist/store/internal/write-verify.d.ts +0 -42
  597. package/dist/store/internal/write-verify.js +0 -71
  598. package/dist/store/store.d.ts +0 -61
  599. package/dist/store/store.js +0 -107
  600. package/dist/store/types.d.ts +0 -50
  601. package/dist/store/types.js +0 -2
  602. package/dist/store/vector-backend.d.ts +0 -43
  603. package/dist/store/vector-backend.js +0 -2
  604. /package/dist/{checkpointer → cjs/checkpointer}/types.js +0 -0
  605. /package/dist/{factory → cjs/factory}/types.js +0 -0
  606. /package/dist/{history → cjs/history}/types.js +0 -0
  607. /package/dist/{shared → cjs/shared}/options.js +0 -0
  608. /package/dist/{shared/dynamodb → cjs/store}/types.js +0 -0
@@ -1,133 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_SECRET_VALUE_PATTERNS = exports.DEFAULT_SECRET_KEY_PATTERNS = exports.REDACTED = void 0;
4
- exports.normaliseKey = normaliseKey;
5
- exports.isSecretKey = isSecretKey;
6
- exports.redactedMessage = redactedMessage;
7
- exports.redactText = redactText;
8
- exports.binaryLabel = binaryLabel;
9
- exports.redactErrorText = redactErrorText;
10
- /** Marker substituted for anything recognised as secret. */
11
- exports.REDACTED = '[REDACTED]';
12
- /**
13
- * Key names whose value is a secret. Each entry is a *normalised* name — see
14
- * {@link normaliseKey} — and matches a key whose normalised form equals it or
15
- * ends with it. Suffix matching is what catches `secretAccessKey`, `x-api-key`,
16
- * `client_secret` and `AUTH_TOKEN`; requiring the pattern to be a suffix, not a
17
- * substring, is what spares `maxTokens`, `total_tokens`, `tokenizer` and
18
- * `secretary`, which the old substring rule redacted.
19
- */
20
- exports.DEFAULT_SECRET_KEY_PATTERNS = [
21
- 'accesskey',
22
- 'accesskeyid',
23
- 'secret',
24
- 'sessiontoken',
25
- 'securitytoken',
26
- 'authorization',
27
- 'password',
28
- 'passwd',
29
- 'passphrase',
30
- 'apikey',
31
- 'bearer',
32
- 'token',
33
- 'privatekey',
34
- ];
35
- /**
36
- * Canonical form of a key name for matching: lower-case with every character
37
- * that is not a letter or digit removed, so `api_key`, `x-api-key`, `ApiKey`
38
- * and `API KEY` all become `apikey`.
39
- */
40
- function normaliseKey(key) {
41
- return key.toLowerCase().replace(/[^a-z0-9]/g, '');
42
- }
43
- /**
44
- * Secret shapes recognisable in free text, where key-name matching cannot
45
- * reach: an error's `message`/`stack`, or any other string value. Deliberately
46
- * high-confidence — each pattern describes a credential *format* rather than a
47
- * word that merely sounds sensitive — so ordinary operational text survives
48
- * redaction unchanged.
49
- *
50
- * The credential-pair pattern (last) tolerates a **closing quote after the
51
- * keyword**, because that is what `JSON.stringify` produces
52
- * (`{"password":"…"}`) and requiring the separator to follow the bare keyword
53
- * matched nothing at all there — a silent, complete bypass on the single most
54
- * common shape a downstream HTTP error arrives in. Its group 1 is the keyword
55
- * and separator, preserved by {@link redactText}.
56
- *
57
- * Its value side tries three shapes, and their order is load-bearing:
58
- * 1. a fully-quoted span that consumes escapes, so `{"password":"a\"b"}` is
59
- * redacted whole. Ending the span at the escaped quote stopped the
60
- * redaction short and printed the rest of the secret verbatim.
61
- * 2. an unquoted JSON scalar — number, `true`, `false`, `null` — required to
62
- * end at a real delimiter — `,`, `}`, `]` or end of input, optionally
63
- * preceded by whitespace. Without this alternative,
64
- * `{"apiKey":123,"region":"us-east-1"}` fell through to the fallback below,
65
- * which then destroyed every sibling field after the secret. The lookahead
66
- * is what stops the alternative truncating a value it does not fully
67
- * describe, such as `token=123abc`, and leaking the tail it left behind.
68
- * Whitespace alone does not end a scalar: treating a space as a delimiter
69
- * made `api_key: 5 items` redact to `api_key: [REDACTED] items`, which
70
- * reads as a partial redaction of a value the pattern never described.
71
- * 3. the rest of the line, so a multi-word secret is redacted whole instead of
72
- * up to its first space. Trying the two precise shapes first is what keeps
73
- * this fallback from over-redacting sibling JSON fields.
74
- */
75
- exports.DEFAULT_SECRET_VALUE_PATTERNS = [
76
- /\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g,
77
- /\bBearer\s+[A-Za-z0-9._~+/-]+=*/gi,
78
- /\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g,
79
- /((?:aws_)?(?:secret_access_key|secretaccesskey|password|passwd|api_?key|token)["']?\s*[=:]\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|(?:-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?|true|false|null)(?=\s*[,}\]]|\s*$)|[^\r\n]+)/gi,
80
- ];
81
- /** True when `key`'s normalised form equals or ends with any (normalised) pattern. */
82
- function isSecretKey(key, patterns) {
83
- const normalised = normaliseKey(key);
84
- return patterns.some((pattern) => normalised === pattern || normalised.endsWith(pattern));
85
- }
86
- /**
87
- * An error's message with recognised credential shapes redacted, for embedding
88
- * in another error's message: a wrapper that quotes its cause must not leak a
89
- * `password=` or token the cause happened to carry.
90
- */
91
- function redactedMessage(error) {
92
- return redactText(error.message, exports.DEFAULT_SECRET_VALUE_PATTERNS);
93
- }
94
- /**
95
- * Replace every recognised secret shape inside `value` with {@link REDACTED},
96
- * leaving the surrounding text intact so a redacted message stays readable.
97
- * Each pattern is rebuilt per call so a `g` flag's `lastIndex` never leaks
98
- * between invocations.
99
- *
100
- * A pattern may capture a leading group it wants **preserved**: only the rest
101
- * of the match is replaced, which is what keeps `apiKey=[REDACTED]` saying
102
- * which field was redacted instead of collapsing to a bare marker. A pattern
103
- * with no group is replaced whole, as before. `String.prototype.replace`
104
- * passes the match *offset* — a number — as the second callback argument when
105
- * the pattern has no group, hence the `typeof` test rather than an
106
- * `undefined` check.
107
- */
108
- function redactText(value, patterns) {
109
- return patterns.reduce((text, pattern) => text.replace(new RegExp(pattern.source, pattern.flags), (_match, prefix) => typeof prefix === 'string' ? `${prefix}${exports.REDACTED}` : exports.REDACTED), value);
110
- }
111
- /**
112
- * A short label for a binary view. Recursing one would explode it into a
113
- * per-index numeric map, both unreadable and far larger than the value itself.
114
- */
115
- function binaryLabel(value) {
116
- return `[${value.constructor.name}(${value.byteLength})]`;
117
- }
118
- /**
119
- * Redact an Error's `name`/`message`/`stack`. `changed` reports whether any
120
- * secret was actually found, which is what decides between passing a bare
121
- * Error through by reference (preserving its identity and stack trace) and
122
- * rebuilding it so the secret cannot escape.
123
- */
124
- function redactErrorText(error, patterns) {
125
- const message = redactText(error.message, patterns);
126
- const stack = error.stack === undefined ? undefined : redactText(error.stack, patterns);
127
- return {
128
- name: error.name,
129
- message,
130
- stack,
131
- changed: message !== error.message || stack !== error.stack,
132
- };
133
- }
@@ -1,37 +0,0 @@
1
- import type { DynamoDBClientConfig } from '@aws-sdk/client-dynamodb';
2
- import type { DynamoDBDocument } from '@aws-sdk/lib-dynamodb';
3
- import type { CompressionConfig } from './codec/compression';
4
- import type { S3OffloadConfig } from './codec/s3/config';
5
- import type { RetryPolicy } from './dynamodb/retry-policy';
6
- import type { Logger } from './logging/logger';
7
- import type { TtlOption } from './validation/ttl';
8
- /**
9
- * Options common to every adapter (the unified options shape). An adapter
10
- * either reuses an injected `client` or builds one from `clientConfig`.
11
- */
12
- export interface BaseAdapterOptions {
13
- /** DynamoDB table name. */
14
- tableName: string;
15
- /** Pre-built DocumentClient to reuse; when set, the adapter does not own it. */
16
- client?: DynamoDBDocument;
17
- /** Config used to build a client when `client` is not provided. */
18
- clientConfig?: DynamoDBClientConfig;
19
- /** Optional time-to-live applied to written items. */
20
- ttl?: TtlOption;
21
- /** Optional per-instance logger (defaults to a silent logger). */
22
- logger?: Logger;
23
- /** Retry budget and backoff for every DynamoDB call (see the README "Retries and backoff"). */
24
- retry?: RetryPolicy;
25
- }
26
- /** Options enabling payload compression and/or S3 offloading. */
27
- export interface CodecOptions {
28
- /** Gzip compression configuration. */
29
- compression?: CompressionConfig;
30
- /** S3 offload configuration for payloads over DynamoDB's item limit. */
31
- s3?: S3OffloadConfig;
32
- }
33
- /** Per-call cancellation for the long-running adapter methods. */
34
- export interface CancelOptions {
35
- /** Aborting it rejects the call with `AbortError` (`ABORTED`) at the next wait. */
36
- signal?: AbortSignal;
37
- }
@@ -1,23 +0,0 @@
1
- /**
2
- * A CSPRNG-backed `rng` seam: uniform values in `[0, 1)` from `crypto.randomBytes`,
3
- * drawn from a refilled pool so a burst of ids costs one syscall per 256
4
- * digits rather than one per digit. `Math.random` is fine for uniqueness and
5
- * ordering but is not a cryptographically secure source, which security
6
- * baselines flag in identifier generation; the ULID spec recommends a CSPRNG.
7
- */
8
- export declare function secureRng(): () => number;
9
- /**
10
- * The 10 time characters every ULID generated at `timeMs` starts with. Used
11
- * as a sort-key bound: every id from that millisecond onwards sorts at or
12
- * after it, every earlier id before it.
13
- */
14
- export declare function ulidTimePrefix(timeMs: number): string;
15
- /**
16
- * Build a monotonic ULID generator: lexicographically sortable 26-char ids
17
- * whose first 10 chars encode the millisecond timestamp. Ids strictly increase
18
- * even when the clock regresses or the same-millisecond random space overflows:
19
- * any non-advancing clock reuses the last timestamp and increments the random
20
- * component, carrying into the timestamp on overflow. `now`/`rng` are seams for
21
- * deterministic tests; the default `rng` is {@link secureRng}.
22
- */
23
- export declare function createUlidFactory(now?: () => number, rng?: () => number): () => string;
@@ -1,8 +0,0 @@
1
- import type { BaseAdapterOptions, CodecOptions } from '../options';
2
- /**
3
- * Validate the options every adapter shares, at construction. Each failure is
4
- * a {@link ValidationError} whose `context.field` names the offending option,
5
- * so a misconfiguration surfaces where it was written instead of as a raw AWS
6
- * error on the first request.
7
- */
8
- export declare function validateBaseAdapterOptions(options: BaseAdapterOptions & CodecOptions): void;
@@ -1,90 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateBaseAdapterOptions = validateBaseAdapterOptions;
4
- const config_1 = require("../codec/s3/config");
5
- const constants_1 = require("../constants");
6
- const errors_1 = require("../errors/errors");
7
- const primitives_1 = require("./primitives");
8
- const ttl_1 = require("./ttl");
9
- /** DynamoDB's table-name rule: 3–255 characters from `[A-Za-z0-9_.-]`. */
10
- const TABLE_NAME_PATTERN = /^[A-Za-z0-9_.-]{3,255}$/;
11
- /** Server-side encryption algorithms S3 accepts for `PutObject`. */
12
- const SSE_ALGORITHMS = ['AES256', 'aws:kms', 'aws:kms:dsse'];
13
- function validateTableName(tableName) {
14
- if (typeof tableName !== 'string' || !TABLE_NAME_PATTERN.test(tableName)) {
15
- throw new errors_1.ValidationError('tableName must be 3-255 characters from [A-Za-z0-9_.-], as DynamoDB requires', 'tableName');
16
- }
17
- }
18
- /**
19
- * An injected `client` is used as-is, so a `clientConfig` or `createClient`
20
- * given alongside it would be silently ignored — including a `region` the
21
- * caller believes is in effect. Reject the combination instead.
22
- */
23
- function validateClientChoice(options) {
24
- if (options.client &&
25
- (options.clientConfig !== undefined || options.createClient !== undefined)) {
26
- throw new errors_1.ValidationError('provide either `client` or `clientConfig`/`createClient`, not both: an injected client ' +
27
- 'is used as-is and the configuration would be silently ignored', 'client');
28
- }
29
- }
30
- function validateRetryPolicy(policy) {
31
- if (policy.maxAttempts !== undefined) {
32
- (0, primitives_1.validateInteger)(policy.maxAttempts, 'retry.maxAttempts', { min: 1, max: constants_1.MAX_RETRY_ATTEMPTS });
33
- }
34
- if (policy.baseDelayMs !== undefined) {
35
- (0, primitives_1.validateInteger)(policy.baseDelayMs, 'retry.baseDelayMs', { min: 1 });
36
- }
37
- if (policy.maxDelayMs !== undefined) {
38
- (0, primitives_1.validateInteger)(policy.maxDelayMs, 'retry.maxDelayMs', { min: policy.baseDelayMs ?? 1 });
39
- }
40
- }
41
- function validateCompression(config) {
42
- if (typeof config.enabled !== 'boolean') {
43
- throw new errors_1.ValidationError('compression.enabled must be a boolean', 'compression.enabled');
44
- }
45
- if (config.level !== undefined) {
46
- (0, primitives_1.validateInteger)(config.level, 'compression.level', { min: 0, max: 9 });
47
- }
48
- if (config.minSizeBytes !== undefined) {
49
- (0, primitives_1.validateInteger)(config.minSizeBytes, 'compression.minSizeBytes', { min: 0 });
50
- }
51
- if (config.maxDecompressedBytes !== undefined) {
52
- (0, primitives_1.validateInteger)(config.maxDecompressedBytes, 'compression.maxDecompressedBytes', { min: 1 });
53
- }
54
- }
55
- function validateS3(config) {
56
- (0, primitives_1.validateNonEmptyString)(config.bucketName, 's3.bucketName');
57
- if (config.thresholdBytes !== undefined) {
58
- (0, primitives_1.validateInteger)(config.thresholdBytes, 's3.thresholdBytes', {
59
- min: 1,
60
- max: constants_1.MAX_INLINE_PAYLOAD_BYTES,
61
- });
62
- }
63
- if (config.keyPrefix !== undefined)
64
- (0, config_1.assertScopedKeyPrefix)(config.keyPrefix);
65
- if (config.maxDownloadBytes !== undefined) {
66
- (0, primitives_1.validateInteger)(config.maxDownloadBytes, 's3.maxDownloadBytes', { min: 1 });
67
- }
68
- if (config.serverSideEncryption !== undefined &&
69
- !SSE_ALGORITHMS.includes(config.serverSideEncryption)) {
70
- throw new errors_1.ValidationError(`s3.serverSideEncryption must be one of ${SSE_ALGORITHMS.join(', ')}`, 's3.serverSideEncryption');
71
- }
72
- }
73
- /**
74
- * Validate the options every adapter shares, at construction. Each failure is
75
- * a {@link ValidationError} whose `context.field` names the offending option,
76
- * so a misconfiguration surfaces where it was written instead of as a raw AWS
77
- * error on the first request.
78
- */
79
- function validateBaseAdapterOptions(options) {
80
- validateTableName(options.tableName);
81
- validateClientChoice(options);
82
- if (options.ttl !== undefined)
83
- (0, ttl_1.resolveTtlSeconds)(options.ttl);
84
- if (options.retry !== undefined)
85
- validateRetryPolicy(options.retry);
86
- if (options.compression !== undefined)
87
- validateCompression(options.compression);
88
- if (options.s3 !== undefined)
89
- validateS3(options.s3);
90
- }
@@ -1,29 +0,0 @@
1
- /**
2
- * Throw {@link ValidationError} unless `value` is a string with at least one
3
- * non-whitespace character: a blank identifier is never intended and would
4
- * otherwise become an invisible, un-greppable DynamoDB key.
5
- */
6
- export declare function validateNonEmptyString(value: string, field: string): void;
7
- /** Throw {@link ValidationError} if `value` exceeds `maxBytes` when encoded as UTF-8. */
8
- export declare function assertMaxBytes(value: string, field: string, maxBytes: number): void;
9
- /** Throw {@link ValidationError} unless `value` is an integer within bounds. */
10
- export declare function validateInteger(value: number, field: string, bounds?: {
11
- min?: number;
12
- max?: number;
13
- }): void;
14
- /** Throw {@link ValidationError} unless `value` is a non-empty array. */
15
- export declare function validateNonEmptyArray<T>(value: T[], field: string): void;
16
- /** Throw {@link ValidationError} if `value` contains an ASCII control character. */
17
- export declare function assertNoControlChars(value: string, field: string): void;
18
- /** Throw {@link ValidationError} if `value` contains the reserved `separator`. */
19
- export declare function assertNoSeparator(value: string, separator: string, field: string): void;
20
- /**
21
- * Validate a caller-supplied identifier that reaches a DynamoDB key: non-empty,
22
- * at most `maxBytes` of UTF-8, free of the reserved `separator`, and free of
23
- * control characters. The last rule matters even though DynamoDB itself
24
- * accepts control characters — an identifier is echoed into logs, so an
25
- * unvalidated ANSI escape is a log/terminal-injection surface for any app that
26
- * writes these values out. The length check runs before the character scans so
27
- * an oversized value is rejected without being walked.
28
- */
29
- export declare function validateIdentifier(value: string, separator: string, field: string, maxBytes: number): void;
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateNonEmptyString = validateNonEmptyString;
4
- exports.assertMaxBytes = assertMaxBytes;
5
- exports.validateInteger = validateInteger;
6
- exports.validateNonEmptyArray = validateNonEmptyArray;
7
- exports.assertNoControlChars = assertNoControlChars;
8
- exports.assertNoSeparator = assertNoSeparator;
9
- exports.validateIdentifier = validateIdentifier;
10
- const errors_1 = require("../errors/errors");
11
- /**
12
- * Throw {@link ValidationError} unless `value` is a string with at least one
13
- * non-whitespace character: a blank identifier is never intended and would
14
- * otherwise become an invisible, un-greppable DynamoDB key.
15
- */
16
- function validateNonEmptyString(value, field) {
17
- if (typeof value !== 'string' || value.trim().length === 0) {
18
- throw new errors_1.ValidationError(`${field} must be a non-empty string (whitespace-only counts as empty)`, field);
19
- }
20
- }
21
- /** Throw {@link ValidationError} if `value` exceeds `maxBytes` when encoded as UTF-8. */
22
- function assertMaxBytes(value, field, maxBytes) {
23
- const bytes = Buffer.byteLength(value, 'utf8');
24
- if (bytes > maxBytes) {
25
- throw new errors_1.ValidationError(`${field} must be at most ${maxBytes} bytes of UTF-8 (received ${bytes})`, field);
26
- }
27
- }
28
- /** Throw {@link ValidationError} unless `value` is an integer within bounds. */
29
- function validateInteger(value, field, bounds = {}) {
30
- if (typeof value !== 'number' || !Number.isInteger(value)) {
31
- throw new errors_1.ValidationError(`${field} must be an integer`, field);
32
- }
33
- if (bounds.min !== undefined && value < bounds.min) {
34
- throw new errors_1.ValidationError(`${field} must be >= ${bounds.min}`, field);
35
- }
36
- if (bounds.max !== undefined && value > bounds.max) {
37
- throw new errors_1.ValidationError(`${field} must be <= ${bounds.max}`, field);
38
- }
39
- }
40
- /** Throw {@link ValidationError} unless `value` is a non-empty array. */
41
- function validateNonEmptyArray(value, field) {
42
- if (!Array.isArray(value) || value.length === 0) {
43
- throw new errors_1.ValidationError(`${field} must be a non-empty array`, field);
44
- }
45
- }
46
- /** Return `true` if `value` contains any ASCII control character. */
47
- function hasControlChar(value) {
48
- for (let i = 0; i < value.length; i++) {
49
- const code = value.charCodeAt(i);
50
- if (code <= 0x1f || code === 0x7f) {
51
- return true;
52
- }
53
- }
54
- return false;
55
- }
56
- /** Throw {@link ValidationError} if `value` contains an ASCII control character. */
57
- function assertNoControlChars(value, field) {
58
- if (hasControlChar(value)) {
59
- throw new errors_1.ValidationError(`${field} must not contain control characters`, field);
60
- }
61
- }
62
- /** Throw {@link ValidationError} if `value` contains the reserved `separator`. */
63
- function assertNoSeparator(value, separator, field) {
64
- if (value.includes(separator)) {
65
- throw new errors_1.ValidationError(`${field} must not contain the reserved "${separator}" separator`, field);
66
- }
67
- }
68
- /**
69
- * Validate a caller-supplied identifier that reaches a DynamoDB key: non-empty,
70
- * at most `maxBytes` of UTF-8, free of the reserved `separator`, and free of
71
- * control characters. The last rule matters even though DynamoDB itself
72
- * accepts control characters — an identifier is echoed into logs, so an
73
- * unvalidated ANSI escape is a log/terminal-injection surface for any app that
74
- * writes these values out. The length check runs before the character scans so
75
- * an oversized value is rejected without being walked.
76
- */
77
- function validateIdentifier(value, separator, field, maxBytes) {
78
- validateNonEmptyString(value, field);
79
- assertMaxBytes(value, field, maxBytes);
80
- assertNoSeparator(value, separator, field);
81
- assertNoControlChars(value, field);
82
- }
@@ -1,28 +0,0 @@
1
- /** Time-to-live expressed in whole days or whole seconds. */
2
- export type TtlOption = {
3
- days: number;
4
- } | {
5
- seconds: number;
6
- };
7
- /**
8
- * Validate a {@link TtlOption} and resolve it to a positive number of seconds.
9
- * Both forms share the same five-year cap, and an object carrying both keys is
10
- * rejected instead of being resolved by whichever key happens to be checked first.
11
- */
12
- export declare function resolveTtlSeconds(ttl: TtlOption): number;
13
- /**
14
- * Resolve a {@link TtlOption} into a DynamoDB TTL attribute value: the Unix
15
- * epoch (seconds) at which the item expires.
16
- *
17
- * @param now - Clock seam returning epoch milliseconds. Defaults to `Date.now`.
18
- */
19
- export declare function calculateTtlTimestamp(ttl: TtlOption, now?: () => number): number;
20
- /**
21
- * Days for the S3 lifecycle rule that backs a TTL: the TTL rounded up to whole
22
- * days plus {@link S3_LIFECYCLE_SWEEP_MARGIN_DAYS}. S3 expires an object at the
23
- * first midnight UTC at least that many days after creation, while DynamoDB
24
- * can keep the row up to ~48 h past its `ttl`; without the margin an
25
- * `{ days: N }` TTL expired the object on day N exactly, stranding a live row
26
- * that pointed at a deleted payload until the sweep caught up.
27
- */
28
- export declare function lifecycleExpirationDays(ttl: TtlOption): number;
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveTtlSeconds = resolveTtlSeconds;
4
- exports.calculateTtlTimestamp = calculateTtlTimestamp;
5
- exports.lifecycleExpirationDays = lifecycleExpirationDays;
6
- const constants_1 = require("../constants");
7
- const errors_1 = require("../errors/errors");
8
- const primitives_1 = require("./primitives");
9
- const SECONDS_PER_DAY = 24 * 60 * 60;
10
- /** Positive integer no greater than `max`, with a message that names what the cap means. */
11
- function validateWithinCap(value, field, max) {
12
- (0, primitives_1.validateInteger)(value, field, { min: 1 });
13
- if (value > max) {
14
- throw new errors_1.ValidationError(`${field} must be <= ${max} (five years)`, field);
15
- }
16
- }
17
- /**
18
- * Validate a {@link TtlOption} and resolve it to a positive number of seconds.
19
- * Both forms share the same five-year cap, and an object carrying both keys is
20
- * rejected instead of being resolved by whichever key happens to be checked first.
21
- */
22
- function resolveTtlSeconds(ttl) {
23
- if ('days' in ttl && 'seconds' in ttl) {
24
- throw new errors_1.ValidationError('ttl must specify either ttl.days or ttl.seconds, not both', 'ttl');
25
- }
26
- if ('days' in ttl) {
27
- validateWithinCap(ttl.days, 'ttl.days', constants_1.MAX_TTL_DAYS);
28
- return ttl.days * SECONDS_PER_DAY;
29
- }
30
- validateWithinCap(ttl.seconds, 'ttl.seconds', constants_1.MAX_TTL_SECONDS);
31
- return ttl.seconds;
32
- }
33
- /**
34
- * Resolve a {@link TtlOption} into a DynamoDB TTL attribute value: the Unix
35
- * epoch (seconds) at which the item expires.
36
- *
37
- * @param now - Clock seam returning epoch milliseconds. Defaults to `Date.now`.
38
- */
39
- function calculateTtlTimestamp(ttl, now = Date.now) {
40
- return Math.floor(now() / 1000) + resolveTtlSeconds(ttl);
41
- }
42
- /**
43
- * Days for the S3 lifecycle rule that backs a TTL: the TTL rounded up to whole
44
- * days plus {@link S3_LIFECYCLE_SWEEP_MARGIN_DAYS}. S3 expires an object at the
45
- * first midnight UTC at least that many days after creation, while DynamoDB
46
- * can keep the row up to ~48 h past its `ttl`; without the margin an
47
- * `{ days: N }` TTL expired the object on day N exactly, stranding a live row
48
- * that pointed at a deleted payload until the sweep caught up.
49
- */
50
- function lifecycleExpirationDays(ttl) {
51
- return Math.ceil(resolveTtlSeconds(ttl) / SECONDS_PER_DAY) + constants_1.S3_LIFECYCLE_SWEEP_MARGIN_DAYS;
52
- }
@@ -1,13 +0,0 @@
1
- import type { Item } from '@langchain/langgraph-checkpoint';
2
- import type { StoreContext } from '../internal/setup';
3
- /**
4
- * Retrieve a single item by namespace and key (strongly consistent), or null.
5
- *
6
- * An offloaded item can lose a race with a concurrent overwrite: between the
7
- * row read and the S3 download the writer commits a new descriptor and deletes
8
- * the object this read was about to fetch. That surfaces as `NoSuchKey`, and
9
- * one strongly-consistent re-read settles it — the row now points at the new
10
- * object (return that), is gone (null), or still points at the same missing
11
- * object (a genuine loss, rethrown). Any other download failure propagates.
12
- */
13
- export declare function getItem(context: StoreContext, namespace: string[], key: string, signal?: AbortSignal): Promise<Item | null>;
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getItem = getItem;
4
- const clock_1 = require("../../shared/clock");
5
- const codec_1 = require("../../shared/codec/codec");
6
- const payload_loss_1 = require("../../shared/codec/payload-loss");
7
- const expiry_1 = require("../../shared/dynamodb/expiry");
8
- const retry_1 = require("../../shared/dynamodb/retry");
9
- const retry_policy_1 = require("../../shared/dynamodb/retry-policy");
10
- const item_mapper_1 = require("../internal/item-mapper");
11
- const keys_1 = require("../internal/keys");
12
- const validation_1 = require("../internal/validation");
13
- /**
14
- * Read the row strongly consistently and narrow it rather than cast. A
15
- * foreign row sharing this key has no `namespace`, and one carrying a `value`
16
- * PayloadDescriptor in the same shape a store item uses (a checkpointer WRITE
17
- * row) would otherwise decode cleanly and be handed back as the caller's own
18
- * value.
19
- */
20
- async function readRow(context, namespace, key, signal) {
21
- const result = await (0, retry_1.withDynamoDBRetry)(() => context.client.get({
22
- TableName: context.tableName,
23
- Key: { PK: (0, keys_1.partitionKey)(namespace), SK: (0, keys_1.sortKey)(namespace, key) },
24
- ConsistentRead: true,
25
- }), (0, retry_policy_1.retryFor)(context, signal));
26
- if (!result.Item)
27
- return undefined;
28
- const record = (0, item_mapper_1.narrowStoreRecord)(result.Item);
29
- if (!record) {
30
- context.logger.warn('store.get: ignored a row that is not a store item', {
31
- partitionKey: (0, keys_1.partitionKey)(namespace),
32
- sortKey: (0, keys_1.sortKey)(namespace, key),
33
- });
34
- return undefined;
35
- }
36
- /** A row past its ttl is absent to every reader, however long DynamoDB's sweep lags. */
37
- return (0, expiry_1.isExpiredRow)(record, (0, clock_1.nowSeconds)()) ? undefined : record;
38
- }
39
- /** True when both records point at the same offloaded object. */
40
- function sameObject(a, b) {
41
- return (a.value.location === codec_1.PayloadLocation.S3 &&
42
- b.value.location === codec_1.PayloadLocation.S3 &&
43
- a.value.s3Key === b.value.s3Key);
44
- }
45
- /**
46
- * Retrieve a single item by namespace and key (strongly consistent), or null.
47
- *
48
- * An offloaded item can lose a race with a concurrent overwrite: between the
49
- * row read and the S3 download the writer commits a new descriptor and deletes
50
- * the object this read was about to fetch. That surfaces as `NoSuchKey`, and
51
- * one strongly-consistent re-read settles it — the row now points at the new
52
- * object (return that), is gone (null), or still points at the same missing
53
- * object (a genuine loss, rethrown). Any other download failure propagates.
54
- */
55
- async function getItem(context, namespace, key, signal) {
56
- (0, validation_1.validateStoreKey)(namespace, key);
57
- const record = await readRow(context, namespace, key, signal);
58
- if (!record)
59
- return null;
60
- try {
61
- return await (0, item_mapper_1.readStoreItem)(context, record);
62
- }
63
- catch (error) {
64
- if (!(0, payload_loss_1.isMissingObjectError)(error))
65
- throw error;
66
- const fresh = await readRow(context, namespace, key, signal);
67
- if (!fresh)
68
- return null;
69
- if (sameObject(record, fresh))
70
- throw error;
71
- return (0, item_mapper_1.readStoreItem)(context, fresh);
72
- }
73
- }
@@ -1,8 +0,0 @@
1
- import type { ListNamespacesOperation } from '@langchain/langgraph-checkpoint';
2
- import type { StoreContext } from '../internal/setup';
3
- /**
4
- * List distinct namespaces (truncated to `maxDepth`) that satisfy every match
5
- * condition, sorted, with offset/limit applied. A concrete prefix root scopes
6
- * the read to a native Query; otherwise it falls back to a filtered Scan.
7
- */
8
- export declare function listNamespaces(context: StoreContext, op: ListNamespacesOperation): Promise<string[][]>;
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.listNamespaces = listNamespaces;
4
- const clock_1 = require("../../shared/clock");
5
- const expiry_1 = require("../../shared/dynamodb/expiry");
6
- const paginate_1 = require("../../shared/dynamodb/paginate");
7
- const scan_1 = require("../../shared/dynamodb/scan");
8
- const item_mapper_1 = require("../internal/item-mapper");
9
- const keys_1 = require("../internal/keys");
10
- const namespace_match_1 = require("../internal/namespace-match");
11
- const query_1 = require("../internal/query");
12
- const validation_1 = require("../internal/validation");
13
- function namespaceSource(context, op, now) {
14
- const root = (0, namespace_match_1.prefixRoot)(op.matchConditions);
15
- if (root.length > 0) {
16
- return (0, paginate_1.paginateQuery)({
17
- retry: context.retry,
18
- client: context.client,
19
- params: (0, expiry_1.withoutExpired)((0, query_1.projectKeys)((0, query_1.scopedQuery)(context.tableName, root)), now),
20
- maxItems: context.maxScanItems,
21
- });
22
- }
23
- return (0, scan_1.paginateScan)({
24
- retry: context.retry,
25
- client: context.client,
26
- params: (0, expiry_1.withoutExpired)((0, query_1.projectKeys)((0, query_1.storeScan)(context.tableName)), now),
27
- maxItems: context.maxScanItems,
28
- });
29
- }
30
- /**
31
- * List distinct namespaces (truncated to `maxDepth`) that satisfy every match
32
- * condition, sorted, with offset/limit applied. A concrete prefix root scopes
33
- * the read to a native Query; otherwise it falls back to a filtered Scan.
34
- */
35
- async function listNamespaces(context, op) {
36
- (0, validation_1.validatePaging)(op.offset, op.limit);
37
- (0, validation_1.validateMaxDepth)(op.maxDepth);
38
- const now = (0, clock_1.nowSeconds)();
39
- const seen = new Set();
40
- const namespaces = [];
41
- for await (const raw of namespaceSource(context, op, now)) {
42
- const record = (0, item_mapper_1.narrowStoreRecord)(raw);
43
- if (!record || (0, expiry_1.isExpiredRow)(record, now))
44
- continue;
45
- const namespace = record.namespace;
46
- if (op.matchConditions &&
47
- !op.matchConditions.every((condition) => (0, namespace_match_1.matchNamespace)(namespace, condition))) {
48
- continue;
49
- }
50
- const truncated = (0, namespace_match_1.truncateDepth)(namespace, op.maxDepth);
51
- const dedupeKey = truncated.join(keys_1.NAMESPACE_SEPARATOR);
52
- if (seen.has(dedupeKey))
53
- continue;
54
- seen.add(dedupeKey);
55
- namespaces.push(truncated);
56
- }
57
- namespaces.sort((a, b) => a.join(keys_1.NAMESPACE_SEPARATOR).localeCompare(b.join(keys_1.NAMESPACE_SEPARATOR)));
58
- return namespaces.slice(op.offset, op.offset + op.limit);
59
- }
@@ -1,10 +0,0 @@
1
- import type { PutOperation } from '@langchain/langgraph-checkpoint';
2
- import type { StoreContext } from '../internal/setup';
3
- /**
4
- * Store, update, or delete an item (null deletes). The value is encoded
5
- * (optional compression/S3 offload, nonced per call so a failed write can never
6
- * delete the previous payload) and `createdAt` is preserved across updates; a
7
- * computed embedding is sent to a configured `vectorBackend` instead of being
8
- * stored on the item — DynamoDB always holds the canonical item.
9
- */
10
- export declare function putItem(context: StoreContext, op: PutOperation): Promise<void>;