@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,31 +0,0 @@
1
- import type { DynamoDBClient } from '@aws-sdk/client-dynamodb';
2
- import type { DynamoDBDocument } from '@aws-sdk/lib-dynamodb';
3
- import type { SerializerProtocol } from '@langchain/langgraph-checkpoint';
4
- import type { CompressionConfig } from '../../shared/codec/compression';
5
- import { S3Offloader } from '../../shared/codec/s3/offloader';
6
- import type { RetryOptions } from '../../shared/dynamodb/retry';
7
- import { type Logger } from '../../shared/logging/logger';
8
- import type { TtlOption } from '../../shared/validation/ttl';
9
- import type { CorruptMessagePolicy, DynamoDBChatMessageHistoryOptions } from '../types';
10
- /** Resolved collaborators shared by every chat-history action. */
11
- export interface HistoryContext {
12
- client: DynamoDBDocument;
13
- tableName: string;
14
- serde: SerializerProtocol;
15
- compression?: CompressionConfig;
16
- offloader?: S3Offloader;
17
- ttl?: TtlOption;
18
- logger: Logger;
19
- ulid: () => string;
20
- onCorruptMessage: CorruptMessagePolicy;
21
- /** Retry budget and backoff for every DynamoDB call, with the retry debug log attached. */
22
- retry?: RetryOptions;
23
- }
24
- /** Result of wiring up a chat-history adapter from its options. */
25
- export interface HistorySetup {
26
- context: HistoryContext;
27
- ddbClient: DynamoDBClient | undefined;
28
- ownsClient: boolean;
29
- }
30
- /** Resolve the client, optional S3 offloader, and serializer into a context. */
31
- export declare function setUpHistory(options: DynamoDBChatMessageHistoryOptions): HistorySetup;
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setUpHistory = setUpHistory;
4
- const json_serde_1 = require("../../shared/codec/json-serde");
5
- const adapter_config_1 = require("../../shared/codec/s3/adapter-config");
6
- const offloader_1 = require("../../shared/codec/s3/offloader");
7
- const client_1 = require("../../shared/dynamodb/client");
8
- const retry_policy_1 = require("../../shared/dynamodb/retry-policy");
9
- const errors_1 = require("../../shared/errors/errors");
10
- const logger_1 = require("../../shared/logging/logger");
11
- const ulid_1 = require("../../shared/ulid");
12
- const options_1 = require("../../shared/validation/options");
13
- const CORRUPT_MESSAGE_POLICIES = ['skip', 'throw'];
14
- /** Resolve the client, optional S3 offloader, and serializer into a context. */
15
- function setUpHistory(options) {
16
- (0, options_1.validateBaseAdapterOptions)(options);
17
- if (options.onCorruptMessage !== undefined &&
18
- !CORRUPT_MESSAGE_POLICIES.includes(options.onCorruptMessage)) {
19
- throw new errors_1.ValidationError(`onCorruptMessage must be one of ${CORRUPT_MESSAGE_POLICIES.join(' | ')}`, 'onCorruptMessage');
20
- }
21
- const logger = (0, logger_1.resolveLogger)(options.logger);
22
- const resolved = (0, client_1.resolveDynamoDBClient)(options);
23
- if (!resolved.ownsClient)
24
- void (0, client_1.warnOnStackedRetries)(resolved.client, logger);
25
- return {
26
- context: {
27
- client: resolved.client,
28
- tableName: options.tableName,
29
- serde: options.serde ?? json_serde_1.JSON_SERDE,
30
- compression: options.compression,
31
- offloader: options.s3
32
- ? new offloader_1.S3Offloader((0, adapter_config_1.offloaderConfigFor)(options.s3, 'history', options.clientConfig))
33
- : undefined,
34
- ttl: options.ttl,
35
- logger,
36
- retry: (0, retry_policy_1.resolveRetryPolicy)(options.retry, logger),
37
- ulid: (0, ulid_1.createUlidFactory)(),
38
- onCorruptMessage: options.onCorruptMessage ?? 'skip',
39
- },
40
- ddbClient: resolved.ddbClient,
41
- ownsClient: resolved.ownsClient,
42
- };
43
- }
@@ -1,12 +0,0 @@
1
- import type { StoredMessage } from '@langchain/core/messages';
2
- /**
3
- * Derive a session title from the first human message's text content, at most
4
- * {@link MAX_TITLE_LENGTH} characters including the ellipsis. Returns undefined
5
- * when there is no usable text.
6
- *
7
- * Truncation counts *code points*, not UTF-16 code units: slicing by index
8
- * could cut a surrogate pair in half, leaving a lone surrogate that no longer
9
- * round-trips through UTF-8. The ellipsis is also counted against the maximum
10
- * rather than appended past it.
11
- */
12
- export declare function deriveTitle(messages: StoredMessage[]): string | undefined;
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deriveTitle = deriveTitle;
4
- const MAX_TITLE_LENGTH = 80;
5
- function isTextBlock(block) {
6
- const candidate = block;
7
- return candidate.type === 'text' && typeof candidate.text === 'string';
8
- }
9
- /**
10
- * The human-readable text of a message's `content`: the string itself, or the
11
- * first `text` block of a content-block array (a multimodal message carries
12
- * image and text blocks side by side). Undefined when neither yields text.
13
- */
14
- function textOf(content) {
15
- if (typeof content === 'string')
16
- return content;
17
- if (!Array.isArray(content))
18
- return undefined;
19
- const block = content.find((entry) => typeof entry === 'object' && entry !== null && isTextBlock(entry));
20
- return block?.text;
21
- }
22
- /**
23
- * Derive a session title from the first human message's text content, at most
24
- * {@link MAX_TITLE_LENGTH} characters including the ellipsis. Returns undefined
25
- * when there is no usable text.
26
- *
27
- * Truncation counts *code points*, not UTF-16 code units: slicing by index
28
- * could cut a surrogate pair in half, leaving a lone surrogate that no longer
29
- * round-trips through UTF-8. The ellipsis is also counted against the maximum
30
- * rather than appended past it.
31
- */
32
- function deriveTitle(messages) {
33
- const firstHuman = messages.find((message) => message.type === 'human');
34
- const content = firstHuman === undefined ? undefined : textOf(firstHuman.data.content);
35
- if (content === undefined || content.length === 0)
36
- return undefined;
37
- const codePoints = [...content];
38
- if (codePoints.length <= MAX_TITLE_LENGTH)
39
- return content;
40
- return `${codePoints.slice(0, MAX_TITLE_LENGTH - 1).join('')}…`;
41
- }
@@ -1,24 +0,0 @@
1
- import type { HistoryContext } from './setup';
2
- /** The resolved ttl anchor plus whether the persisted SESSION-row value must be force-refreshed. */
3
- export interface TtlAnchorResult {
4
- ttlTimestamp: number;
5
- refresh: boolean;
6
- }
7
- /**
8
- * Resolve the session's creation-anchored TTL: the value already stored on the
9
- * SESSION item, if one exists AND is still in the future; otherwise the
10
- * supplied `candidate`, with `refresh: true` so the caller force-overwrites
11
- * the stale/missing persisted anchor instead of leaving it stuck (DynamoDB's
12
- * `if_not_exists` would otherwise never correct an already-expired anchor).
13
- * This is a strongly-consistent read, never a write, so it cannot leave a
14
- * metadata-only orphan row when the following append transaction fails.
15
- *
16
- * When a stale anchor is healed, only the persisted SESSION row's `ttl` is
17
- * force-refreshed — the message rows already written under the expired
18
- * anchor keep their own (already-expired) `ttl` and get swept independently
19
- * by DynamoDB's TTL sweep. Until that sweep runs (and until
20
- * `reconcileMessageCount` repairs the count), `messageCount` can therefore be
21
- * temporarily overstated relative to what `getMessages` actually returns.
22
- * This is expected, not a bug.
23
- */
24
- export declare function resolveTtlAnchor(context: HistoryContext, sessionId: string, candidate: number, signal?: AbortSignal): Promise<TtlAnchorResult>;
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveTtlAnchor = resolveTtlAnchor;
4
- const clock_1 = require("../../shared/clock");
5
- const retry_1 = require("../../shared/dynamodb/retry");
6
- const retry_policy_1 = require("../../shared/dynamodb/retry-policy");
7
- const keys_1 = require("./keys");
8
- /**
9
- * Resolve the session's creation-anchored TTL: the value already stored on the
10
- * SESSION item, if one exists AND is still in the future; otherwise the
11
- * supplied `candidate`, with `refresh: true` so the caller force-overwrites
12
- * the stale/missing persisted anchor instead of leaving it stuck (DynamoDB's
13
- * `if_not_exists` would otherwise never correct an already-expired anchor).
14
- * This is a strongly-consistent read, never a write, so it cannot leave a
15
- * metadata-only orphan row when the following append transaction fails.
16
- *
17
- * When a stale anchor is healed, only the persisted SESSION row's `ttl` is
18
- * force-refreshed — the message rows already written under the expired
19
- * anchor keep their own (already-expired) `ttl` and get swept independently
20
- * by DynamoDB's TTL sweep. Until that sweep runs (and until
21
- * `reconcileMessageCount` repairs the count), `messageCount` can therefore be
22
- * temporarily overstated relative to what `getMessages` actually returns.
23
- * This is expected, not a bug.
24
- */
25
- async function resolveTtlAnchor(context, sessionId, candidate, signal) {
26
- const result = await (0, retry_1.withDynamoDBRetry)(() => context.client.get({
27
- TableName: context.tableName,
28
- Key: { PK: (0, keys_1.sessionPartition)(sessionId), SK: keys_1.SESSION_SORT_KEY },
29
- ConsistentRead: true,
30
- ProjectionExpression: '#ttl',
31
- ExpressionAttributeNames: { '#ttl': 'ttl' },
32
- }), (0, retry_policy_1.retryFor)(context, signal));
33
- const ttl = result.Item?.ttl;
34
- if (typeof ttl === 'number' && ttl > (0, clock_1.nowSeconds)()) {
35
- return { ttlTimestamp: ttl, refresh: false };
36
- }
37
- return { ttlTimestamp: candidate, refresh: true };
38
- }
@@ -1,25 +0,0 @@
1
- import { type StoredMessage } from '@langchain/core/messages';
2
- import type { MessageWindow } from '../types';
3
- /**
4
- * Validate a session id is a non-blank, separator- and control-char-free string
5
- * of at most 1024 bytes. Applied on every entry point, not just the write path: a bad value
6
- * used to reach DynamoDB and surface as a raw AWS SDK exception on reads,
7
- * while the identical value threw this library's typed `ValidationError` on a
8
- * write.
9
- */
10
- export declare function validateSessionId(sessionId: string): void;
11
- /**
12
- * Reject a message this adapter could never read back. The check *is* the
13
- * read side's own rebuild (`mapStoredMessagesToChatMessages`), so write and
14
- * read agree by construction: a `RemoveMessage`, or a tool, function or
15
- * generic message missing its required field, fails here with a typed error
16
- * instead of being persisted and then skipped or thrown by `getMessages`.
17
- */
18
- export declare function validateStorableMessages(stored: StoredMessage[]): void;
19
- /**
20
- * Validate a `getMessages` window: `limit`, when given, a positive integer;
21
- * `before`, when given, a valid `Date`. Checked before any DynamoDB call so a
22
- * bad value fails with a typed error rather than a raw `ValidationException`
23
- * (or, for an invalid Date, a NaN-derived sort key that matches nothing).
24
- */
25
- export declare function validateMessageWindow(window: MessageWindow): void;
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateSessionId = validateSessionId;
4
- exports.validateStorableMessages = validateStorableMessages;
5
- exports.validateMessageWindow = validateMessageWindow;
6
- const messages_1 = require("@langchain/core/messages");
7
- const constants_1 = require("../../shared/constants");
8
- const errors_1 = require("../../shared/errors/errors");
9
- const primitives_1 = require("../../shared/validation/primitives");
10
- const keys_1 = require("./keys");
11
- /**
12
- * Validate a session id is a non-blank, separator- and control-char-free string
13
- * of at most 1024 bytes. Applied on every entry point, not just the write path: a bad value
14
- * used to reach DynamoDB and surface as a raw AWS SDK exception on reads,
15
- * while the identical value threw this library's typed `ValidationError` on a
16
- * write.
17
- */
18
- function validateSessionId(sessionId) {
19
- (0, primitives_1.validateIdentifier)(sessionId, keys_1.SORT_KEY_SEPARATOR, 'sessionId', constants_1.MAX_PARTITION_ID_BYTES);
20
- }
21
- /**
22
- * Reject a message this adapter could never read back. The check *is* the
23
- * read side's own rebuild (`mapStoredMessagesToChatMessages`), so write and
24
- * read agree by construction: a `RemoveMessage`, or a tool, function or
25
- * generic message missing its required field, fails here with a typed error
26
- * instead of being persisted and then skipped or thrown by `getMessages`.
27
- */
28
- function validateStorableMessages(stored) {
29
- stored.forEach((message, index) => {
30
- try {
31
- (0, messages_1.mapStoredMessagesToChatMessages)([message]);
32
- }
33
- catch (error) {
34
- throw new errors_1.ValidationError(`messages[${index}] of type "${message.type}" cannot be stored: ${error.message}`, 'messages');
35
- }
36
- });
37
- }
38
- /**
39
- * Validate a `getMessages` window: `limit`, when given, a positive integer;
40
- * `before`, when given, a valid `Date`. Checked before any DynamoDB call so a
41
- * bad value fails with a typed error rather than a raw `ValidationException`
42
- * (or, for an invalid Date, a NaN-derived sort key that matches nothing).
43
- */
44
- function validateMessageWindow(window) {
45
- if (window.limit !== undefined && (!Number.isInteger(window.limit) || window.limit < 1)) {
46
- throw new errors_1.ValidationError('limit must be a positive integer', 'limit');
47
- }
48
- if (window.before !== undefined) {
49
- const time = typeof window.before.getTime === 'function' ? window.before.getTime() : Number.NaN;
50
- if (!Number.isFinite(time))
51
- throw new errors_1.ValidationError('before must be a valid Date', 'before');
52
- }
53
- }
@@ -1,29 +0,0 @@
1
- import { BaseListChatMessageHistory } from '@langchain/core/chat_history';
2
- import type { BaseMessage } from '@langchain/core/messages';
3
- /** The read window an adapter applies to every `getMessages`. */
4
- export type AdapterWindow = {
5
- limit?: number;
6
- };
7
- /** The session-scoped operations a single-session adapter delegates to. */
8
- export interface SessionBackend {
9
- getMessages(sessionId: string, window?: AdapterWindow): Promise<BaseMessage[]>;
10
- addMessages(sessionId: string, messages: BaseMessage[]): Promise<void>;
11
- clear(sessionId: string): Promise<void>;
12
- }
13
- /**
14
- * Single-session view over a {@link SessionBackend}, implementing LangChain's
15
- * `BaseListChatMessageHistory` so it can drive `RunnableWithMessageHistory`.
16
- * A `window` bounds what every read hands the chain — `{ limit: 50 }` feeds it
17
- * the newest fifty messages instead of the whole session.
18
- */
19
- export declare class DynamoDBSessionChatMessageHistory extends BaseListChatMessageHistory {
20
- private readonly backend;
21
- private readonly sessionId;
22
- private readonly window?;
23
- lc_namespace: string[];
24
- constructor(backend: SessionBackend, sessionId: string, window?: AdapterWindow | undefined);
25
- getMessages(): Promise<BaseMessage[]>;
26
- addMessage(message: BaseMessage): Promise<void>;
27
- addMessages(messages: BaseMessage[]): Promise<void>;
28
- clear(): Promise<void>;
29
- }
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DynamoDBSessionChatMessageHistory = void 0;
4
- const chat_history_1 = require("@langchain/core/chat_history");
5
- /**
6
- * Single-session view over a {@link SessionBackend}, implementing LangChain's
7
- * `BaseListChatMessageHistory` so it can drive `RunnableWithMessageHistory`.
8
- * A `window` bounds what every read hands the chain — `{ limit: 50 }` feeds it
9
- * the newest fifty messages instead of the whole session.
10
- */
11
- class DynamoDBSessionChatMessageHistory extends chat_history_1.BaseListChatMessageHistory {
12
- backend;
13
- sessionId;
14
- window;
15
- lc_namespace = ['langchain', 'stores', 'message', 'dynamodb'];
16
- constructor(backend, sessionId, window) {
17
- super();
18
- this.backend = backend;
19
- this.sessionId = sessionId;
20
- this.window = window;
21
- }
22
- getMessages() {
23
- return this.backend.getMessages(this.sessionId, this.window);
24
- }
25
- addMessage(message) {
26
- return this.backend.addMessages(this.sessionId, [message]);
27
- }
28
- addMessages(messages) {
29
- return this.backend.addMessages(this.sessionId, messages);
30
- }
31
- clear() {
32
- return this.backend.clear(this.sessionId);
33
- }
34
- }
35
- exports.DynamoDBSessionChatMessageHistory = DynamoDBSessionChatMessageHistory;
@@ -1,69 +0,0 @@
1
- import type { SerializerProtocol } from '@langchain/langgraph-checkpoint';
2
- import type { PayloadDescriptor } from '../shared/codec/codec';
3
- import type { BaseAdapterOptions, CancelOptions, CodecOptions } from '../shared/options';
4
- /** Options for {@link DynamoDBChatMessageHistory}. */
5
- export type DynamoDBChatMessageHistoryOptions = BaseAdapterOptions & CodecOptions & {
6
- /** Optional serializer override (defaults to the JSON serializer). */
7
- serde?: SerializerProtocol;
8
- /**
9
- * What `getMessages` does when a stored message cannot be decoded — a
10
- * decompression-guard trip, an unsupported `serdeType` after a config
11
- * change, or genuinely corrupted bytes. `'skip'` (the default) drops the
12
- * item, logs it at `error` with its sort key so an operator can locate
13
- * it, and returns the rest; `'throw'` fails the whole read, which is
14
- * all-or-nothing but leaves the session unreadable until the bad row is
15
- * removed out of band.
16
- */
17
- onCorruptMessage?: CorruptMessagePolicy;
18
- };
19
- /** How `getMessages` handles an item it cannot decode. */
20
- export type CorruptMessagePolicy = 'skip' | 'throw';
21
- /**
22
- * Which slice of a session `getMessages` returns. Both bounds are optional
23
- * and combine: `{ limit: 50, before }` is the fifty messages just before
24
- * `before`.
25
- */
26
- export interface MessageWindow {
27
- /** Return only the newest `limit` messages — still in chronological order. */
28
- limit?: number;
29
- /** Return only messages appended before this instant (millisecond precision). */
30
- before?: Date;
31
- }
32
- /** Options for `getMessages`: the read window plus cancellation. */
33
- export type GetMessagesOptions = MessageWindow & CancelOptions;
34
- /** Options for `listSessions`: the scan caps plus cancellation. */
35
- export interface ListSessionsOptions extends CancelOptions {
36
- /** Cap on scan pages before `ResultTruncatedError` (default 1000). */
37
- maxIterations?: number;
38
- /** Cap on rows read into memory before `ResultTruncatedError` (default 10 000). */
39
- maxItems?: number;
40
- }
41
- /** Summary of a stored chat session. */
42
- export interface SessionMetadata {
43
- sessionId: string;
44
- title?: string;
45
- messageCount: number;
46
- createdAt: string;
47
- updatedAt: string;
48
- /** When the session's TTL expires, as an ISO-8601 instant; absent when no TTL is stored. */
49
- expiresAt?: string;
50
- }
51
- /** A single stored chat message item (one per message, ordered by its ULID). */
52
- export interface ChatMessageItem {
53
- PK: string;
54
- SK: string;
55
- sessionId: string;
56
- message: PayloadDescriptor;
57
- ttl?: number;
58
- }
59
- /** The per-session metadata item, updated atomically as messages are appended. */
60
- export interface ChatSessionItem {
61
- PK: string;
62
- SK: string;
63
- sessionId: string;
64
- messageCount: number;
65
- title?: string;
66
- createdAt: string;
67
- updatedAt: string;
68
- ttl?: number;
69
- }
package/dist/index.d.ts DELETED
@@ -1,29 +0,0 @@
1
- export { DynamoDBSaver } from './checkpointer/saver';
2
- export type { DynamoDBSaverOptions } from './checkpointer/types';
3
- export { DynamoDBStore } from './store/store';
4
- export type { DynamoDBStoreOptions } from './store/types';
5
- export type { VectorReconcileResult } from './store/actions/reconcile-vector-index';
6
- export type { VectorBackend, VectorMatch, VectorRef } from './store/vector-backend';
7
- export type { VectorScoreDirection } from './store/internal/score-direction';
8
- export { DynamoDBChatMessageHistory } from './history/chat-message-history';
9
- export { DynamoDBSessionChatMessageHistory } from './history/session-adapter';
10
- export type { AdapterWindow, SessionBackend } from './history/session-adapter';
11
- export type { CorruptMessagePolicy, DynamoDBChatMessageHistoryOptions, GetMessagesOptions, ListSessionsOptions, MessageWindow, SessionMetadata, } from './history/types';
12
- export { DynamoDBFactory } from './factory/factory';
13
- export type { AdapterSection, CreateAllOptions, CreatedAdapters, FactoryBaseOptions, } from './factory/types';
14
- export { DynamoDBLangGraphError, isDynamoDBLangGraphError } from './shared/errors/base-error';
15
- export type { ErrorContext } from './shared/errors/base-error';
16
- export { ErrorCode } from './shared/errors/error-code';
17
- export { AbortError, BatchWriteAllIncompleteError, BatchWriteIncompleteError, CompensationFailedError, ConflictError, ResultTruncatedError, RetryExhaustedError, ValidationError, } from './shared/errors/errors';
18
- export { UpstreamError } from './shared/errors/upstream-error';
19
- export type { Logger, LogArgument } from './shared/logging/logger';
20
- export { redactLogger, redactSecrets } from './shared/logging/redaction';
21
- export type { RedactLoggerOptions } from './shared/logging/redaction';
22
- export type { Redactable } from './shared/logging/redaction-walk';
23
- export type { CancelOptions, BaseAdapterOptions, CodecOptions } from './shared/options';
24
- export type { RetryAttemptInfo, RetryOptions } from './shared/dynamodb/retry';
25
- export type { RetryPolicy } from './shared/dynamodb/retry-policy';
26
- export type { TtlOption } from './shared/validation/ttl';
27
- export type { CompressionConfig } from './shared/codec/compression';
28
- export type { S3OffloadConfig } from './shared/codec/s3/config';
29
- export type { S3ClientConfigLike, S3ClientLike, S3ClientOption, S3ClientOptions, S3CommandLike, S3RegionLike, } from './shared/codec/s3/client-types';
package/dist/index.js DELETED
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.redactSecrets = exports.redactLogger = exports.UpstreamError = exports.ValidationError = exports.RetryExhaustedError = exports.ResultTruncatedError = exports.ConflictError = exports.CompensationFailedError = exports.BatchWriteIncompleteError = exports.BatchWriteAllIncompleteError = exports.AbortError = exports.ErrorCode = exports.isDynamoDBLangGraphError = exports.DynamoDBLangGraphError = exports.DynamoDBFactory = exports.DynamoDBSessionChatMessageHistory = exports.DynamoDBChatMessageHistory = exports.DynamoDBStore = exports.DynamoDBSaver = void 0;
4
- var saver_1 = require("./checkpointer/saver");
5
- Object.defineProperty(exports, "DynamoDBSaver", { enumerable: true, get: function () { return saver_1.DynamoDBSaver; } });
6
- var store_1 = require("./store/store");
7
- Object.defineProperty(exports, "DynamoDBStore", { enumerable: true, get: function () { return store_1.DynamoDBStore; } });
8
- var chat_message_history_1 = require("./history/chat-message-history");
9
- Object.defineProperty(exports, "DynamoDBChatMessageHistory", { enumerable: true, get: function () { return chat_message_history_1.DynamoDBChatMessageHistory; } });
10
- var session_adapter_1 = require("./history/session-adapter");
11
- Object.defineProperty(exports, "DynamoDBSessionChatMessageHistory", { enumerable: true, get: function () { return session_adapter_1.DynamoDBSessionChatMessageHistory; } });
12
- var factory_1 = require("./factory/factory");
13
- Object.defineProperty(exports, "DynamoDBFactory", { enumerable: true, get: function () { return factory_1.DynamoDBFactory; } });
14
- var base_error_1 = require("./shared/errors/base-error");
15
- Object.defineProperty(exports, "DynamoDBLangGraphError", { enumerable: true, get: function () { return base_error_1.DynamoDBLangGraphError; } });
16
- Object.defineProperty(exports, "isDynamoDBLangGraphError", { enumerable: true, get: function () { return base_error_1.isDynamoDBLangGraphError; } });
17
- var error_code_1 = require("./shared/errors/error-code");
18
- Object.defineProperty(exports, "ErrorCode", { enumerable: true, get: function () { return error_code_1.ErrorCode; } });
19
- var errors_1 = require("./shared/errors/errors");
20
- Object.defineProperty(exports, "AbortError", { enumerable: true, get: function () { return errors_1.AbortError; } });
21
- Object.defineProperty(exports, "BatchWriteAllIncompleteError", { enumerable: true, get: function () { return errors_1.BatchWriteAllIncompleteError; } });
22
- Object.defineProperty(exports, "BatchWriteIncompleteError", { enumerable: true, get: function () { return errors_1.BatchWriteIncompleteError; } });
23
- Object.defineProperty(exports, "CompensationFailedError", { enumerable: true, get: function () { return errors_1.CompensationFailedError; } });
24
- Object.defineProperty(exports, "ConflictError", { enumerable: true, get: function () { return errors_1.ConflictError; } });
25
- Object.defineProperty(exports, "ResultTruncatedError", { enumerable: true, get: function () { return errors_1.ResultTruncatedError; } });
26
- Object.defineProperty(exports, "RetryExhaustedError", { enumerable: true, get: function () { return errors_1.RetryExhaustedError; } });
27
- Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return errors_1.ValidationError; } });
28
- var upstream_error_1 = require("./shared/errors/upstream-error");
29
- Object.defineProperty(exports, "UpstreamError", { enumerable: true, get: function () { return upstream_error_1.UpstreamError; } });
30
- var redaction_1 = require("./shared/logging/redaction");
31
- Object.defineProperty(exports, "redactLogger", { enumerable: true, get: function () { return redaction_1.redactLogger; } });
32
- Object.defineProperty(exports, "redactSecrets", { enumerable: true, get: function () { return redaction_1.redactSecrets; } });
@@ -1,8 +0,0 @@
1
- /** Current time as an ISO-8601 string, derived from the (test-freezable) clock. */
2
- export declare function nowIso(): string;
3
- /**
4
- * Current time as whole epoch seconds, the unit DynamoDB TTL uses. Every
5
- * expiry stamp, expiry filter and ttl-anchor comparison reads this one seam
6
- * so they agree with each other under a frozen or skewed clock.
7
- */
8
- export declare function nowSeconds(): number;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nowIso = nowIso;
4
- exports.nowSeconds = nowSeconds;
5
- /** Current time as an ISO-8601 string, derived from the (test-freezable) clock. */
6
- function nowIso() {
7
- return new Date(Date.now()).toISOString();
8
- }
9
- /**
10
- * Current time as whole epoch seconds, the unit DynamoDB TTL uses. Every
11
- * expiry stamp, expiry filter and ttl-anchor comparison reads this one seam
12
- * so they agree with each other under a frozen or skewed clock.
13
- */
14
- function nowSeconds() {
15
- return Math.floor(Date.now() / 1000);
16
- }
@@ -1,53 +0,0 @@
1
- import type { SerializerProtocol } from '@langchain/langgraph-checkpoint';
2
- import { CompressionConfig } from './compression';
3
- import type { S3Offloader } from './s3/offloader';
4
- /** Where an encoded payload lives. */
5
- export declare enum PayloadLocation {
6
- INLINE = "INLINE",
7
- S3 = "S3"
8
- }
9
- /**
10
- * Version of the persisted descriptor shape. Absent on rows written before it
11
- * existed, which read as version 1; a higher value marks a row written by a
12
- * newer library and is refused rather than misread.
13
- */
14
- export declare const DESCRIPTOR_SCHEMA_VERSION = 1;
15
- /** Fields every descriptor carries, whatever its location. */
16
- interface DescriptorBase {
17
- schemaVersion?: number;
18
- serdeType: string;
19
- compressed: boolean;
20
- }
21
- /** A payload stored inline as bytes in the DynamoDB item. */
22
- interface InlinePayloadDescriptor extends DescriptorBase {
23
- location: PayloadLocation.INLINE;
24
- bytes: Uint8Array;
25
- }
26
- /** A payload offloaded to S3, referenced by key. */
27
- interface S3PayloadDescriptor extends DescriptorBase {
28
- location: PayloadLocation.S3;
29
- s3Key: string;
30
- }
31
- /** The result of encoding a payload. */
32
- export type PayloadDescriptor = InlinePayloadDescriptor | S3PayloadDescriptor;
33
- /** Collaborators for the codec. */
34
- export interface CodecDeps {
35
- serde: SerializerProtocol;
36
- compression?: CompressionConfig;
37
- offloader?: S3Offloader;
38
- }
39
- /**
40
- * Fetch a descriptor's bytes — an S3 download when offloaded — and undo
41
- * compression. Infrastructure only, no deserialization: a caller that needs to
42
- * tell a transport or permission failure from bad data does this step and
43
- * `loadsTyped` separately (see `history/actions/get-messages.ts`).
44
- *
45
- * `scope` is the row's own leading key parts (`[threadId]`, `[...namespace,
46
- * key]`, `[sessionId]`): an offloaded key is downloaded only when it lies under
47
- * the path those parts produce, so a row can never point this adapter at an
48
- * object it does not own.
49
- */
50
- export declare function readPayloadBytes(descriptor: PayloadDescriptor, deps: CodecDeps, scope: readonly string[]): Promise<Uint8Array>;
51
- /** Decode a {@link PayloadDescriptor} produced by `encodePayload`; see {@link readPayloadBytes} for `scope`. */
52
- export declare function decodePayload<T>(descriptor: PayloadDescriptor, deps: CodecDeps, scope: readonly string[]): Promise<T>;
53
- export {};
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DESCRIPTOR_SCHEMA_VERSION = exports.PayloadLocation = void 0;
4
- exports.readPayloadBytes = readPayloadBytes;
5
- exports.decodePayload = decodePayload;
6
- const errors_1 = require("../errors/errors");
7
- const compression_1 = require("./compression");
8
- /** Where an encoded payload lives. */
9
- var PayloadLocation;
10
- (function (PayloadLocation) {
11
- PayloadLocation["INLINE"] = "INLINE";
12
- PayloadLocation["S3"] = "S3";
13
- })(PayloadLocation || (exports.PayloadLocation = PayloadLocation = {}));
14
- /**
15
- * Version of the persisted descriptor shape. Absent on rows written before it
16
- * existed, which read as version 1; a higher value marks a row written by a
17
- * newer library and is refused rather than misread.
18
- */
19
- exports.DESCRIPTOR_SCHEMA_VERSION = 1;
20
- function requireOffloader(deps) {
21
- if (!deps.offloader) {
22
- throw new errors_1.ValidationError("this row's payload is offloaded to S3 but the adapter has no `s3` configuration; " +
23
- 'configure the bucket the writer used', 's3');
24
- }
25
- return deps.offloader;
26
- }
27
- /** Refuse a descriptor this version cannot read: a newer schema, or an unknown location. */
28
- function assertReadableDescriptor(descriptor) {
29
- const version = descriptor.schemaVersion ?? exports.DESCRIPTOR_SCHEMA_VERSION;
30
- if (version > exports.DESCRIPTOR_SCHEMA_VERSION) {
31
- throw new errors_1.ValidationError(`payload descriptor schemaVersion ${version} was written by a newer version of this ` +
32
- 'library; upgrade to read it', 'descriptor');
33
- }
34
- const locations = Object.values(PayloadLocation);
35
- if (!locations.includes(descriptor.location)) {
36
- throw new errors_1.ValidationError(`payload descriptor has an unknown location ${JSON.stringify(descriptor.location)}`, 'descriptor');
37
- }
38
- }
39
- /**
40
- * Fetch a descriptor's bytes — an S3 download when offloaded — and undo
41
- * compression. Infrastructure only, no deserialization: a caller that needs to
42
- * tell a transport or permission failure from bad data does this step and
43
- * `loadsTyped` separately (see `history/actions/get-messages.ts`).
44
- *
45
- * `scope` is the row's own leading key parts (`[threadId]`, `[...namespace,
46
- * key]`, `[sessionId]`): an offloaded key is downloaded only when it lies under
47
- * the path those parts produce, so a row can never point this adapter at an
48
- * object it does not own.
49
- */
50
- async function readPayloadBytes(descriptor, deps, scope) {
51
- assertReadableDescriptor(descriptor);
52
- let raw;
53
- if (descriptor.location === PayloadLocation.S3) {
54
- const offloader = requireOffloader(deps);
55
- offloader.assertOwnedKey(descriptor.s3Key, scope);
56
- raw = await offloader.download(descriptor.s3Key);
57
- }
58
- else {
59
- raw = descriptor.bytes;
60
- }
61
- return (0, compression_1.decompress)(raw, descriptor.compressed, deps.compression?.maxDecompressedBytes);
62
- }
63
- /** Decode a {@link PayloadDescriptor} produced by `encodePayload`; see {@link readPayloadBytes} for `scope`. */
64
- async function decodePayload(descriptor, deps, scope) {
65
- return deps.serde.loadsTyped(descriptor.serdeType, await readPayloadBytes(descriptor, deps, scope));
66
- }
@@ -1,24 +0,0 @@
1
- /** Configuration for payload compression. */
2
- export interface CompressionConfig {
3
- enabled: boolean;
4
- minSizeBytes?: number;
5
- level?: number;
6
- maxDecompressedBytes?: number;
7
- }
8
- /** The bytes to store plus whether they were gzip-compressed. */
9
- export interface CompressionResult {
10
- bytes: Uint8Array;
11
- compressed: boolean;
12
- }
13
- /**
14
- * Gzip `data` when it is at least `minSizeBytes` and compression actually saves
15
- * space. Returns the bytes to store and a `compressed` flag the caller records
16
- * in the payload descriptor; compression is never inferred from the bytes.
17
- */
18
- export declare function compress(data: Uint8Array, config: CompressionConfig): Promise<CompressionResult>;
19
- /**
20
- * Gunzip `data` when `compressed` is true; otherwise return it unchanged. Throws
21
- * a {@link DynamoDBLangGraphError} with code `COMPRESSION_LIMIT` if the output
22
- * would exceed `maxBytes` (bomb guard).
23
- */
24
- export declare function decompress(data: Uint8Array, compressed: boolean, maxBytes?: number): Promise<Uint8Array>;