@farukada/aws-langgraph-dynamodb-ts 1.0.0-rc.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/README.md +390 -193
  2. package/dist/{backfill → cjs/backfill}/backfill.d.ts +15 -12
  3. package/dist/cjs/backfill/backfill.js +177 -0
  4. package/dist/{checkpointer → cjs/checkpointer}/actions/delete-thread.d.ts +1 -1
  5. package/dist/cjs/checkpointer/actions/delete-thread.js +26 -0
  6. package/dist/{checkpointer → cjs/checkpointer}/actions/get-tuple.d.ts +4 -3
  7. package/dist/cjs/checkpointer/actions/get-tuple.js +22 -0
  8. package/dist/{checkpointer → cjs/checkpointer}/actions/list.d.ts +7 -4
  9. package/dist/cjs/checkpointer/actions/list.js +70 -0
  10. package/dist/{checkpointer → cjs/checkpointer}/actions/put-writes.d.ts +8 -6
  11. package/dist/cjs/checkpointer/actions/put-writes.js +21 -0
  12. package/dist/{checkpointer → cjs/checkpointer}/actions/put.d.ts +21 -15
  13. package/dist/cjs/checkpointer/actions/put.js +79 -0
  14. package/dist/{checkpointer → cjs/checkpointer}/internal/delta-history.d.ts +38 -26
  15. package/dist/cjs/checkpointer/internal/delta-history.js +131 -0
  16. package/dist/{checkpointer → cjs/checkpointer}/internal/listing.d.ts +4 -4
  17. package/dist/cjs/checkpointer/internal/listing.js +104 -0
  18. package/dist/{checkpointer → cjs/checkpointer}/internal/parse.d.ts +51 -15
  19. package/dist/cjs/checkpointer/internal/parse.js +184 -0
  20. package/dist/{checkpointer → cjs/checkpointer}/internal/pending-writes.d.ts +64 -25
  21. package/dist/cjs/checkpointer/internal/pending-writes.js +241 -0
  22. package/dist/{checkpointer → cjs/checkpointer}/internal/read.d.ts +15 -10
  23. package/dist/cjs/checkpointer/internal/read.js +132 -0
  24. package/dist/{checkpointer → cjs/checkpointer}/internal/rows.d.ts +94 -21
  25. package/dist/cjs/checkpointer/internal/rows.js +356 -0
  26. package/dist/{checkpointer → cjs/checkpointer}/internal/setup.d.ts +13 -20
  27. package/dist/cjs/checkpointer/internal/setup.js +25 -0
  28. package/dist/{checkpointer → cjs/checkpointer}/saver.d.ts +72 -36
  29. package/dist/cjs/checkpointer/saver.js +56 -0
  30. package/dist/{checkpointer → cjs/checkpointer}/types.d.ts +1 -1
  31. package/dist/cjs/checkpointer/types.js +2 -0
  32. package/dist/{factory → cjs/factory}/factory.d.ts +25 -20
  33. package/dist/cjs/factory/factory.js +137 -0
  34. package/dist/{factory → cjs/factory}/types.d.ts +12 -12
  35. package/dist/cjs/factory/types.js +2 -0
  36. package/dist/{history → cjs/history}/actions/add-messages.d.ts +18 -10
  37. package/dist/cjs/history/actions/add-messages.js +17 -0
  38. package/dist/{history → cjs/history}/actions/clear.d.ts +1 -1
  39. package/dist/cjs/history/actions/clear.js +29 -0
  40. package/dist/{history → cjs/history}/actions/get-messages.d.ts +11 -9
  41. package/dist/cjs/history/actions/get-messages.js +58 -0
  42. package/dist/{history → cjs/history}/actions/list-sessions.d.ts +3 -3
  43. package/dist/cjs/history/actions/list-sessions.js +67 -0
  44. package/dist/{history → cjs/history}/actions/reconcile-count.d.ts +13 -9
  45. package/dist/cjs/history/actions/reconcile-count.js +8 -0
  46. package/dist/{history → cjs/history}/chat-message-history.d.ts +62 -30
  47. package/dist/cjs/history/chat-message-history.js +61 -0
  48. package/dist/{history → cjs/history}/internal/append.d.ts +64 -32
  49. package/dist/cjs/history/internal/append.js +267 -0
  50. package/dist/{history → cjs/history}/internal/message-read.d.ts +3 -3
  51. package/dist/cjs/history/internal/message-read.js +93 -0
  52. package/dist/{history → cjs/history}/internal/parse.d.ts +2 -2
  53. package/dist/cjs/history/internal/parse.js +113 -0
  54. package/dist/{history → cjs/history}/internal/rows.d.ts +11 -10
  55. package/dist/cjs/history/internal/rows.js +96 -0
  56. package/dist/{history → cjs/history}/internal/session.d.ts +41 -22
  57. package/dist/cjs/history/internal/session.js +296 -0
  58. package/dist/{history → cjs/history}/internal/setup.d.ts +2 -2
  59. package/dist/cjs/history/internal/setup.js +60 -0
  60. package/dist/{history → cjs/history}/session-adapter.d.ts +0 -6
  61. package/dist/cjs/history/session-adapter.js +38 -0
  62. package/dist/{history → cjs/history}/types.d.ts +18 -15
  63. package/dist/cjs/history/types.js +2 -0
  64. package/dist/{index.d.ts → cjs/index.d.ts} +27 -27
  65. package/dist/cjs/index.js +25 -0
  66. package/dist/cjs/package.json +1 -0
  67. package/dist/{shared → cjs/shared}/adapter.d.ts +27 -16
  68. package/dist/cjs/shared/adapter.js +70 -0
  69. package/dist/cjs/shared/clock.js +14 -0
  70. package/dist/{shared → cjs/shared}/codec/codec.d.ts +37 -20
  71. package/dist/cjs/shared/codec/codec.js +162 -0
  72. package/dist/{shared → cjs/shared}/codec/compression.d.ts +9 -4
  73. package/dist/cjs/shared/codec/compression.js +45 -0
  74. package/dist/cjs/shared/codec/json-serde.js +58 -0
  75. package/dist/{shared → cjs/shared}/codec/s3/client-types.d.ts +2 -1
  76. package/dist/cjs/shared/codec/s3/client-types.js +6 -0
  77. package/dist/{shared → cjs/shared}/codec/s3/client.d.ts +25 -7
  78. package/dist/cjs/shared/codec/s3/client.js +78 -0
  79. package/dist/{shared → cjs/shared}/codec/s3/config.d.ts +12 -7
  80. package/dist/cjs/shared/codec/s3/config.js +92 -0
  81. package/dist/{shared → cjs/shared}/codec/s3/lifecycle.d.ts +71 -17
  82. package/dist/cjs/shared/codec/s3/lifecycle.js +223 -0
  83. package/dist/{shared → cjs/shared}/codec/s3/offloader.d.ts +42 -29
  84. package/dist/cjs/shared/codec/s3/offloader.js +289 -0
  85. package/dist/cjs/shared/concurrency.js +31 -0
  86. package/dist/{shared → cjs/shared}/dynamodb/abort.d.ts +2 -2
  87. package/dist/cjs/shared/dynamodb/abort.js +16 -0
  88. package/dist/{shared → cjs/shared}/dynamodb/batch-write.d.ts +2 -2
  89. package/dist/cjs/shared/dynamodb/batch-write.js +79 -0
  90. package/dist/cjs/shared/dynamodb/cancellation.js +37 -0
  91. package/dist/{shared → cjs/shared}/dynamodb/client.d.ts +24 -22
  92. package/dist/cjs/shared/dynamodb/client.js +40 -0
  93. package/dist/{shared → cjs/shared}/dynamodb/idempotent-write.d.ts +64 -19
  94. package/dist/cjs/shared/dynamodb/idempotent-write.js +173 -0
  95. package/dist/{shared → cjs/shared}/dynamodb/paginate.d.ts +2 -2
  96. package/dist/cjs/shared/dynamodb/paginate.js +90 -0
  97. package/dist/{shared → cjs/shared}/dynamodb/partition-delete.d.ts +6 -6
  98. package/dist/cjs/shared/dynamodb/partition-delete.js +177 -0
  99. package/dist/{shared → cjs/shared}/dynamodb/recency-index.d.ts +27 -15
  100. package/dist/cjs/shared/dynamodb/recency-index.js +146 -0
  101. package/dist/{shared → cjs/shared}/dynamodb/retry.d.ts +37 -6
  102. package/dist/cjs/shared/dynamodb/retry.js +193 -0
  103. package/dist/cjs/shared/dynamodb/row-size.d.ts +33 -0
  104. package/dist/cjs/shared/dynamodb/row-size.js +30 -0
  105. package/dist/{shared → cjs/shared}/dynamodb/table-schema.d.ts +27 -18
  106. package/dist/cjs/shared/dynamodb/table-schema.js +52 -0
  107. package/dist/{shared → cjs/shared}/errors/base-error.d.ts +42 -7
  108. package/dist/cjs/shared/errors/base-error.js +73 -0
  109. package/dist/{shared → cjs/shared}/errors/boundary.d.ts +29 -14
  110. package/dist/cjs/shared/errors/boundary.js +61 -0
  111. package/dist/cjs/shared/errors/classify.d.ts +206 -0
  112. package/dist/cjs/shared/errors/classify.js +232 -0
  113. package/dist/{shared → cjs/shared}/errors/error-code.d.ts +17 -10
  114. package/dist/cjs/shared/errors/error-code.js +27 -0
  115. package/dist/{shared → cjs/shared}/errors/errors.d.ts +75 -9
  116. package/dist/cjs/shared/errors/errors.js +123 -0
  117. package/dist/cjs/shared/logging/logger.js +30 -0
  118. package/dist/{shared → cjs/shared}/logging/redaction.d.ts +8 -4
  119. package/dist/cjs/shared/logging/redaction.js +145 -0
  120. package/dist/{shared → cjs/shared}/logging/secret-patterns.d.ts +30 -7
  121. package/dist/cjs/shared/logging/secret-patterns.js +93 -0
  122. package/dist/cjs/shared/logging/truncate.js +31 -0
  123. package/dist/{shared → cjs/shared}/options.d.ts +27 -11
  124. package/dist/cjs/shared/options.js +2 -0
  125. package/dist/cjs/shared/ulid.js +83 -0
  126. package/dist/{shared → cjs/shared}/validation/collaborators.d.ts +21 -2
  127. package/dist/cjs/shared/validation/collaborators.js +79 -0
  128. package/dist/{shared → cjs/shared}/validation/option-shape.d.ts +7 -5
  129. package/dist/cjs/shared/validation/option-shape.js +31 -0
  130. package/dist/{shared → cjs/shared}/validation/options.d.ts +4 -4
  131. package/dist/cjs/shared/validation/options.js +166 -0
  132. package/dist/cjs/shared/validation/primitives.js +114 -0
  133. package/dist/{shared → cjs/shared}/validation/ttl.d.ts +26 -9
  134. package/dist/cjs/shared/validation/ttl.js +52 -0
  135. package/dist/{store → cjs/store}/actions/list-namespaces.d.ts +5 -5
  136. package/dist/cjs/store/actions/list-namespaces.js +92 -0
  137. package/dist/{store → cjs/store}/actions/put.d.ts +11 -4
  138. package/dist/cjs/store/actions/put.js +49 -0
  139. package/dist/{store → cjs/store}/actions/reconcile-vector-index.d.ts +5 -5
  140. package/dist/cjs/store/actions/reconcile-vector-index.js +13 -0
  141. package/dist/{store → cjs/store}/actions/search.d.ts +2 -2
  142. package/dist/cjs/store/actions/search.js +26 -0
  143. package/dist/cjs/store/internal/batch-plan.d.ts +56 -0
  144. package/dist/cjs/store/internal/batch-plan.js +32 -0
  145. package/dist/{store → cjs/store}/internal/filter.d.ts +3 -3
  146. package/dist/cjs/store/internal/filter.js +64 -0
  147. package/dist/cjs/store/internal/get-item.d.ts +77 -0
  148. package/dist/cjs/store/internal/get-item.js +58 -0
  149. package/dist/{store → cjs/store}/internal/item-write.d.ts +72 -32
  150. package/dist/cjs/store/internal/item-write.js +181 -0
  151. package/dist/{store → cjs/store}/internal/parse.d.ts +15 -10
  152. package/dist/cjs/store/internal/parse.js +180 -0
  153. package/dist/{store → cjs/store}/internal/rows.d.ts +38 -34
  154. package/dist/cjs/store/internal/rows.js +166 -0
  155. package/dist/{store → cjs/store}/internal/semantic-search.d.ts +2 -2
  156. package/dist/cjs/store/internal/semantic-search.js +211 -0
  157. package/dist/{store → cjs/store}/internal/setup.d.ts +10 -15
  158. package/dist/cjs/store/internal/setup.js +103 -0
  159. package/dist/{store → cjs/store}/internal/table-search.d.ts +5 -5
  160. package/dist/cjs/store/internal/table-search.js +123 -0
  161. package/dist/{store → cjs/store}/internal/vector-index.d.ts +26 -15
  162. package/dist/cjs/store/internal/vector-index.js +269 -0
  163. package/dist/{store → cjs/store}/store.d.ts +82 -39
  164. package/dist/cjs/store/store.js +97 -0
  165. package/dist/{store → cjs/store}/types.d.ts +25 -10
  166. package/dist/cjs/store/types.js +2 -0
  167. package/dist/cjs/store/vector-backend.js +4 -0
  168. package/dist/esm/backfill/backfill.d.ts +171 -0
  169. package/dist/esm/backfill/backfill.js +170 -0
  170. package/dist/{checkpointer/actions/delete-thread.js → esm/checkpointer/actions/delete-thread.d.ts} +4 -26
  171. package/dist/esm/checkpointer/actions/delete-thread.js +23 -0
  172. package/dist/{checkpointer/actions/get-tuple.js → esm/checkpointer/actions/get-tuple.d.ts} +7 -24
  173. package/dist/esm/checkpointer/actions/get-tuple.js +19 -0
  174. package/dist/esm/checkpointer/actions/list.d.ts +55 -0
  175. package/dist/esm/checkpointer/actions/list.js +67 -0
  176. package/dist/{checkpointer/actions/put-writes.js → esm/checkpointer/actions/put-writes.d.ts} +10 -37
  177. package/dist/esm/checkpointer/actions/put-writes.js +18 -0
  178. package/dist/esm/checkpointer/actions/put.d.ts +95 -0
  179. package/dist/esm/checkpointer/actions/put.js +75 -0
  180. package/dist/esm/checkpointer/internal/delta-history.d.ts +124 -0
  181. package/dist/esm/checkpointer/internal/delta-history.js +126 -0
  182. package/dist/{checkpointer/internal/listing.js → esm/checkpointer/internal/listing.d.ts} +22 -118
  183. package/dist/esm/checkpointer/internal/listing.js +95 -0
  184. package/dist/esm/checkpointer/internal/parse.d.ts +298 -0
  185. package/dist/esm/checkpointer/internal/parse.js +169 -0
  186. package/dist/esm/checkpointer/internal/pending-writes.d.ts +314 -0
  187. package/dist/esm/checkpointer/internal/pending-writes.js +229 -0
  188. package/dist/esm/checkpointer/internal/read.d.ts +135 -0
  189. package/dist/esm/checkpointer/internal/read.js +125 -0
  190. package/dist/esm/checkpointer/internal/rows.d.ts +644 -0
  191. package/dist/esm/checkpointer/internal/rows.js +323 -0
  192. package/dist/esm/checkpointer/internal/setup.d.ts +47 -0
  193. package/dist/esm/checkpointer/internal/setup.js +21 -0
  194. package/dist/{checkpointer/saver.js → esm/checkpointer/saver.d.ts} +84 -87
  195. package/dist/esm/checkpointer/saver.js +52 -0
  196. package/dist/esm/checkpointer/types.d.ts +51 -0
  197. package/dist/esm/checkpointer/types.js +1 -0
  198. package/dist/esm/factory/factory.d.ts +154 -0
  199. package/dist/esm/factory/factory.js +133 -0
  200. package/dist/esm/factory/types.d.ts +76 -0
  201. package/dist/esm/factory/types.js +1 -0
  202. package/dist/{history/actions/add-messages.js → esm/history/actions/add-messages.d.ts} +20 -26
  203. package/dist/esm/history/actions/add-messages.js +14 -0
  204. package/dist/{history/actions/clear.js → esm/history/actions/clear.d.ts} +4 -35
  205. package/dist/esm/history/actions/clear.js +26 -0
  206. package/dist/esm/history/actions/get-messages.d.ts +60 -0
  207. package/dist/esm/history/actions/get-messages.js +55 -0
  208. package/dist/esm/history/actions/list-sessions.d.ts +55 -0
  209. package/dist/esm/history/actions/list-sessions.js +64 -0
  210. package/dist/{history/actions/reconcile-count.js → esm/history/actions/reconcile-count.d.ts} +14 -16
  211. package/dist/esm/history/actions/reconcile-count.js +5 -0
  212. package/dist/{history/chat-message-history.js → esm/history/chat-message-history.d.ts} +76 -87
  213. package/dist/esm/history/chat-message-history.js +57 -0
  214. package/dist/esm/history/internal/append.d.ts +244 -0
  215. package/dist/esm/history/internal/append.js +259 -0
  216. package/dist/esm/history/internal/message-read.d.ts +84 -0
  217. package/dist/esm/history/internal/message-read.js +89 -0
  218. package/dist/esm/history/internal/parse.d.ts +153 -0
  219. package/dist/esm/history/internal/parse.js +105 -0
  220. package/dist/{history/internal/rows.js → esm/history/internal/rows.d.ts} +58 -112
  221. package/dist/esm/history/internal/rows.js +83 -0
  222. package/dist/esm/history/internal/session.d.ts +350 -0
  223. package/dist/esm/history/internal/session.js +285 -0
  224. package/dist/esm/history/internal/setup.d.ts +64 -0
  225. package/dist/esm/history/internal/setup.js +56 -0
  226. package/dist/{history/session-adapter.js → esm/history/session-adapter.d.ts} +25 -39
  227. package/dist/esm/history/session-adapter.js +34 -0
  228. package/dist/esm/history/types.d.ts +102 -0
  229. package/dist/esm/history/types.js +1 -0
  230. package/dist/esm/index.d.ts +53 -0
  231. package/dist/esm/index.js +10 -0
  232. package/dist/esm/shared/adapter.d.ts +146 -0
  233. package/dist/esm/shared/adapter.js +65 -0
  234. package/dist/{shared/clock.js → esm/shared/clock.d.ts} +3 -14
  235. package/dist/esm/shared/clock.js +9 -0
  236. package/dist/esm/shared/codec/codec.d.ts +336 -0
  237. package/dist/esm/shared/codec/codec.js +150 -0
  238. package/dist/esm/shared/codec/compression.d.ts +66 -0
  239. package/dist/esm/shared/codec/compression.js +40 -0
  240. package/dist/esm/shared/codec/json-serde.d.ts +80 -0
  241. package/dist/esm/shared/codec/json-serde.js +54 -0
  242. package/dist/esm/shared/codec/s3/client-types.d.ts +54 -0
  243. package/dist/esm/shared/codec/s3/client-types.js +3 -0
  244. package/dist/esm/shared/codec/s3/client.d.ts +63 -0
  245. package/dist/esm/shared/codec/s3/client.js +40 -0
  246. package/dist/{shared/codec/s3/config.js → esm/shared/codec/s3/config.d.ts} +45 -93
  247. package/dist/esm/shared/codec/s3/config.js +79 -0
  248. package/dist/esm/shared/codec/s3/lifecycle.d.ts +220 -0
  249. package/dist/esm/shared/codec/s3/lifecycle.js +214 -0
  250. package/dist/esm/shared/codec/s3/offloader.d.ts +428 -0
  251. package/dist/esm/shared/codec/s3/offloader.js +278 -0
  252. package/dist/{shared/concurrency.js → esm/shared/concurrency.d.ts} +2 -37
  253. package/dist/esm/shared/concurrency.js +27 -0
  254. package/dist/{shared/dynamodb/abort.js → esm/shared/dynamodb/abort.d.ts} +4 -16
  255. package/dist/esm/shared/dynamodb/abort.js +12 -0
  256. package/dist/esm/shared/dynamodb/batch-write.d.ts +86 -0
  257. package/dist/esm/shared/dynamodb/batch-write.js +74 -0
  258. package/dist/{shared/dynamodb/cancellation.js → esm/shared/dynamodb/cancellation.d.ts} +25 -53
  259. package/dist/esm/shared/dynamodb/cancellation.js +30 -0
  260. package/dist/{shared/dynamodb/client.js → esm/shared/dynamodb/client.d.ts} +74 -64
  261. package/dist/esm/shared/dynamodb/client.js +35 -0
  262. package/dist/{shared/dynamodb/idempotent-write.js → esm/shared/dynamodb/idempotent-write.d.ts} +172 -169
  263. package/dist/esm/shared/dynamodb/idempotent-write.js +153 -0
  264. package/dist/esm/shared/dynamodb/paginate.d.ts +111 -0
  265. package/dist/esm/shared/dynamodb/paginate.js +84 -0
  266. package/dist/esm/shared/dynamodb/partition-delete.d.ts +204 -0
  267. package/dist/esm/shared/dynamodb/partition-delete.js +171 -0
  268. package/dist/esm/shared/dynamodb/recency-index.d.ts +243 -0
  269. package/dist/esm/shared/dynamodb/recency-index.js +136 -0
  270. package/dist/esm/shared/dynamodb/retry.d.ts +317 -0
  271. package/dist/esm/shared/dynamodb/retry.js +180 -0
  272. package/dist/esm/shared/dynamodb/row-size.d.ts +33 -0
  273. package/dist/esm/shared/dynamodb/row-size.js +26 -0
  274. package/dist/{shared/dynamodb/table-schema.js → esm/shared/dynamodb/table-schema.d.ts} +57 -67
  275. package/dist/esm/shared/dynamodb/table-schema.js +43 -0
  276. package/dist/esm/shared/errors/base-error.d.ts +231 -0
  277. package/dist/esm/shared/errors/base-error.js +64 -0
  278. package/dist/esm/shared/errors/boundary.d.ts +86 -0
  279. package/dist/esm/shared/errors/boundary.js +54 -0
  280. package/dist/esm/shared/errors/classify.d.ts +206 -0
  281. package/dist/esm/shared/errors/classify.js +220 -0
  282. package/dist/{shared/errors/error-code.js → esm/shared/errors/error-code.d.ts} +39 -43
  283. package/dist/esm/shared/errors/error-code.js +24 -0
  284. package/dist/{shared/errors/errors.js → esm/shared/errors/errors.d.ts} +92 -98
  285. package/dist/esm/shared/errors/errors.js +110 -0
  286. package/dist/{shared/logging/logger.js → esm/shared/logging/logger.d.ts} +22 -52
  287. package/dist/esm/shared/logging/logger.js +25 -0
  288. package/dist/esm/shared/logging/redaction.d.ts +123 -0
  289. package/dist/esm/shared/logging/redaction.js +140 -0
  290. package/dist/{shared/logging/secret-patterns.js → esm/shared/logging/secret-patterns.d.ts} +46 -87
  291. package/dist/esm/shared/logging/secret-patterns.js +83 -0
  292. package/dist/{shared/logging/truncate.js → esm/shared/logging/truncate.d.ts} +6 -40
  293. package/dist/esm/shared/logging/truncate.js +25 -0
  294. package/dist/esm/shared/options.d.ts +100 -0
  295. package/dist/esm/shared/options.js +1 -0
  296. package/dist/{shared/ulid.js → esm/shared/ulid.d.ts} +4 -84
  297. package/dist/esm/shared/ulid.js +77 -0
  298. package/dist/{shared/validation/collaborators.js → esm/shared/validation/collaborators.d.ts} +37 -65
  299. package/dist/esm/shared/validation/collaborators.js +70 -0
  300. package/dist/{shared/validation/option-shape.js → esm/shared/validation/option-shape.d.ts} +14 -36
  301. package/dist/esm/shared/validation/option-shape.js +24 -0
  302. package/dist/esm/shared/validation/options.d.ts +145 -0
  303. package/dist/esm/shared/validation/options.js +156 -0
  304. package/dist/{shared/validation/primitives.js → esm/shared/validation/primitives.d.ts} +30 -125
  305. package/dist/esm/shared/validation/primitives.js +100 -0
  306. package/dist/esm/shared/validation/ttl.d.ts +94 -0
  307. package/dist/esm/shared/validation/ttl.js +46 -0
  308. package/dist/esm/store/actions/list-namespaces.d.ts +79 -0
  309. package/dist/esm/store/actions/list-namespaces.js +86 -0
  310. package/dist/esm/store/actions/put.d.ts +43 -0
  311. package/dist/esm/store/actions/put.js +46 -0
  312. package/dist/{store/actions/reconcile-vector-index.js → esm/store/actions/reconcile-vector-index.d.ts} +8 -16
  313. package/dist/esm/store/actions/reconcile-vector-index.js +10 -0
  314. package/dist/esm/store/actions/search.d.ts +38 -0
  315. package/dist/esm/store/actions/search.js +23 -0
  316. package/dist/esm/store/internal/batch-plan.d.ts +56 -0
  317. package/dist/esm/store/internal/batch-plan.js +28 -0
  318. package/dist/esm/store/internal/filter.d.ts +43 -0
  319. package/dist/esm/store/internal/filter.js +60 -0
  320. package/dist/esm/store/internal/get-item.d.ts +77 -0
  321. package/dist/esm/store/internal/get-item.js +54 -0
  322. package/dist/esm/store/internal/item-write.d.ts +270 -0
  323. package/dist/esm/store/internal/item-write.js +173 -0
  324. package/dist/esm/store/internal/parse.d.ts +230 -0
  325. package/dist/esm/store/internal/parse.js +169 -0
  326. package/dist/{store/internal/rows.js → esm/store/internal/rows.d.ts} +111 -199
  327. package/dist/esm/store/internal/rows.js +147 -0
  328. package/dist/esm/store/internal/semantic-search.d.ts +168 -0
  329. package/dist/esm/store/internal/semantic-search.js +200 -0
  330. package/dist/esm/store/internal/setup.d.ts +96 -0
  331. package/dist/esm/store/internal/setup.js +98 -0
  332. package/dist/esm/store/internal/table-search.d.ts +100 -0
  333. package/dist/esm/store/internal/table-search.js +119 -0
  334. package/dist/esm/store/internal/vector-index.d.ts +258 -0
  335. package/dist/esm/store/internal/vector-index.js +256 -0
  336. package/dist/{store/store.js → esm/store/store.d.ts} +99 -133
  337. package/dist/esm/store/store.js +93 -0
  338. package/dist/esm/store/types.d.ts +111 -0
  339. package/dist/esm/store/types.js +1 -0
  340. package/dist/esm/store/vector-backend.d.ts +104 -0
  341. package/dist/esm/store/vector-backend.js +1 -0
  342. package/package.json +50 -44
  343. package/dist/backfill/backfill.js +0 -393
  344. package/dist/checkpointer/actions/list.js +0 -142
  345. package/dist/checkpointer/actions/put.js +0 -195
  346. package/dist/checkpointer/internal/delta-history.js +0 -252
  347. package/dist/checkpointer/internal/parse.js +0 -372
  348. package/dist/checkpointer/internal/pending-writes.js +0 -588
  349. package/dist/checkpointer/internal/read.js +0 -264
  350. package/dist/checkpointer/internal/rows.js +0 -834
  351. package/dist/checkpointer/internal/setup.js +0 -72
  352. package/dist/checkpointer/types.js +0 -12
  353. package/dist/factory/factory.js +0 -266
  354. package/dist/factory/types.js +0 -10
  355. package/dist/history/actions/get-messages.js +0 -141
  356. package/dist/history/actions/list-sessions.js +0 -156
  357. package/dist/history/internal/append.js +0 -500
  358. package/dist/history/internal/message-read.js +0 -204
  359. package/dist/history/internal/parse.js +0 -252
  360. package/dist/history/internal/session.js +0 -628
  361. package/dist/history/internal/setup.js +0 -106
  362. package/dist/history/types.js +0 -12
  363. package/dist/index.js +0 -51
  364. package/dist/shared/adapter.js +0 -143
  365. package/dist/shared/codec/codec.js +0 -441
  366. package/dist/shared/codec/compression.js +0 -89
  367. package/dist/shared/codec/json-serde.js +0 -191
  368. package/dist/shared/codec/s3/client-types.js +0 -26
  369. package/dist/shared/codec/s3/client.js +0 -97
  370. package/dist/shared/codec/s3/lifecycle.js +0 -355
  371. package/dist/shared/codec/s3/offloader.js +0 -658
  372. package/dist/shared/dynamodb/batch-write.js +0 -173
  373. package/dist/shared/dynamodb/paginate.js +0 -188
  374. package/dist/shared/dynamodb/partition-delete.js +0 -340
  375. package/dist/shared/dynamodb/recency-index.js +0 -377
  376. package/dist/shared/dynamodb/retry.js +0 -463
  377. package/dist/shared/errors/base-error.js +0 -174
  378. package/dist/shared/errors/boundary.js +0 -143
  379. package/dist/shared/errors/classify.d.ts +0 -97
  380. package/dist/shared/errors/classify.js +0 -257
  381. package/dist/shared/logging/redaction.js +0 -316
  382. package/dist/shared/options.js +0 -11
  383. package/dist/shared/validation/options.js +0 -328
  384. package/dist/shared/validation/ttl.js +0 -132
  385. package/dist/store/actions/list-namespaces.js +0 -197
  386. package/dist/store/actions/put.js +0 -78
  387. package/dist/store/actions/search.js +0 -66
  388. package/dist/store/internal/batch-plan.d.ts +0 -26
  389. package/dist/store/internal/batch-plan.js +0 -109
  390. package/dist/store/internal/filter.js +0 -137
  391. package/dist/store/internal/get-item.d.ts +0 -45
  392. package/dist/store/internal/get-item.js +0 -115
  393. package/dist/store/internal/item-write.js +0 -463
  394. package/dist/store/internal/parse.js +0 -350
  395. package/dist/store/internal/semantic-search.js +0 -389
  396. package/dist/store/internal/setup.js +0 -223
  397. package/dist/store/internal/table-search.js +0 -213
  398. package/dist/store/internal/vector-index.js +0 -546
  399. package/dist/store/types.js +0 -15
  400. package/dist/store/vector-backend.js +0 -17
  401. /package/dist/{shared → cjs/shared}/clock.d.ts +0 -0
  402. /package/dist/{shared → cjs/shared}/codec/json-serde.d.ts +0 -0
  403. /package/dist/{shared → cjs/shared}/concurrency.d.ts +0 -0
  404. /package/dist/{shared → cjs/shared}/dynamodb/cancellation.d.ts +0 -0
  405. /package/dist/{shared → cjs/shared}/logging/logger.d.ts +0 -0
  406. /package/dist/{shared → cjs/shared}/logging/truncate.d.ts +0 -0
  407. /package/dist/{shared → cjs/shared}/ulid.d.ts +0 -0
  408. /package/dist/{shared → cjs/shared}/validation/primitives.d.ts +0 -0
  409. /package/dist/{store → cjs/store}/vector-backend.d.ts +0 -0
@@ -1,143 +0,0 @@
1
- "use strict";
2
- /**
3
- * Hides what crosses the public boundary.
4
- *
5
- * Only this package's own error leaves a public method (record 13): an error of
6
- * its own passes through with the operation named, and anything else — an SDK
7
- * failure, a caller's thrown value — is classified and wrapped with its cause
8
- * attached and its text redacted.
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.toPublicError = toPublicError;
12
- exports.guardPublic = guardPublic;
13
- exports.guardPublicIterable = guardPublicIterable;
14
- exports.wrapForeignError = wrapForeignError;
15
- const secret_patterns_1 = require("../logging/secret-patterns");
16
- const truncate_1 = require("../logging/truncate");
17
- const base_error_1 = require("./base-error");
18
- const classify_1 = require("./classify");
19
- const error_code_1 = require("./error-code");
20
- /**
21
- * Normalise anything escaping a public method into the library's error model.
22
- *
23
- * Accepts: anything a `catch` produced — an `Error`, or a value that is not one
24
- * (`toError` settles that first).
25
- *
26
- * Returns: a branded library error unchanged, since its code was assigned
27
- * closer to the failure and wins; anything else wrapped by
28
- * {@link wrapForeignError}, with the code the classifier assigns.
29
- *
30
- * Throws: nothing. It runs inside a `catch`, where throwing would discard the
31
- * failure being reported and replace it with its own.
32
- */
33
- function toPublicError(error, operation) {
34
- const normalized = (0, base_error_1.toError)(error);
35
- return (0, base_error_1.isDynamoDBLangGraphError)(normalized)
36
- ? normalized
37
- : wrapForeignError(normalized, operation);
38
- }
39
- /**
40
- * Run a public operation so that every rejection is a library error.
41
- *
42
- * Accepts: `operation` — the public method's name, which the wrapped error
43
- * carries. `fn` — the work.
44
- *
45
- * Returns: whatever `fn` resolves to, untouched.
46
- *
47
- * Throws: a library error, always. Applied once, at each adapter class method,
48
- * so internal code can keep rethrowing SDK errors verbatim — the retry
49
- * classifier depends on their shape, and wrapping them early would blind it.
50
- */
51
- async function guardPublic(operation, fn) {
52
- try {
53
- return await fn();
54
- }
55
- catch (error) {
56
- throw toPublicError(error, operation);
57
- }
58
- }
59
- /**
60
- * The same guard for a streaming result.
61
- *
62
- * Accepts: `operation` — the public method's name. `source` — the generator to
63
- * relay.
64
- *
65
- * Returns: a generator yielding the source's items untouched. A consumer that
66
- * stops early still closes the source, so an abandoned listing stops reading
67
- * rather than paging on in the background.
68
- *
69
- * Throws: a library error, always — including for a failure raised
70
- * mid-iteration, which is the case a `try` around the loop body would miss.
71
- */
72
- async function* guardPublicIterable(operation, source) {
73
- try {
74
- for await (const item of source)
75
- yield item;
76
- }
77
- catch (error) {
78
- throw toPublicError(error, operation);
79
- }
80
- }
81
- /** How far {@link classifiableCause} walks a cause chain before giving up. */
82
- const MAX_CAUSE_DEPTH = 32;
83
- /**
84
- * The node in `error`'s own cause chain — `error` itself, then its `cause`,
85
- * then that error's own `cause`, and so on — that {@link classifyAwsError}
86
- * does not answer `UNEXPECTED_ERROR` for.
87
- *
88
- * Accepts: `error` — the outermost foreign failure, already normalised by
89
- * {@link toError}.
90
- *
91
- * Returns: the first node the classifier places under an AWS or network code,
92
- * so a caller's own error wrapping a modeled SDK exception, or an SDK error
93
- * whose own `cause` is a raw transport failure, still classifies on the
94
- * AWS/network failure underneath rather than losing it one level up — the
95
- * same failure the retry layer's cause-chain walk (`isRetryableError` in
96
- * `shared/dynamodb/retry.ts`) already sees. `error` itself when
97
- * nothing in its chain classifies either. The walk gives up after
98
- * {@link MAX_CAUSE_DEPTH} nodes, and a cycle in the chain stops it rather than
99
- * looping, exactly as that other walk does.
100
- *
101
- * Throws: nothing, for any value {@link toError} can produce.
102
- */
103
- function classifiableCause(error) {
104
- const seen = new WeakSet();
105
- let node = error;
106
- for (let depth = 0; depth <= MAX_CAUSE_DEPTH; depth += 1) {
107
- if ((0, classify_1.classifyAwsError)(node) !== error_code_1.ErrorCode.UNEXPECTED_ERROR)
108
- return node;
109
- if (typeof node !== 'object' || node === null || seen.has(node))
110
- break;
111
- seen.add(node);
112
- const next = node.cause;
113
- if (next === undefined)
114
- break;
115
- node = next;
116
- }
117
- return error;
118
- }
119
- /**
120
- * A failure from below this library, as one of its errors.
121
- *
122
- * Accepts: `cause` — whatever a `catch` bound: an AWS SDK error, a transport
123
- * error, or what a `VectorBackend`, `Embeddings`, `serde` or `MultiSessionHistory`
124
- * threw. `operation` — the public method it surfaced through.
125
- *
126
- * Returns: an error whose code is {@link classifyAwsError}'s answer for
127
- * {@link classifiableCause} of the normalised `cause` — so an AWS or network
128
- * failure found down the cause chain still earns its own code rather than
129
- * `UNEXPECTED_ERROR`. Its context names `operation` and — for whichever node
130
- * was classified — `awsErrorName`, `requestId` and `httpStatusCode`. Its
131
- * `cause` is the original, normalised through {@link toError}, kept whole
132
- * regardless of which node down the chain supplied the code. The message
133
- * quotes the cause's own name cut at the log cap and its own text redacted
134
- * and cut at the relay cap, because `err.message` reaches applications that
135
- * print it without a redacting logger.
136
- *
137
- * Throws: nothing, for any value.
138
- */
139
- function wrapForeignError(cause, operation) {
140
- const below = (0, base_error_1.toError)(cause);
141
- const classifiable = classifiableCause(below);
142
- return new base_error_1.DynamoDBLangGraphError(`${operation}: ${(0, truncate_1.truncateForLog)(below.name)}: ${(0, secret_patterns_1.redactedMessage)(below)}`, (0, classify_1.classifyAwsError)(classifiable), { operation, ...(0, classify_1.awsDiagnostics)(classifiable) }, below);
143
- }
@@ -1,97 +0,0 @@
1
- /**
2
- * Hides which AWS failures are the same failure.
3
- *
4
- * An SDK error arrives as a name, an HTTP status, a Node network `code` or —
5
- * for a cancelled transaction — a list of per-item reasons, and several of
6
- * those arrivals mean one thing to a caller deciding what to do. Their mapping
7
- * to one `ErrorCode`, and the retry layer's default list of transient names,
8
- * come from one table here (record 19), so no call site compares an AWS
9
- * exception name of its own.
10
- */
11
- import type { ErrorContext } from './base-error';
12
- import { ErrorCode } from './error-code';
13
- /**
14
- * The Node.js system error codes the SDK's own retry strategy treats as
15
- * transient regardless of name (`@smithy/core` retry `NODEJS_TIMEOUT_ERROR_CODES`
16
- * and `NODEJS_NETWORK_ERROR_CODES`). Matched on the error's own `code`.
17
- */
18
- export declare const TRANSIENT_NETWORK_ERROR_CODES: readonly string[];
19
- /**
20
- * HTTP statuses the SDK retries regardless of name: throttling (429) and the
21
- * transient server statuses (`@smithy/core` retry `TRANSIENT_ERROR_STATUS_CODES`).
22
- * They classify an error the SDK could not map to a modeled exception, which
23
- * arrives as `name: 'Unknown'` with only its status.
24
- */
25
- export declare const TRANSIENT_HTTP_STATUSES: readonly number[];
26
- /**
27
- * AWS error name to code. Each name is declared by the installed
28
- * `@aws-sdk/client-dynamodb` or `@aws-sdk/client-s3`, or documented on a page
29
- * `test/static/aws-error-names.test.ts` cites; that test fails on any other.
30
- */
31
- export declare const AWS_ERROR_CODES: Readonly<Record<string, ErrorCode>>;
32
- /**
33
- * The retry layer's default tokens: every name {@link AWS_ERROR_CODES} maps to
34
- * a retryable code, and the network codes. Derived rather than listed, so the
35
- * retry layer and the code a caller sees share one list of transient names.
36
- * They differ at two edges: the retry layer also retries on the SDK's
37
- * `$retryable` trait, which {@link classifyAwsError} does not read, and it
38
- * walks the cause chain matching `errno` and `syscall` too, where the
39
- * classifier reads one error's `name`, `code` and status.
40
- */
41
- export declare const DEFAULT_RETRYABLE_ERRORS: readonly string[];
42
- /**
43
- * The code a failure that is not one of this library's own belongs to.
44
- *
45
- * Accepts: anything a `catch` can bind — an SDK error, a transport error, a
46
- * value from caller-supplied code, `null`, a string.
47
- *
48
- * Returns: a transaction cancellation's code from its reasons (a sole
49
- * `ConditionalCheckFailed` cause is `CONDITION_CONFLICT`; all-transient causes
50
- * are `THROTTLED` or `CONTENTION`); otherwise the table's code for the error's
51
- * own `name`; otherwise `SERVICE_UNAVAILABLE` for a transient network `code`;
52
- * otherwise by HTTP status — 412 `CONDITION_CONFLICT`, 429 `THROTTLED`,
53
- * 500/502/503/504 `SERVICE_UNAVAILABLE`; otherwise `AWS_REQUEST_FAILED` for an
54
- * AWS-shaped error and `UNEXPECTED_ERROR` for anything else. Only the error's
55
- * own fields are read, never its `cause`.
56
- *
57
- * Throws: nothing, for any value. It runs inside `catch` blocks.
58
- */
59
- export declare function classifyAwsError(error: Error): ErrorCode;
60
- /**
61
- * The fields an operator needs first, lifted off an AWS-shaped error.
62
- *
63
- * Accepts: anything a `catch` can bind.
64
- *
65
- * Returns: `awsErrorName`, `requestId` and `httpStatusCode`, each only when
66
- * present and well-typed, for an error carrying `$metadata` or a name the table
67
- * knows or that ends in `Exception`; `{}` for anything else — a bare network
68
- * failure included, since it may be a caller's own connection rather than AWS's.
69
- *
70
- * Throws: nothing, for any value.
71
- */
72
- export declare function awsDiagnostics(error: Error): Pick<ErrorContext, 'awsErrorName' | 'requestId' | 'httpStatusCode'>;
73
- /**
74
- * Whether an S3 read failed because the object is gone.
75
- *
76
- * Accepts: anything a `catch` can bind.
77
- *
78
- * Returns: true for `NoSuchKey` only. `NOT_FOUND` also covers a missing
79
- * bucket, which is a configuration fault; reading it as a lost payload would
80
- * write off data that is still there.
81
- *
82
- * Throws: nothing, for any value.
83
- */
84
- export declare function isMissingObject(error: Error): boolean;
85
- /**
86
- * Whether reading a bucket's lifecycle configuration failed because the bucket
87
- * has none.
88
- *
89
- * Accepts: anything a `catch` can bind.
90
- *
91
- * Returns: true for `NoSuchLifecycleConfiguration` only. `NOT_FOUND` also
92
- * covers a missing bucket, table or object; reading one of those as "no rules
93
- * yet" would start a rule set for a bucket that is not there.
94
- *
95
- * Throws: nothing, for any value.
96
- */
97
- export declare function isMissingLifecycleConfiguration(error: Error): boolean;
@@ -1,257 +0,0 @@
1
- "use strict";
2
- /**
3
- * Hides which AWS failures are the same failure.
4
- *
5
- * An SDK error arrives as a name, an HTTP status, a Node network `code` or —
6
- * for a cancelled transaction — a list of per-item reasons, and several of
7
- * those arrivals mean one thing to a caller deciding what to do. Their mapping
8
- * to one `ErrorCode`, and the retry layer's default list of transient names,
9
- * come from one table here (record 19), so no call site compares an AWS
10
- * exception name of its own.
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.DEFAULT_RETRYABLE_ERRORS = exports.AWS_ERROR_CODES = exports.TRANSIENT_HTTP_STATUSES = exports.TRANSIENT_NETWORK_ERROR_CODES = void 0;
14
- exports.classifyAwsError = classifyAwsError;
15
- exports.awsDiagnostics = awsDiagnostics;
16
- exports.isMissingObject = isMissingObject;
17
- exports.isMissingLifecycleConfiguration = isMissingLifecycleConfiguration;
18
- const cancellation_1 = require("../dynamodb/cancellation");
19
- const error_code_1 = require("./error-code");
20
- /**
21
- * The Node.js system error codes the SDK's own retry strategy treats as
22
- * transient regardless of name (`@smithy/core` retry `NODEJS_TIMEOUT_ERROR_CODES`
23
- * and `NODEJS_NETWORK_ERROR_CODES`). Matched on the error's own `code`.
24
- */
25
- exports.TRANSIENT_NETWORK_ERROR_CODES = [
26
- 'ECONNRESET',
27
- 'ECONNREFUSED',
28
- 'EPIPE',
29
- 'ETIMEDOUT',
30
- 'EHOSTUNREACH',
31
- 'ENETUNREACH',
32
- 'ENOTFOUND',
33
- 'EAI_AGAIN',
34
- ];
35
- /**
36
- * HTTP statuses the SDK retries regardless of name: throttling (429) and the
37
- * transient server statuses (`@smithy/core` retry `TRANSIENT_ERROR_STATUS_CODES`).
38
- * They classify an error the SDK could not map to a modeled exception, which
39
- * arrives as `name: 'Unknown'` with only its status.
40
- */
41
- exports.TRANSIENT_HTTP_STATUSES = [429, 500, 502, 503, 504];
42
- /** The status S3 answers a failed `If-None-Match: *` precondition with. */
43
- const PRECONDITION_FAILED_STATUS = 412;
44
- const TRANSACTION_CANCELLED = 'TransactionCanceledException';
45
- /**
46
- * AWS error name to code. Each name is declared by the installed
47
- * `@aws-sdk/client-dynamodb` or `@aws-sdk/client-s3`, or documented on a page
48
- * `test/static/aws-error-names.test.ts` cites; that test fails on any other.
49
- */
50
- exports.AWS_ERROR_CODES = {
51
- ProvisionedThroughputExceededException: error_code_1.ErrorCode.THROTTLED,
52
- ThrottlingException: error_code_1.ErrorCode.THROTTLED,
53
- RequestLimitExceeded: error_code_1.ErrorCode.THROTTLED,
54
- SlowDown: error_code_1.ErrorCode.THROTTLED,
55
- InternalServerError: error_code_1.ErrorCode.SERVICE_UNAVAILABLE,
56
- InternalFailure: error_code_1.ErrorCode.SERVICE_UNAVAILABLE,
57
- ServiceUnavailable: error_code_1.ErrorCode.SERVICE_UNAVAILABLE,
58
- InternalError: error_code_1.ErrorCode.SERVICE_UNAVAILABLE,
59
- RequestTimeout: error_code_1.ErrorCode.SERVICE_UNAVAILABLE,
60
- RequestTimeoutException: error_code_1.ErrorCode.SERVICE_UNAVAILABLE,
61
- TimeoutError: error_code_1.ErrorCode.SERVICE_UNAVAILABLE,
62
- TransactionConflictException: error_code_1.ErrorCode.CONTENTION,
63
- TransactionInProgressException: error_code_1.ErrorCode.CONTENTION,
64
- ReplicatedWriteConflictException: error_code_1.ErrorCode.CONTENTION,
65
- /**
66
- * S3's `409` on a conditional write whose key was deleted between the check
67
- * and the write; the S3 User Guide's remedy on `PutObject` is to retry the
68
- * upload (*How to prevent object overwrites with conditional writes*,
69
- * "Conditional write behavior").
70
- */
71
- ConditionalRequestConflict: error_code_1.ErrorCode.CONTENTION,
72
- AccessDeniedException: error_code_1.ErrorCode.ACCESS_DENIED,
73
- AccessDenied: error_code_1.ErrorCode.ACCESS_DENIED,
74
- ExpiredTokenException: error_code_1.ErrorCode.ACCESS_DENIED,
75
- ExpiredToken: error_code_1.ErrorCode.ACCESS_DENIED,
76
- IncompleteSignature: error_code_1.ErrorCode.ACCESS_DENIED,
77
- IncompleteSignatureException: error_code_1.ErrorCode.ACCESS_DENIED,
78
- InvalidAccessKeyId: error_code_1.ErrorCode.ACCESS_DENIED,
79
- MissingAuthenticationTokenException: error_code_1.ErrorCode.ACCESS_DENIED,
80
- NotAuthorized: error_code_1.ErrorCode.ACCESS_DENIED,
81
- SignatureDoesNotMatch: error_code_1.ErrorCode.ACCESS_DENIED,
82
- UnrecognizedClientException: error_code_1.ErrorCode.ACCESS_DENIED,
83
- ResourceNotFoundException: error_code_1.ErrorCode.NOT_FOUND,
84
- NoSuchBucket: error_code_1.ErrorCode.NOT_FOUND,
85
- NoSuchKey: error_code_1.ErrorCode.NOT_FOUND,
86
- NoSuchLifecycleConfiguration: error_code_1.ErrorCode.NOT_FOUND,
87
- ValidationException: error_code_1.ErrorCode.AWS_REJECTED,
88
- ValidationError: error_code_1.ErrorCode.AWS_REJECTED,
89
- IdempotentParameterMismatchException: error_code_1.ErrorCode.AWS_REJECTED,
90
- MalformedHttpRequestException: error_code_1.ErrorCode.AWS_REJECTED,
91
- RequestEntityTooLargeException: error_code_1.ErrorCode.AWS_REJECTED,
92
- ConditionalCheckFailedException: error_code_1.ErrorCode.CONDITION_CONFLICT,
93
- PreconditionFailed: error_code_1.ErrorCode.CONDITION_CONFLICT,
94
- /** An item collection past 10 GB: neither a retry nor a changed request helps; an operator must act. */
95
- ItemCollectionSizeLimitExceededException: error_code_1.ErrorCode.AWS_REQUEST_FAILED,
96
- /** Endpoint discovery is not used by this package, so this is reported rather than acted on. */
97
- InvalidEndpointException: error_code_1.ErrorCode.AWS_REQUEST_FAILED,
98
- /** Its reasons are read first; this is the answer when they settle nothing. */
99
- TransactionCanceledException: error_code_1.ErrorCode.AWS_REQUEST_FAILED,
100
- /**
101
- * Read by name, not from the caller's signal: a collaborator — a
102
- * `vectorBackend`, `index.embeddings` — rejecting with an `AbortError` from
103
- * its own timeout is `ABORTED` too, even when the caller's signal never fired.
104
- */
105
- AbortError: error_code_1.ErrorCode.ABORTED,
106
- };
107
- /** The codes a caller retries after a backoff. */
108
- const RETRYABLE_CODES = [
109
- error_code_1.ErrorCode.THROTTLED,
110
- error_code_1.ErrorCode.SERVICE_UNAVAILABLE,
111
- error_code_1.ErrorCode.CONTENTION,
112
- ];
113
- /**
114
- * The retry layer's default tokens: every name {@link AWS_ERROR_CODES} maps to
115
- * a retryable code, and the network codes. Derived rather than listed, so the
116
- * retry layer and the code a caller sees share one list of transient names.
117
- * They differ at two edges: the retry layer also retries on the SDK's
118
- * `$retryable` trait, which {@link classifyAwsError} does not read, and it
119
- * walks the cause chain matching `errno` and `syscall` too, where the
120
- * classifier reads one error's `name`, `code` and status.
121
- */
122
- exports.DEFAULT_RETRYABLE_ERRORS = [
123
- ...Object.entries(exports.AWS_ERROR_CODES)
124
- .filter(([, code]) => RETRYABLE_CODES.includes(code))
125
- .map(([name]) => name),
126
- ...exports.TRANSIENT_NETWORK_ERROR_CODES,
127
- ];
128
- /** The table's code for `name`; `undefined` for any other value, never read through the prototype. */
129
- function declaredCodeOf(name) {
130
- return typeof name === 'string' && Object.hasOwn(exports.AWS_ERROR_CODES, name)
131
- ? exports.AWS_ERROR_CODES[name]
132
- : undefined;
133
- }
134
- /** The response's HTTP status, when the error carries well-typed `$metadata`. */
135
- function statusOf(fields) {
136
- const metadata = fields.$metadata;
137
- return typeof metadata === 'object' &&
138
- metadata !== null &&
139
- typeof metadata.httpStatusCode === 'number'
140
- ? metadata.httpStatusCode
141
- : undefined;
142
- }
143
- /** Whether the error carries the SDK's `$metadata`, or a name the table knows or that ends in `Exception`. */
144
- function isAwsShaped(fields) {
145
- if (typeof fields.$metadata === 'object' && fields.$metadata !== null)
146
- return true;
147
- const { name } = fields;
148
- return (typeof name === 'string' && (declaredCodeOf(name) !== undefined || name.endsWith('Exception')));
149
- }
150
- /** The code of a cancelled transaction, read from its reasons. */
151
- function cancellationCode(error) {
152
- if ((0, cancellation_1.conditionalCheckFailure)(error) !== undefined)
153
- return error_code_1.ErrorCode.CONDITION_CONFLICT;
154
- if ((0, cancellation_1.transientCancellation)(error) === true) {
155
- return (0, cancellation_1.throttledCancellation)(error) ? error_code_1.ErrorCode.THROTTLED : error_code_1.ErrorCode.CONTENTION;
156
- }
157
- return exports.AWS_ERROR_CODES[TRANSACTION_CANCELLED];
158
- }
159
- /**
160
- * The code a failure that is not one of this library's own belongs to.
161
- *
162
- * Accepts: anything a `catch` can bind — an SDK error, a transport error, a
163
- * value from caller-supplied code, `null`, a string.
164
- *
165
- * Returns: a transaction cancellation's code from its reasons (a sole
166
- * `ConditionalCheckFailed` cause is `CONDITION_CONFLICT`; all-transient causes
167
- * are `THROTTLED` or `CONTENTION`); otherwise the table's code for the error's
168
- * own `name`; otherwise `SERVICE_UNAVAILABLE` for a transient network `code`;
169
- * otherwise by HTTP status — 412 `CONDITION_CONFLICT`, 429 `THROTTLED`,
170
- * 500/502/503/504 `SERVICE_UNAVAILABLE`; otherwise `AWS_REQUEST_FAILED` for an
171
- * AWS-shaped error and `UNEXPECTED_ERROR` for anything else. Only the error's
172
- * own fields are read, never its `cause`.
173
- *
174
- * Throws: nothing, for any value. It runs inside `catch` blocks.
175
- */
176
- function classifyAwsError(error) {
177
- if (typeof error !== 'object' || error === null)
178
- return error_code_1.ErrorCode.UNEXPECTED_ERROR;
179
- const fields = error;
180
- if (fields.name === TRANSACTION_CANCELLED)
181
- return cancellationCode(error);
182
- const declared = declaredCodeOf(fields.name);
183
- if (declared !== undefined)
184
- return declared;
185
- if (typeof fields.code === 'string' && exports.TRANSIENT_NETWORK_ERROR_CODES.includes(fields.code)) {
186
- return error_code_1.ErrorCode.SERVICE_UNAVAILABLE;
187
- }
188
- const status = statusOf(fields);
189
- if (status === PRECONDITION_FAILED_STATUS)
190
- return error_code_1.ErrorCode.CONDITION_CONFLICT;
191
- if (status === 429)
192
- return error_code_1.ErrorCode.THROTTLED;
193
- if (status !== undefined && exports.TRANSIENT_HTTP_STATUSES.includes(status)) {
194
- return error_code_1.ErrorCode.SERVICE_UNAVAILABLE;
195
- }
196
- return isAwsShaped(fields) ? error_code_1.ErrorCode.AWS_REQUEST_FAILED : error_code_1.ErrorCode.UNEXPECTED_ERROR;
197
- }
198
- /**
199
- * The fields an operator needs first, lifted off an AWS-shaped error.
200
- *
201
- * Accepts: anything a `catch` can bind.
202
- *
203
- * Returns: `awsErrorName`, `requestId` and `httpStatusCode`, each only when
204
- * present and well-typed, for an error carrying `$metadata` or a name the table
205
- * knows or that ends in `Exception`; `{}` for anything else — a bare network
206
- * failure included, since it may be a caller's own connection rather than AWS's.
207
- *
208
- * Throws: nothing, for any value.
209
- */
210
- function awsDiagnostics(error) {
211
- if (typeof error !== 'object' || error === null)
212
- return {};
213
- const fields = error;
214
- if (!isAwsShaped(fields))
215
- return {};
216
- const out = {};
217
- if (typeof fields.name === 'string')
218
- out.awsErrorName = fields.name;
219
- const status = statusOf(fields);
220
- if (status !== undefined)
221
- out.httpStatusCode = status;
222
- const requestId = fields.$metadata?.requestId;
223
- if (typeof requestId === 'string')
224
- out.requestId = requestId;
225
- return out;
226
- }
227
- /**
228
- * Whether an S3 read failed because the object is gone.
229
- *
230
- * Accepts: anything a `catch` can bind.
231
- *
232
- * Returns: true for `NoSuchKey` only. `NOT_FOUND` also covers a missing
233
- * bucket, which is a configuration fault; reading it as a lost payload would
234
- * write off data that is still there.
235
- *
236
- * Throws: nothing, for any value.
237
- */
238
- function isMissingObject(error) {
239
- return (typeof error === 'object' && error !== null && error.name === 'NoSuchKey');
240
- }
241
- /**
242
- * Whether reading a bucket's lifecycle configuration failed because the bucket
243
- * has none.
244
- *
245
- * Accepts: anything a `catch` can bind.
246
- *
247
- * Returns: true for `NoSuchLifecycleConfiguration` only. `NOT_FOUND` also
248
- * covers a missing bucket, table or object; reading one of those as "no rules
249
- * yet" would start a rule set for a bucket that is not there.
250
- *
251
- * Throws: nothing, for any value.
252
- */
253
- function isMissingLifecycleConfiguration(error) {
254
- return (typeof error === 'object' &&
255
- error !== null &&
256
- error.name === 'NoSuchLifecycleConfiguration');
257
- }