effect 4.0.7 → 4.1.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 (679) hide show
  1. package/README.md +1 -1
  2. package/dist/BigDecimal.d.ts.map +1 -1
  3. package/dist/BigDecimal.js +3 -0
  4. package/dist/BigDecimal.js.map +1 -1
  5. package/dist/Channel.d.ts +12 -6
  6. package/dist/Channel.d.ts.map +1 -1
  7. package/dist/Channel.js +9 -3
  8. package/dist/Channel.js.map +1 -1
  9. package/dist/Config.d.ts +7 -1
  10. package/dist/Config.d.ts.map +1 -1
  11. package/dist/Config.js.map +1 -1
  12. package/dist/Context.d.ts +18 -1
  13. package/dist/Context.d.ts.map +1 -1
  14. package/dist/Context.js +27 -8
  15. package/dist/Context.js.map +1 -1
  16. package/dist/Cron.d.ts +81 -11
  17. package/dist/Cron.d.ts.map +1 -1
  18. package/dist/Cron.js +101 -26
  19. package/dist/Cron.js.map +1 -1
  20. package/dist/Duration.d.ts +78 -0
  21. package/dist/Duration.d.ts.map +1 -1
  22. package/dist/Duration.js +123 -0
  23. package/dist/Duration.js.map +1 -1
  24. package/dist/Effect.d.ts +164 -7
  25. package/dist/Effect.d.ts.map +1 -1
  26. package/dist/Effect.js +11 -1
  27. package/dist/Effect.js.map +1 -1
  28. package/dist/FileSystem.d.ts +59 -4
  29. package/dist/FileSystem.d.ts.map +1 -1
  30. package/dist/FileSystem.js +9 -2
  31. package/dist/FileSystem.js.map +1 -1
  32. package/dist/Glob.d.ts +165 -0
  33. package/dist/Glob.d.ts.map +1 -0
  34. package/dist/Glob.js +127 -0
  35. package/dist/Glob.js.map +1 -0
  36. package/dist/Match.d.ts +86 -0
  37. package/dist/Match.d.ts.map +1 -1
  38. package/dist/Match.js +72 -0
  39. package/dist/Match.js.map +1 -1
  40. package/dist/Pool.d.ts +51 -0
  41. package/dist/Pool.d.ts.map +1 -1
  42. package/dist/Pool.js +59 -9
  43. package/dist/Pool.js.map +1 -1
  44. package/dist/Random.d.ts.map +1 -1
  45. package/dist/Random.js +3 -3
  46. package/dist/Random.js.map +1 -1
  47. package/dist/RcMap.d.ts.map +1 -1
  48. package/dist/RcMap.js +8 -2
  49. package/dist/RcMap.js.map +1 -1
  50. package/dist/Schedule.d.ts +18 -1
  51. package/dist/Schedule.d.ts.map +1 -1
  52. package/dist/Schedule.js +7 -2
  53. package/dist/Schedule.js.map +1 -1
  54. package/dist/Schema.d.ts +666 -41
  55. package/dist/Schema.d.ts.map +1 -1
  56. package/dist/Schema.js +650 -0
  57. package/dist/Schema.js.map +1 -1
  58. package/dist/SchemaGetter.d.ts +6 -1
  59. package/dist/SchemaGetter.d.ts.map +1 -1
  60. package/dist/SchemaGetter.js +22 -11
  61. package/dist/SchemaGetter.js.map +1 -1
  62. package/dist/SchemaRepresentation.d.ts +14 -0
  63. package/dist/SchemaRepresentation.d.ts.map +1 -1
  64. package/dist/SchemaRepresentation.js +16 -0
  65. package/dist/SchemaRepresentation.js.map +1 -1
  66. package/dist/SchemaTransformation.d.ts +8 -3
  67. package/dist/SchemaTransformation.d.ts.map +1 -1
  68. package/dist/SchemaTransformation.js +6 -3
  69. package/dist/SchemaTransformation.js.map +1 -1
  70. package/dist/ScopedCache.d.ts.map +1 -1
  71. package/dist/ScopedCache.js +5 -7
  72. package/dist/ScopedCache.js.map +1 -1
  73. package/dist/Semaphore.d.ts +130 -0
  74. package/dist/Semaphore.d.ts.map +1 -1
  75. package/dist/Semaphore.js +40 -0
  76. package/dist/Semaphore.js.map +1 -1
  77. package/dist/Stream.d.ts +13 -4
  78. package/dist/Stream.d.ts.map +1 -1
  79. package/dist/Stream.js +9 -0
  80. package/dist/Stream.js.map +1 -1
  81. package/dist/Terminal.d.ts +18 -1
  82. package/dist/Terminal.d.ts.map +1 -1
  83. package/dist/Terminal.js +1 -1
  84. package/dist/Terminal.js.map +1 -1
  85. package/dist/ai/AiError.d.ts +43 -116
  86. package/dist/ai/AiError.d.ts.map +1 -1
  87. package/dist/ai/AiError.js +53 -72
  88. package/dist/ai/AiError.js.map +1 -1
  89. package/dist/ai/Decision.d.ts +196 -15
  90. package/dist/ai/Decision.d.ts.map +1 -1
  91. package/dist/ai/Decision.js +130 -0
  92. package/dist/ai/Decision.js.map +1 -1
  93. package/dist/ai/DecisionModel.d.ts +54 -13
  94. package/dist/ai/DecisionModel.d.ts.map +1 -1
  95. package/dist/ai/DecisionModel.js +123 -12
  96. package/dist/ai/DecisionModel.js.map +1 -1
  97. package/dist/ai/McpServer.d.ts +630 -29
  98. package/dist/ai/McpServer.d.ts.map +1 -1
  99. package/dist/ai/McpServer.js +562 -116
  100. package/dist/ai/McpServer.js.map +1 -1
  101. package/dist/ai/McpTest.d.ts +130 -0
  102. package/dist/ai/McpTest.d.ts.map +1 -0
  103. package/dist/ai/McpTest.js +237 -0
  104. package/dist/ai/McpTest.js.map +1 -0
  105. package/dist/ai/Response.d.ts +1 -25
  106. package/dist/ai/Response.d.ts.map +1 -1
  107. package/dist/ai/Response.js +1 -10
  108. package/dist/ai/Response.js.map +1 -1
  109. package/dist/ai/Tool.d.ts +19 -1
  110. package/dist/ai/Tool.d.ts.map +1 -1
  111. package/dist/ai/Tool.js.map +1 -1
  112. package/dist/ai/index.d.ts +5 -0
  113. package/dist/ai/index.d.ts.map +1 -1
  114. package/dist/ai/index.js +5 -0
  115. package/dist/ai/index.js.map +1 -1
  116. package/dist/ai/internal/mcpCore.js +17 -12
  117. package/dist/ai/internal/mcpCore.js.map +1 -1
  118. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +4 -5
  119. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  120. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +4 -5
  121. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  122. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +4 -5
  123. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  124. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +4 -5
  125. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  126. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +18 -10
  127. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  128. package/dist/ai/internal/mcpProtocol.js +13 -0
  129. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  130. package/dist/ai/internal/mcpRuntime.js +5 -3
  131. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  132. package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
  133. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  134. package/dist/cli/Argument.d.ts +6 -0
  135. package/dist/cli/Argument.d.ts.map +1 -1
  136. package/dist/cli/Argument.js +2 -0
  137. package/dist/cli/Argument.js.map +1 -1
  138. package/dist/cli/CliOutput.d.ts +65 -1
  139. package/dist/cli/CliOutput.d.ts.map +1 -1
  140. package/dist/cli/CliOutput.js +94 -37
  141. package/dist/cli/CliOutput.js.map +1 -1
  142. package/dist/cli/Command.d.ts +23 -0
  143. package/dist/cli/Command.d.ts.map +1 -1
  144. package/dist/cli/Command.js +8 -0
  145. package/dist/cli/Command.js.map +1 -1
  146. package/dist/cli/Flag.d.ts +107 -0
  147. package/dist/cli/Flag.d.ts.map +1 -1
  148. package/dist/cli/Flag.js +37 -0
  149. package/dist/cli/Flag.js.map +1 -1
  150. package/dist/cli/HelpDoc.d.ts +15 -1
  151. package/dist/cli/HelpDoc.d.ts.map +1 -1
  152. package/dist/cli/Param.d.ts +6 -0
  153. package/dist/cli/Param.d.ts.map +1 -1
  154. package/dist/cli/Param.js +2 -0
  155. package/dist/cli/Param.js.map +1 -1
  156. package/dist/cli/Primitive.d.ts +14 -0
  157. package/dist/cli/Primitive.d.ts.map +1 -1
  158. package/dist/cli/Primitive.js +15 -1
  159. package/dist/cli/Primitive.js.map +1 -1
  160. package/dist/cli/Prompt.d.ts +1 -0
  161. package/dist/cli/Prompt.d.ts.map +1 -1
  162. package/dist/cli/Prompt.js +1 -0
  163. package/dist/cli/Prompt.js.map +1 -1
  164. package/dist/cli/internal/help.d.ts.map +1 -1
  165. package/dist/cli/internal/help.js +17 -10
  166. package/dist/cli/internal/help.js.map +1 -1
  167. package/dist/cluster/Sharding.d.ts.map +1 -1
  168. package/dist/cluster/Sharding.js +90 -28
  169. package/dist/cluster/Sharding.js.map +1 -1
  170. package/dist/cluster/ShardingConfig.d.ts +72 -6
  171. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  172. package/dist/cluster/ShardingConfig.js +4 -0
  173. package/dist/cluster/ShardingConfig.js.map +1 -1
  174. package/dist/cluster/SingleRunner.d.ts +3 -3
  175. package/dist/cluster/SingleRunner.d.ts.map +1 -1
  176. package/dist/cluster/SingleRunner.js +1 -1
  177. package/dist/cluster/SqlMessageStorage.d.ts +37 -6
  178. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  179. package/dist/cluster/SqlMessageStorage.js +34 -7
  180. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  181. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  182. package/dist/cluster/SqlRunnerStorage.js +23 -8
  183. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  184. package/dist/crypto/Aead.d.ts +322 -0
  185. package/dist/crypto/Aead.d.ts.map +1 -0
  186. package/dist/crypto/Aead.js +331 -0
  187. package/dist/crypto/Aead.js.map +1 -0
  188. package/dist/crypto/Cipher.d.ts +235 -0
  189. package/dist/crypto/Cipher.d.ts.map +1 -0
  190. package/dist/crypto/Cipher.js +233 -0
  191. package/dist/crypto/Cipher.js.map +1 -0
  192. package/dist/crypto/CryptoError.d.ts +212 -0
  193. package/dist/crypto/CryptoError.d.ts.map +1 -0
  194. package/dist/crypto/CryptoError.js +202 -0
  195. package/dist/crypto/CryptoError.js.map +1 -0
  196. package/dist/crypto/Digest.d.ts +143 -0
  197. package/dist/crypto/Digest.d.ts.map +1 -0
  198. package/dist/crypto/Digest.js +146 -0
  199. package/dist/crypto/Digest.js.map +1 -0
  200. package/dist/crypto/Kdf.d.ts +220 -0
  201. package/dist/crypto/Kdf.d.ts.map +1 -0
  202. package/dist/crypto/Kdf.js +212 -0
  203. package/dist/crypto/Kdf.js.map +1 -0
  204. package/dist/crypto/KeyAgreement.d.ts +323 -0
  205. package/dist/crypto/KeyAgreement.d.ts.map +1 -0
  206. package/dist/crypto/KeyAgreement.js +303 -0
  207. package/dist/crypto/KeyAgreement.js.map +1 -0
  208. package/dist/crypto/KeyFormat.d.ts +309 -0
  209. package/dist/crypto/KeyFormat.d.ts.map +1 -0
  210. package/dist/crypto/KeyFormat.js +556 -0
  211. package/dist/crypto/KeyFormat.js.map +1 -0
  212. package/dist/crypto/KeyWrap.d.ts +389 -0
  213. package/dist/crypto/KeyWrap.d.ts.map +1 -0
  214. package/dist/crypto/KeyWrap.js +381 -0
  215. package/dist/crypto/KeyWrap.js.map +1 -0
  216. package/dist/crypto/Mac.d.ts +277 -0
  217. package/dist/crypto/Mac.d.ts.map +1 -0
  218. package/dist/crypto/Mac.js +288 -0
  219. package/dist/crypto/Mac.js.map +1 -0
  220. package/dist/crypto/SecureRandom.d.ts +340 -0
  221. package/dist/crypto/SecureRandom.d.ts.map +1 -0
  222. package/dist/crypto/SecureRandom.js +257 -0
  223. package/dist/crypto/SecureRandom.js.map +1 -0
  224. package/dist/crypto/Signature.d.ts +448 -0
  225. package/dist/crypto/Signature.d.ts.map +1 -0
  226. package/dist/crypto/Signature.js +484 -0
  227. package/dist/crypto/Signature.js.map +1 -0
  228. package/dist/crypto/WebCrypto.d.ts +61 -0
  229. package/dist/crypto/WebCrypto.d.ts.map +1 -0
  230. package/dist/crypto/WebCrypto.js +63 -0
  231. package/dist/crypto/WebCrypto.js.map +1 -0
  232. package/dist/crypto/index.d.ts +65 -0
  233. package/dist/crypto/index.d.ts.map +1 -0
  234. package/dist/crypto/index.js +66 -0
  235. package/dist/crypto/index.js.map +1 -0
  236. package/dist/crypto/internal/asymmetric.d.ts +2 -0
  237. package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
  238. package/dist/crypto/internal/asymmetric.js +210 -0
  239. package/dist/crypto/internal/asymmetric.js.map +1 -0
  240. package/dist/crypto/internal/chacha.d.ts +46 -0
  241. package/dist/crypto/internal/chacha.d.ts.map +1 -0
  242. package/dist/crypto/internal/chacha.js +885 -0
  243. package/dist/crypto/internal/chacha.js.map +1 -0
  244. package/dist/crypto/internal/der.d.ts +6 -0
  245. package/dist/crypto/internal/der.d.ts.map +1 -0
  246. package/dist/crypto/internal/der.js +86 -0
  247. package/dist/crypto/internal/der.js.map +1 -0
  248. package/dist/crypto/internal/digest.d.ts +2 -0
  249. package/dist/crypto/internal/digest.d.ts.map +1 -0
  250. package/dist/crypto/internal/digest.js +15 -0
  251. package/dist/crypto/internal/digest.js.map +1 -0
  252. package/dist/crypto/internal/key.d.ts +2 -0
  253. package/dist/crypto/internal/key.d.ts.map +1 -0
  254. package/dist/crypto/internal/key.js +170 -0
  255. package/dist/crypto/internal/key.js.map +1 -0
  256. package/dist/crypto/internal/md5.d.ts +39 -0
  257. package/dist/crypto/internal/md5.d.ts.map +1 -0
  258. package/dist/crypto/internal/md5.js +179 -0
  259. package/dist/crypto/internal/md5.js.map +1 -0
  260. package/dist/crypto/internal/webCrypto.d.ts +2 -0
  261. package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
  262. package/dist/crypto/internal/webCrypto.js +111 -0
  263. package/dist/crypto/internal/webCrypto.js.map +1 -0
  264. package/dist/encoding/Base64Url.d.ts.map +1 -1
  265. package/dist/encoding/Base64Url.js +3 -2
  266. package/dist/encoding/Base64Url.js.map +1 -1
  267. package/dist/encoding/Csv.d.ts +608 -0
  268. package/dist/encoding/Csv.d.ts.map +1 -0
  269. package/dist/encoding/Csv.js +718 -0
  270. package/dist/encoding/Csv.js.map +1 -0
  271. package/dist/encoding/Hex.d.ts +3 -2
  272. package/dist/encoding/Hex.d.ts.map +1 -1
  273. package/dist/encoding/Hex.js +3 -2
  274. package/dist/encoding/Hex.js.map +1 -1
  275. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  276. package/dist/encoding/SchemaBinary.js +42 -4
  277. package/dist/encoding/SchemaBinary.js.map +1 -1
  278. package/dist/encoding/Toml.d.ts +17 -3
  279. package/dist/encoding/Toml.d.ts.map +1 -1
  280. package/dist/encoding/Toml.js +104 -16
  281. package/dist/encoding/Toml.js.map +1 -1
  282. package/dist/encoding/Yaml.d.ts +8 -1
  283. package/dist/encoding/Yaml.d.ts.map +1 -1
  284. package/dist/encoding/Yaml.js +54 -18
  285. package/dist/encoding/Yaml.js.map +1 -1
  286. package/dist/encoding/index.d.ts +5 -0
  287. package/dist/encoding/index.d.ts.map +1 -1
  288. package/dist/encoding/index.js +5 -0
  289. package/dist/encoding/index.js.map +1 -1
  290. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  291. package/dist/eventlog/EventJournal.js +6 -3
  292. package/dist/eventlog/EventJournal.js.map +1 -1
  293. package/dist/eventlog/EventLog.d.ts +119 -4
  294. package/dist/eventlog/EventLog.d.ts.map +1 -1
  295. package/dist/eventlog/EventLog.js +200 -12
  296. package/dist/eventlog/EventLog.js.map +1 -1
  297. package/dist/eventlog/EventLogEncryption.d.ts +41 -4
  298. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  299. package/dist/eventlog/EventLogEncryption.js +83 -64
  300. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  301. package/dist/eventlog/EventLogMessage.d.ts +279 -0
  302. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  303. package/dist/eventlog/EventLogMessage.js +217 -1
  304. package/dist/eventlog/EventLogMessage.js.map +1 -1
  305. package/dist/eventlog/EventLogRemote.d.ts +200 -28
  306. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  307. package/dist/eventlog/EventLogRemote.js +186 -16
  308. package/dist/eventlog/EventLogRemote.js.map +1 -1
  309. package/dist/eventlog/EventLogServer.d.ts +3 -0
  310. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  311. package/dist/eventlog/EventLogServer.js +18 -10
  312. package/dist/eventlog/EventLogServer.js.map +1 -1
  313. package/dist/eventlog/EventLogServerEncrypted.d.ts +326 -5
  314. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  315. package/dist/eventlog/EventLogServerEncrypted.js +769 -14
  316. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  317. package/dist/eventlog/EventLogSessionAuth.d.ts +5 -3
  318. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  319. package/dist/eventlog/EventLogSessionAuth.js +41 -64
  320. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  321. package/dist/eventlog/EventRow.d.ts +4 -0
  322. package/dist/eventlog/EventRow.d.ts.map +1 -1
  323. package/dist/eventlog/EventRow.js +12 -2
  324. package/dist/eventlog/EventRow.js.map +1 -1
  325. package/dist/eventlog/SqlEventJournal.js +2 -2
  326. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  327. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
  328. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  329. package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
  330. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  331. package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
  332. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  333. package/dist/eventlog/internal/batches.d.ts +12 -0
  334. package/dist/eventlog/internal/batches.d.ts.map +1 -0
  335. package/dist/eventlog/internal/batches.js +26 -0
  336. package/dist/eventlog/internal/batches.js.map +1 -0
  337. package/dist/eventlog/internal/compaction.d.ts +38 -0
  338. package/dist/eventlog/internal/compaction.d.ts.map +1 -0
  339. package/dist/eventlog/internal/compaction.js +33 -0
  340. package/dist/eventlog/internal/compaction.js.map +1 -0
  341. package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
  342. package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  343. package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
  344. package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
  345. package/dist/eventlog/internal/remoteCompaction.js +76 -0
  346. package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
  347. package/dist/http/Cookies.d.ts +172 -0
  348. package/dist/http/Cookies.d.ts.map +1 -1
  349. package/dist/http/Cookies.js +143 -1
  350. package/dist/http/Cookies.js.map +1 -1
  351. package/dist/http/FetchHttpClient.d.ts +26 -2
  352. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  353. package/dist/http/FetchHttpClient.js +78 -15
  354. package/dist/http/FetchHttpClient.js.map +1 -1
  355. package/dist/http/HttpClient.d.ts +79 -8
  356. package/dist/http/HttpClient.d.ts.map +1 -1
  357. package/dist/http/HttpClient.js +65 -5
  358. package/dist/http/HttpClient.js.map +1 -1
  359. package/dist/http/HttpClientRequest.d.ts +9 -5
  360. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  361. package/dist/http/HttpClientRequest.js +2 -3
  362. package/dist/http/HttpClientRequest.js.map +1 -1
  363. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  364. package/dist/http/HttpClientResponse.js +3 -2
  365. package/dist/http/HttpClientResponse.js.map +1 -1
  366. package/dist/http/HttpMethod.d.ts +7 -1
  367. package/dist/http/HttpMethod.d.ts.map +1 -1
  368. package/dist/http/HttpMethod.js +3 -8
  369. package/dist/http/HttpMethod.js.map +1 -1
  370. package/dist/http/HttpServerRequest.d.ts +5 -2
  371. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  372. package/dist/http/HttpServerRequest.js +6 -17
  373. package/dist/http/HttpServerRequest.js.map +1 -1
  374. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  375. package/dist/http/HttpServerResponse.js +3 -2
  376. package/dist/http/HttpServerResponse.js.map +1 -1
  377. package/dist/http/HttpTraceContext.d.ts +2 -1
  378. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  379. package/dist/http/HttpTraceContext.js +7 -5
  380. package/dist/http/HttpTraceContext.js.map +1 -1
  381. package/dist/http/ProblemDetails.d.ts +96 -0
  382. package/dist/http/ProblemDetails.d.ts.map +1 -0
  383. package/dist/http/ProblemDetails.js +98 -0
  384. package/dist/http/ProblemDetails.js.map +1 -0
  385. package/dist/http/index.d.ts +5 -0
  386. package/dist/http/index.d.ts.map +1 -1
  387. package/dist/http/index.js +5 -0
  388. package/dist/http/index.js.map +1 -1
  389. package/dist/http/internal/decompression.js +3 -2
  390. package/dist/http/internal/decompression.js.map +1 -1
  391. package/dist/http/internal/urlParams.js +8 -0
  392. package/dist/http/internal/urlParams.js.map +1 -1
  393. package/dist/http-api/HttpApiBuilder.js +19 -5
  394. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  395. package/dist/http-api/HttpApiClient.d.ts +63 -0
  396. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  397. package/dist/http-api/HttpApiClient.js +51 -0
  398. package/dist/http-api/HttpApiClient.js.map +1 -1
  399. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  400. package/dist/http-api/HttpApiEndpoint.js +14 -5
  401. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  402. package/dist/http-api/HttpApiError.d.ts +185 -13
  403. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  404. package/dist/http-api/HttpApiError.js +128 -0
  405. package/dist/http-api/HttpApiError.js.map +1 -1
  406. package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
  407. package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
  408. package/dist/http-api/HttpApiMiddleware.js +85 -1
  409. package/dist/http-api/HttpApiMiddleware.js.map +1 -1
  410. package/dist/http-api/HttpApiSchema.d.ts +76 -14
  411. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  412. package/dist/http-api/HttpApiSchema.js +53 -0
  413. package/dist/http-api/HttpApiSchema.js.map +1 -1
  414. package/dist/index.d.ts +5 -5
  415. package/dist/index.d.ts.map +1 -1
  416. package/dist/index.js +5 -5
  417. package/dist/index.js.map +1 -1
  418. package/dist/internal/effect.js +25 -14
  419. package/dist/internal/effect.js.map +1 -1
  420. package/dist/internal/glob.d.ts +2 -0
  421. package/dist/internal/glob.d.ts.map +1 -0
  422. package/dist/internal/glob.js +630 -0
  423. package/dist/internal/glob.js.map +1 -0
  424. package/dist/internal/matcher.js +10 -0
  425. package/dist/internal/matcher.js.map +1 -1
  426. package/dist/internal/persistence.js +9 -0
  427. package/dist/internal/persistence.js.map +1 -1
  428. package/dist/internal/rcRef.js +4 -1
  429. package/dist/internal/rcRef.js.map +1 -1
  430. package/dist/internal/schema/toCodeDocument.js +6 -3
  431. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  432. package/dist/internal/trie.js +42 -13
  433. package/dist/internal/trie.js.map +1 -1
  434. package/dist/internal/ulid.js +41 -0
  435. package/dist/internal/ulid.js.map +1 -1
  436. package/dist/internal/uuid.js +52 -8
  437. package/dist/internal/uuid.js.map +1 -1
  438. package/dist/internal/version.js +1 -1
  439. package/dist/observability/Otlp.d.ts +15 -4
  440. package/dist/observability/Otlp.d.ts.map +1 -1
  441. package/dist/observability/Otlp.js +10 -0
  442. package/dist/observability/Otlp.js.map +1 -1
  443. package/dist/observability/OtlpResource.d.ts +7 -0
  444. package/dist/observability/OtlpResource.d.ts.map +1 -1
  445. package/dist/observability/OtlpResource.js +11 -1
  446. package/dist/observability/OtlpResource.js.map +1 -1
  447. package/dist/persistence/KeyValueStore.d.ts +47 -2
  448. package/dist/persistence/KeyValueStore.d.ts.map +1 -1
  449. package/dist/persistence/KeyValueStore.js +129 -18
  450. package/dist/persistence/KeyValueStore.js.map +1 -1
  451. package/dist/persistence/PersistedQueue.d.ts +9 -0
  452. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  453. package/dist/persistence/PersistedQueue.js +94 -52
  454. package/dist/persistence/PersistedQueue.js.map +1 -1
  455. package/dist/persistence/Persistence.d.ts +10 -4
  456. package/dist/persistence/Persistence.d.ts.map +1 -1
  457. package/dist/persistence/Persistence.js +18 -11
  458. package/dist/persistence/Persistence.js.map +1 -1
  459. package/dist/process/ChildProcess.d.ts +207 -67
  460. package/dist/process/ChildProcess.d.ts.map +1 -1
  461. package/dist/process/ChildProcess.js +56 -158
  462. package/dist/process/ChildProcess.js.map +1 -1
  463. package/dist/process/ChildProcessSpawner.d.ts +5 -0
  464. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  465. package/dist/process/ChildProcessSpawner.js.map +1 -1
  466. package/dist/process/CommandLine.d.ts +294 -0
  467. package/dist/process/CommandLine.d.ts.map +1 -0
  468. package/dist/process/CommandLine.js +481 -0
  469. package/dist/process/CommandLine.js.map +1 -0
  470. package/dist/process/index.d.ts +5 -0
  471. package/dist/process/index.d.ts.map +1 -1
  472. package/dist/process/index.js +5 -0
  473. package/dist/process/index.js.map +1 -1
  474. package/dist/reactivity/Atom.d.ts +2 -1
  475. package/dist/reactivity/Atom.d.ts.map +1 -1
  476. package/dist/reactivity/Atom.js +3 -4
  477. package/dist/reactivity/Atom.js.map +1 -1
  478. package/dist/reactivity/AtomRegistry.js.map +1 -1
  479. package/dist/rpc/RpcClient.d.ts +16 -1
  480. package/dist/rpc/RpcClient.d.ts.map +1 -1
  481. package/dist/rpc/RpcClient.js +50 -16
  482. package/dist/rpc/RpcClient.js.map +1 -1
  483. package/dist/rpc/RpcMessage.d.ts +10 -1
  484. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  485. package/dist/rpc/RpcMessage.js +1 -0
  486. package/dist/rpc/RpcMessage.js.map +1 -1
  487. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  488. package/dist/rpc/RpcSerialization.js +6 -0
  489. package/dist/rpc/RpcSerialization.js.map +1 -1
  490. package/dist/rpc/RpcServer.d.ts +31 -0
  491. package/dist/rpc/RpcServer.d.ts.map +1 -1
  492. package/dist/rpc/RpcServer.js +139 -66
  493. package/dist/rpc/RpcServer.js.map +1 -1
  494. package/dist/schema/Model.d.ts +14 -0
  495. package/dist/schema/Model.d.ts.map +1 -1
  496. package/dist/schema/Model.js +18 -3
  497. package/dist/schema/Model.js.map +1 -1
  498. package/dist/sql/Migrator.d.ts +0 -19
  499. package/dist/sql/Migrator.d.ts.map +1 -1
  500. package/dist/sql/Migrator.js +3 -48
  501. package/dist/sql/Migrator.js.map +1 -1
  502. package/dist/sql/MigratorFileSystem.d.ts +21 -0
  503. package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
  504. package/dist/sql/MigratorFileSystem.js +57 -0
  505. package/dist/sql/MigratorFileSystem.js.map +1 -0
  506. package/dist/sql/SqlClient.d.ts.map +1 -1
  507. package/dist/sql/SqlClient.js +5 -9
  508. package/dist/sql/SqlClient.js.map +1 -1
  509. package/dist/sql/Statement.d.ts +20 -6
  510. package/dist/sql/Statement.d.ts.map +1 -1
  511. package/dist/sql/Statement.js +0 -13
  512. package/dist/sql/Statement.js.map +1 -1
  513. package/dist/sql/index.js +1 -1
  514. package/dist/testing/index.d.ts +0 -5
  515. package/dist/testing/index.d.ts.map +1 -1
  516. package/dist/testing/index.js +0 -5
  517. package/dist/testing/index.js.map +1 -1
  518. package/dist/workflow/internal/crypto.js +9 -8
  519. package/dist/workflow/internal/crypto.js.map +1 -1
  520. package/package.json +3 -1
  521. package/src/BigDecimal.ts +3 -0
  522. package/src/Channel.ts +17 -11
  523. package/src/Config.ts +7 -1
  524. package/src/Context.ts +34 -10
  525. package/src/Cron.ts +178 -29
  526. package/src/Duration.ts +140 -0
  527. package/src/Effect.ts +914 -85
  528. package/src/FileSystem.ts +65 -4
  529. package/src/Glob.ts +205 -0
  530. package/src/Match.ts +127 -0
  531. package/src/Pool.ts +73 -15
  532. package/src/Random.ts +3 -3
  533. package/src/RcMap.ts +5 -1
  534. package/src/Schedule.ts +26 -3
  535. package/src/Schema.ts +1189 -62
  536. package/src/SchemaGetter.ts +27 -11
  537. package/src/SchemaRepresentation.ts +19 -0
  538. package/src/SchemaTransformation.ts +8 -3
  539. package/src/ScopedCache.ts +5 -9
  540. package/src/Semaphore.ts +141 -0
  541. package/src/Stream.ts +15 -6
  542. package/src/Terminal.ts +19 -1
  543. package/src/ai/AiError.ts +56 -80
  544. package/src/ai/Decision.ts +257 -6
  545. package/src/ai/DecisionModel.ts +171 -28
  546. package/src/ai/McpServer.ts +1269 -286
  547. package/src/ai/McpTest.ts +380 -0
  548. package/src/ai/Response.ts +2 -22
  549. package/src/ai/Tool.ts +27 -8
  550. package/src/ai/index.ts +6 -0
  551. package/src/ai/internal/mcpCore.ts +78 -44
  552. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +4 -7
  553. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +4 -7
  554. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +4 -7
  555. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +4 -7
  556. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +15 -10
  557. package/src/ai/internal/mcpProtocol.ts +29 -0
  558. package/src/ai/internal/mcpRuntime.ts +9 -5
  559. package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
  560. package/src/cli/Argument.ts +6 -0
  561. package/src/cli/CliOutput.ts +117 -49
  562. package/src/cli/Command.ts +23 -0
  563. package/src/cli/Flag.ts +107 -0
  564. package/src/cli/HelpDoc.ts +18 -1
  565. package/src/cli/Param.ts +6 -0
  566. package/src/cli/Primitive.ts +16 -1
  567. package/src/cli/Prompt.ts +1 -0
  568. package/src/cli/internal/help.ts +21 -9
  569. package/src/cluster/Sharding.ts +93 -26
  570. package/src/cluster/ShardingConfig.ts +41 -3
  571. package/src/cluster/SingleRunner.ts +3 -3
  572. package/src/cluster/SqlMessageStorage.ts +49 -17
  573. package/src/cluster/SqlRunnerStorage.ts +37 -27
  574. package/src/crypto/Aead.ts +517 -0
  575. package/src/crypto/Cipher.ts +326 -0
  576. package/src/crypto/CryptoError.ts +242 -0
  577. package/src/crypto/Digest.ts +167 -0
  578. package/src/crypto/Kdf.ts +315 -0
  579. package/src/crypto/KeyAgreement.ts +489 -0
  580. package/src/crypto/KeyFormat.ts +712 -0
  581. package/src/crypto/KeyWrap.ts +639 -0
  582. package/src/crypto/Mac.ts +386 -0
  583. package/src/crypto/SecureRandom.ts +459 -0
  584. package/src/crypto/Signature.ts +673 -0
  585. package/src/crypto/WebCrypto.ts +64 -0
  586. package/src/crypto/index.ts +78 -0
  587. package/src/crypto/internal/asymmetric.ts +329 -0
  588. package/src/crypto/internal/chacha.ts +1088 -0
  589. package/src/crypto/internal/der.ts +110 -0
  590. package/src/crypto/internal/digest.ts +16 -0
  591. package/src/crypto/internal/key.ts +235 -0
  592. package/src/crypto/internal/md5.ts +170 -0
  593. package/src/crypto/internal/webCrypto.ts +150 -0
  594. package/src/encoding/Base64Url.ts +5 -2
  595. package/src/encoding/Csv.ts +1298 -0
  596. package/src/encoding/Hex.ts +3 -2
  597. package/src/encoding/SchemaBinary.ts +40 -4
  598. package/src/encoding/Toml.ts +85 -20
  599. package/src/encoding/Yaml.ts +61 -18
  600. package/src/encoding/index.ts +6 -0
  601. package/src/eventlog/EventJournal.ts +4 -3
  602. package/src/eventlog/EventLog.ts +340 -15
  603. package/src/eventlog/EventLogEncryption.ts +118 -110
  604. package/src/eventlog/EventLogMessage.ts +273 -1
  605. package/src/eventlog/EventLogRemote.ts +367 -23
  606. package/src/eventlog/EventLogServer.ts +23 -8
  607. package/src/eventlog/EventLogServerEncrypted.ts +1130 -67
  608. package/src/eventlog/EventLogSessionAuth.ts +56 -70
  609. package/src/eventlog/EventRow.ts +12 -3
  610. package/src/eventlog/SqlEventJournal.ts +2 -2
  611. package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
  612. package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
  613. package/src/eventlog/internal/batches.ts +30 -0
  614. package/src/eventlog/internal/compaction.ts +64 -0
  615. package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
  616. package/src/eventlog/internal/remoteCompaction.ts +92 -0
  617. package/src/http/Cookies.ts +281 -1
  618. package/src/http/FetchHttpClient.ts +88 -16
  619. package/src/http/HttpClient.ts +89 -22
  620. package/src/http/HttpClientRequest.ts +12 -9
  621. package/src/http/HttpClientResponse.ts +3 -2
  622. package/src/http/HttpMethod.ts +10 -2
  623. package/src/http/HttpServerRequest.ts +15 -30
  624. package/src/http/HttpServerResponse.ts +3 -2
  625. package/src/http/HttpTraceContext.ts +7 -4
  626. package/src/http/ProblemDetails.ts +149 -0
  627. package/src/http/index.ts +6 -0
  628. package/src/http/internal/decompression.ts +4 -4
  629. package/src/http/internal/urlParams.ts +8 -0
  630. package/src/http-api/HttpApiBuilder.ts +24 -12
  631. package/src/http-api/HttpApiClient.ts +67 -1
  632. package/src/http-api/HttpApiEndpoint.ts +14 -5
  633. package/src/http-api/HttpApiError.ts +250 -0
  634. package/src/http-api/HttpApiMiddleware.ts +95 -1
  635. package/src/http-api/HttpApiSchema.ts +105 -14
  636. package/src/index.ts +6 -6
  637. package/src/internal/effect.ts +34 -18
  638. package/src/internal/glob.ts +736 -0
  639. package/src/internal/matcher.ts +17 -0
  640. package/src/internal/persistence.ts +11 -0
  641. package/src/internal/rcRef.ts +4 -1
  642. package/src/internal/schema/toCodeDocument.ts +7 -3
  643. package/src/internal/trie.ts +43 -14
  644. package/src/internal/ulid.ts +44 -0
  645. package/src/internal/uuid.ts +57 -16
  646. package/src/internal/version.ts +1 -1
  647. package/src/observability/Otlp.ts +21 -4
  648. package/src/observability/OtlpResource.ts +9 -1
  649. package/src/persistence/KeyValueStore.ts +219 -22
  650. package/src/persistence/PersistedQueue.ts +128 -59
  651. package/src/persistence/Persistence.ts +20 -13
  652. package/src/process/ChildProcess.ts +255 -260
  653. package/src/process/ChildProcessSpawner.ts +5 -0
  654. package/src/process/CommandLine.ts +630 -0
  655. package/src/process/index.ts +6 -0
  656. package/src/reactivity/Atom.ts +5 -5
  657. package/src/reactivity/AtomRegistry.ts +1 -1
  658. package/src/rpc/RpcClient.ts +62 -26
  659. package/src/rpc/RpcMessage.ts +10 -1
  660. package/src/rpc/RpcSerialization.ts +3 -0
  661. package/src/rpc/RpcServer.ts +176 -78
  662. package/src/schema/Model.ts +26 -3
  663. package/src/sql/Migrator.ts +4 -63
  664. package/src/sql/MigratorFileSystem.ts +71 -0
  665. package/src/sql/SqlClient.ts +2 -16
  666. package/src/sql/Statement.ts +8 -7
  667. package/src/sql/index.ts +1 -1
  668. package/src/testing/index.ts +0 -6
  669. package/src/workflow/internal/crypto.ts +15 -11
  670. package/dist/Crypto.d.ts +0 -244
  671. package/dist/Crypto.d.ts.map +0 -1
  672. package/dist/Crypto.js +0 -139
  673. package/dist/Crypto.js.map +0 -1
  674. package/dist/testing/TestCrypto.d.ts +0 -73
  675. package/dist/testing/TestCrypto.d.ts.map +0 -1
  676. package/dist/testing/TestCrypto.js +0 -87
  677. package/dist/testing/TestCrypto.js.map +0 -1
  678. package/src/Crypto.ts +0 -347
  679. package/src/testing/TestCrypto.ts +0 -94
@@ -1,3 +1,3 @@
1
1
  /** @internal */
2
- export const version = "4.0.7";
2
+ export const version = "4.1.0";
3
3
  //# sourceMappingURL=version.js.map
@@ -14,6 +14,7 @@ import type * as Headers from "../http/Headers.ts";
14
14
  import type * as HttpClient from "../http/HttpClient.ts";
15
15
  import * as Layer from "../Layer.ts";
16
16
  import type * as Tracer from "../Tracer.ts";
17
+ import type * as OtlpExporter from "./OtlpExporter.ts";
17
18
  import type { AggregationTemporality } from "./OtlpMetrics.ts";
18
19
  import * as OtlpSerialization from "./OtlpSerialization.ts";
19
20
  /**
@@ -24,6 +25,10 @@ import * as OtlpSerialization from "./OtlpSerialization.ts";
24
25
  * The layer sends data to `/v1/logs`, `/v1/metrics`, and `/v1/traces` below
25
26
  * `baseUrl` and requires an `OtlpSerialization` implementation.
26
27
  *
28
+ * The layer provides the `OtlpExporter.Flusher` shared by all three signals,
29
+ * so one `flush` exports their buffered telemetry, for example before a
30
+ * serverless instance is suspended.
31
+ *
27
32
  * @stability unstable
28
33
  * @category layers
29
34
  * @since 4.0.0
@@ -50,11 +55,17 @@ export declare const layer: (options: {
50
55
  readonly metricsTemporality?: AggregationTemporality | undefined;
51
56
  readonly tracerExportInterval?: Duration.Input | undefined;
52
57
  readonly shutdownTimeout?: Duration.Input | undefined;
53
- }) => Layer.Layer<never, never, HttpClient.HttpClient | OtlpSerialization.OtlpSerialization>;
58
+ }) => Layer.Layer<OtlpExporter.Flusher, never, HttpClient.HttpClient | OtlpSerialization.OtlpSerialization>;
54
59
  /**
55
60
  * Creates a combined OTLP layer for logs, metrics, and traces from
56
61
  * OpenTelemetry configuration.
57
62
  *
63
+ * **Details**
64
+ *
65
+ * The layer provides the `OtlpExporter.Flusher` shared by all enabled signals.
66
+ * It is provided even when configuration disables every signal, in which case
67
+ * `flush` is a no-op.
68
+ *
58
69
  * @stability unstable
59
70
  * @category layers
60
71
  * @since 4.0.0
@@ -69,7 +80,7 @@ export declare const layerFromConfig: (options?: {
69
80
  readonly tracerContext?: (<X>(primitive: Tracer.EffectPrimitive<X>, span: Tracer.AnySpan) => X) | undefined;
70
81
  readonly loggerExcludeLogSpans?: boolean | undefined;
71
82
  readonly loggerMergeWithExisting?: boolean | undefined;
72
- }) => Layer.Layer<never, never, HttpClient.HttpClient | OtlpSerialization.OtlpSerialization>;
83
+ }) => Layer.Layer<OtlpExporter.Flusher, never, HttpClient.HttpClient | OtlpSerialization.OtlpSerialization>;
73
84
  /**
74
85
  * Creates the combined OTLP logs, metrics, and traces layer using JSON
75
86
  * serialization.
@@ -100,7 +111,7 @@ export declare const layerJson: (options: {
100
111
  readonly metricsTemporality?: AggregationTemporality | undefined;
101
112
  readonly tracerExportInterval?: Duration.Input | undefined;
102
113
  readonly shutdownTimeout?: Duration.Input | undefined;
103
- }) => Layer.Layer<never, never, HttpClient.HttpClient>;
114
+ }) => Layer.Layer<OtlpExporter.Flusher, never, HttpClient.HttpClient>;
104
115
  /**
105
116
  * Creates the combined OTLP logs, metrics, and traces layer using protobuf
106
117
  * serialization.
@@ -131,5 +142,5 @@ export declare const layerProtobuf: (options: {
131
142
  readonly metricsTemporality?: AggregationTemporality | undefined;
132
143
  readonly tracerExportInterval?: Duration.Input | undefined;
133
144
  readonly shutdownTimeout?: Duration.Input | undefined;
134
- }) => Layer.Layer<never, never, HttpClient.HttpClient>;
145
+ }) => Layer.Layer<OtlpExporter.Flusher, never, HttpClient.HttpClient>;
135
146
  //# sourceMappingURL=Otlp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Otlp.d.ts","sourceRoot":"","sources":["../../src/observability/Otlp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Otlp.d.ts","sourceRoot":"","sources":["../../src/observability/Otlp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAE/C,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,KAAK,UAAU,MAAM,uBAAuB,CAAA;AAExD,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAE9D,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAG3D;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,KAAK,YAAa;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC9C,GAAG,SAAS,CAAA;IACb,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAA;IAC5C;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3G,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAC1D,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAC3D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAA;IAChE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAC1D,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;CACtD,KAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,GAAG,iBAAiB,CAAC,iBAAiB,CAmCvG,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,aAAc;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC9C,GAAG,SAAS,CAAA;IACb,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3G,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACvD,KAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,GAAG,iBAAiB,CAAC,iBAAiB,CAiBrG,CAAA;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,CAAC,OAAO,EAAE;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC9C,GAAG,SAAS,CAAA;IACb,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAA;IAC5C;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3G,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAC1D,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAC3D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAA;IAChE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAC1D,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;CACtD,KAAK,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAGnE,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,OAAO,EAAE;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC9C,GAAG,SAAS,CAAA;IACb,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAA;IAC5C;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3G,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAC1D,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAC3D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAA;IAChE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IAC1D,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;CACtD,KAAK,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAGnE,CAAA"}
@@ -13,6 +13,10 @@ import * as OtlpTracer from "./OtlpTracer.js";
13
13
  * The layer sends data to `/v1/logs`, `/v1/metrics`, and `/v1/traces` below
14
14
  * `baseUrl` and requires an `OtlpSerialization` implementation.
15
15
  *
16
+ * The layer provides the `OtlpExporter.Flusher` shared by all three signals,
17
+ * so one `flush` exports their buffered telemetry, for example before a
18
+ * serverless instance is suspended.
19
+ *
16
20
  * @stability unstable
17
21
  * @category layers
18
22
  * @since 4.0.0
@@ -53,6 +57,12 @@ export const layer = options => {
53
57
  * Creates a combined OTLP layer for logs, metrics, and traces from
54
58
  * OpenTelemetry configuration.
55
59
  *
60
+ * **Details**
61
+ *
62
+ * The layer provides the `OtlpExporter.Flusher` shared by all enabled signals.
63
+ * It is provided even when configuration disables every signal, in which case
64
+ * `flush` is a no-op.
65
+ *
56
66
  * @stability unstable
57
67
  * @category layers
58
68
  * @since 4.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"Otlp.js","names":[],"sources":["../../src/observability/Otlp.ts"],"sourcesContent":[null],"mappings":"AAYA,SAAS,IAAI,QAAQ,gBAAgB;AAGrC,OAAO,KAAK,iBAAiB,MAAM,8BAA8B;AACjE,OAAO,KAAK,KAAK,MAAM,aAAa;AAEpC,OAAO,KAAK,UAAU,MAAM,iBAAiB;AAE7C,OAAO,KAAK,WAAW,MAAM,kBAAkB;AAC/C,OAAO,KAAK,iBAAiB,MAAM,wBAAwB;AAC3D,OAAO,KAAK,UAAU,MAAM,iBAAiB;AAE7C;;;;;;;;;;;;AAYA,OAAO,MAAM,KAAK,GAAI,OAsBrB,IAA4F;EAC3F,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;EACnD,MAAM,GAAG,GAAI,IAAY,IAAK,iBAAiB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG;EACzE,OAAO,KAAK,CAAC,QAAQ,CACnB,UAAU,CAAC,KAAK,CAAC;IACf,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;IACxB,WAAW,EAAE,OAAO,CAAC,WAAW;IAChC,cAAc,EAAE,OAAO,CAAC,oBAAoB;IAC5C,YAAY,EAAE,OAAO,CAAC,YAAY;IAClC,eAAe,EAAE,OAAO,CAAC,eAAe;IACxC,eAAe,EAAE,OAAO,CAAC,qBAAqB;IAC9C,iBAAiB,EAAE,OAAO,CAAC;GAC5B,CAAC,EACF,WAAW,CAAC,KAAK,CAAC;IAChB,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;IACxB,WAAW,EAAE,OAAO,CAAC,WAAW;IAChC,cAAc,EAAE,OAAO,CAAC,qBAAqB;IAC7C,eAAe,EAAE,OAAO,CAAC,eAAe;IACxC,WAAW,EAAE,OAAO,CAAC;GACtB,CAAC,EACF,UAAU,CAAC,KAAK,CAAC;IACf,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;IACxB,WAAW,EAAE,OAAO,CAAC,WAAW;IAChC,cAAc,EAAE,OAAO,CAAC,oBAAoB;IAC5C,YAAY,EAAE,OAAO,CAAC,YAAY;IAClC,OAAO,EAAE,OAAO,CAAC,aAAa;IAC9B,eAAe,EAAE,OAAO,CAAC;GAC1B,CAAC,CACH;AACH,CAAC;AAED;;;;;;;;AAQA,OAAO,MAAM,eAAe,GAAI,OAU/B,IACC,KAAK,CAAC,QAAQ,CACZ,UAAU,CAAC,eAAe,CAAC;EACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ;EAC3B,OAAO,EAAE,OAAO,EAAE,OAAO;EACzB,eAAe,EAAE,OAAO,EAAE,qBAAqB;EAC/C,iBAAiB,EAAE,OAAO,EAAE;CAC7B,CAAC,EACF,WAAW,CAAC,eAAe,CAAC;EAC1B,QAAQ,EAAE,OAAO,EAAE,QAAQ;EAC3B,OAAO,EAAE,OAAO,EAAE;CACnB,CAAC,EACF,UAAU,CAAC,eAAe,CAAC;EACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ;EAC3B,OAAO,EAAE,OAAO,EAAE,OAAO;EACzB,OAAO,EAAE,OAAO,EAAE;CACnB,CAAC,CACH;AAEH;;;;;;;;AAQA,OAAO,MAAM,SAAS,gBAsBmC,IAAI,CAAC,KAAK,eAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAEhH;;;;;;;;AAQA,OAAO,MAAM,aAAa,gBAsB+B,IAAI,CAAC,KAAK,eAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Otlp.js","names":[],"sources":["../../src/observability/Otlp.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -49,6 +49,13 @@ export declare const make: (options: {
49
49
  * precedence over matching attributes in `OTEL_RESOURCE_ATTRIBUTES`. Missing
50
50
  * required configuration is converted to a defect.
51
51
  *
52
+ * Keys and values in `OTEL_RESOURCE_ATTRIBUTES` are trimmed, then
53
+ * percent-decoded. Entries with an empty value are kept as `""`; entries
54
+ * without `=` or with an empty key are skipped. When a key is repeated as
55
+ * written, the last entry wins and the earlier ones are not decoded. Invalid
56
+ * percent-encoding in the remaining entries is a `ConfigError` and is
57
+ * converted to a defect.
58
+ *
52
59
  * @stability unstable
53
60
  * @category constructors
54
61
  * @since 4.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"OtlpResource.d.ts","sourceRoot":"","sources":["../../src/observability/OtlpResource.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAKtC;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,0BAA0B;IAC1B,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC3B,sCAAsC;IACtC,sBAAsB,EAAE,MAAM,CAAA;CAC/B;AAID;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,YAAa;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAC1D,KAAG,QAUF,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,UAAU,EAAE,CACvB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAC1D,GAAG,SAAS,KACV,MAAM,CAAC,MAAM,CAAC,QAAQ,CAmCX,CAAA;AAEhB;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,aAAc,QAAQ,KAAG,MAQtD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,YAAa,QAAQ,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAG,KAAK,CAAC,QAAQ,CASxF,CAAA;AAKD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,UAAW,OAAO,KAAG,QAuCxD,CAAA;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB;IACrB,KAAK,EAAE,QAAQ,CAAA;CAChB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,yBAAyB;IACzB,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAC1B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACjC,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,0BAA0B;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,YAAY,CAAA;IAC1B,0BAA0B;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA"}
1
+ {"version":3,"file":"OtlpResource.d.ts","sourceRoot":"","sources":["../../src/observability/OtlpResource.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAKtC;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,0BAA0B;IAC1B,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC3B,sCAAsC;IACtC,sBAAsB,EAAE,MAAM,CAAA;CAC/B;AAID;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,YAAa;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAC1D,KAAG,QAUF,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,UAAU,EAAE,CACvB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAC1D,GAAG,SAAS,KACV,MAAM,CAAC,MAAM,CAAC,QAAQ,CAoCX,CAAA;AAEhB;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,aAAc,QAAQ,KAAG,MAQtD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,YAAa,QAAQ,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAG,KAAK,CAAC,QAAQ,CASxF,CAAA;AAKD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,UAAW,OAAO,KAAG,QAuCxD,CAAA;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB;IACrB,KAAK,EAAE,QAAQ,CAAA;CAChB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,yBAAyB;IACzB,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAC1B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACjC,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,0BAA0B;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,YAAY,CAAA;IAC1B,0BAA0B;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA"}
@@ -62,12 +62,22 @@ export const make = options => ({
62
62
  * precedence over matching attributes in `OTEL_RESOURCE_ATTRIBUTES`. Missing
63
63
  * required configuration is converted to a defect.
64
64
  *
65
+ * Keys and values in `OTEL_RESOURCE_ATTRIBUTES` are trimmed, then
66
+ * percent-decoded. Entries with an empty value are kept as `""`; entries
67
+ * without `=` or with an empty key are skipped. When a key is repeated as
68
+ * written, the last entry wins and the earlier ones are not decoded. Invalid
69
+ * percent-encoding in the remaining entries is a `ConfigError` and is
70
+ * converted to a defect.
71
+ *
65
72
  * @stability unstable
66
73
  * @category constructors
67
74
  * @since 4.0.0
68
75
  */
69
76
  export const fromConfig = /*#__PURE__*/Effect.fnUntraced(function* (options) {
70
- const env = yield* Config.Record(Schema.StringFromUriComponent, Schema.StringFromUriComponent, "OTEL_RESOURCE_ATTRIBUTES").pipe(Config.withDefault(undefined));
77
+ const env = yield* Config.Record(Schema.StringFromUriComponent, Schema.StringFromUriComponent, "OTEL_RESOURCE_ATTRIBUTES", {
78
+ trim: true,
79
+ keepEmptyValues: true
80
+ }).pipe(Config.withDefault(undefined));
71
81
  const serviceName = options?.serviceName ?? options?.attributes?.["service.name"] ?? (yield* Config.schema(Schema.UndefinedOr(Schema.String), "OTEL_SERVICE_NAME")) ?? env?.["service.name"] ?? (yield* Config.String("OTEL_SERVICE_NAME"));
72
82
  const serviceVersion = options?.serviceVersion ?? options?.attributes?.["service.version"] ?? (yield* Config.schema(Schema.UndefinedOr(Schema.String), "OTEL_SERVICE_VERSION")) ?? env?.["service.version"];
73
83
  const attributes = {
@@ -1 +1 @@
1
- {"version":3,"file":"OtlpResource.js","names":[],"sources":["../../src/observability/OtlpResource.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;AAWA,OAAO,KAAK,MAAM,MAAM,cAAc;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc;AACtC,SAAS,MAAM,QAAQ,iBAAiB;AACxC,OAAO,KAAK,MAAM,MAAM,cAAc;AACtC,OAAO,KAAK,OAAO,MAAM,eAAe;AAgBxC,MAAM,SAAS,GAAG,QAAQ,IAAI,UAAU,IAAI,eAAe,IAAI,UAAU;AAEzE;;;;;;;;;;;;;AAaA,OAAO,MAAM,IAAI,GAAI,OAIpB,KAAgB;EACf,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7C,oBAAoB,EAAE,QAAQ;IAC9B,wBAAwB,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ;IACxD,uBAAuB,EAAE,OAAO,CAAC,iBAAiB,EAAE;IACpD,GAAG,OAAO,CAAC,UAAU;IACrB,IAAI,OAAO,CAAC,WAAW,GAAG;MAAE,cAAc,EAAE,OAAO,CAAC;IAAW,CAAE,GAAG,SAAS,CAAC;IAC9E,IAAI,OAAO,CAAC,cAAc,GAAG;MAAE,iBAAiB,EAAE,OAAO,CAAC;IAAc,CAAE,GAAG,SAAS;GACvF,CAAC,CAAC;EACH,sBAAsB,EAAE;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAM,UAAU,gBAMQ,MAAM,CAAC,UAAU,CAAC,WAAU,OAI1D;EACC,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,MAAM,CAC9B,MAAM,CAAC,sBAAsB,EAC7B,MAAM,CAAC,sBAAsB,EAC7B,0BAA0B,CAC3B,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;EAErC,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IACnC,OAAO,EAAE,UAAU,GAAG,cAAc,CAAuB,KAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,CAAC,IAC9E,GAAG,GAAG,cAAc,CAAuB,KAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;EAEhD,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IACzC,OAAO,EAAE,UAAU,GAAG,iBAAiB,CAAuB,KAC7D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC,CAAC,IACjF,GAAG,GAAG,iBAAiB,CAAuB;EAEnD,MAAM,UAAU,GAAG;IACjB,GAAG,GAAG;IACN,GAAG,OAAO,EAAE;GACb;EAED,OAAO,UAAU,CAAC,cAAc,CAAC;EACjC,OAAO,UAAU,CAAC,iBAAiB,CAAC;EAEpC,OAAO,IAAI,CAAC;IACV,WAAW;IACX,cAAc;IACd;GACD,CAAC;AACJ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;AAEhB;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAM,iBAAiB,GAAI,QAAkB,IAAY;EAC9D,MAAM,oBAAoB,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAClD,IAAI,IAAK,IAAI,CAAC,GAAG,KAAK,cAAc,CACtC;EACD,IAAI,CAAC,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE;IACpE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;EAC7D;EACA,OAAO,oBAAoB,CAAC,KAAK,CAAC,WAAW;AAC/C,CAAC;AAED;;;;;;;AAOA,OAAO,MAAM,mBAAmB,GAAI,OAAoC,IAAqB;EAC3F,MAAM,UAAU,GAAoB,EAAE;EACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE;IAClC,UAAU,CAAC,IAAI,CAAC;MACd,GAAG;MACH,KAAK,EAAE,uBAAuB,CAAC,KAAK;KACrC,CAAC;EACJ;EACA,OAAO,UAAU;AACnB,CAAC;AAED;AACA,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE;AAE1B;;;;;;;;;;;;;;AAcA,OAAO,MAAM,uBAAuB,GAAI,KAAc,IAAc;EAClE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;IACxB,OAAO;MACL,UAAU,EAAE;QACV,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,uBAAuB;;KAE5C;EACH;EACA,QAAQ,OAAO,KAAK;IAClB,KAAK,QAAQ;MACX,OAAO;QACL,WAAW,EAAE;OACd;IACH,KAAK,QAAQ;MACX,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,KAAK,GACrC;QACA,QAAQ,EAAE,MAAM,CAAC,KAAK;OACvB,GACC;QACA,WAAW,EAAE,MAAM,CAAC,KAAK;OAC1B;IACL,KAAK,QAAQ;MACX,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,IAAI,KAAK,GAAG,UAAU,GACxE;QACA;QACA,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;OACrE,GACC;QACA,WAAW,EAAE;OACd;IACL,KAAK,SAAS;MACZ,OAAO;QACL,SAAS,EAAE;OACZ;IACH;MACE,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,KAAK;OAC1B;EACL;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"OtlpResource.js","names":[],"sources":["../../src/observability/OtlpResource.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -51,10 +51,18 @@ export interface KeyValueStore {
51
51
  * Removes all entries.
52
52
  */
53
53
  readonly clear: Effect.Effect<void, KeyValueStoreError>;
54
+ /**
55
+ * Removes all entries whose key starts with the specified prefix.
56
+ */
57
+ readonly clearPrefix: (prefix: string) => Effect.Effect<void, KeyValueStoreError>;
54
58
  /**
55
59
  * Returns the number of entries.
56
60
  */
57
61
  readonly size: Effect.Effect<number, KeyValueStoreError>;
62
+ /**
63
+ * Returns a snapshot of the keys in the store. The order is unspecified.
64
+ */
65
+ readonly keys: Effect.Effect<ReadonlyArray<string>, KeyValueStoreError>;
58
66
  /**
59
67
  * Updates the value of the specified key if it exists.
60
68
  */
@@ -109,6 +117,10 @@ export type MakeOptions = Partial<KeyValueStore> & {
109
117
  * Returns the number of entries.
110
118
  */
111
119
  readonly size: Effect.Effect<number, KeyValueStoreError>;
120
+ /**
121
+ * Returns a snapshot of the keys in the store. The order is unspecified.
122
+ */
123
+ readonly keys: Effect.Effect<ReadonlyArray<string>, KeyValueStoreError>;
112
124
  };
113
125
  /**
114
126
  * Implementation callbacks for adapting a string-only backing store into a
@@ -139,6 +151,10 @@ export type MakeStringOptions = Partial<Omit<KeyValueStore, "set">> & {
139
151
  * Returns the number of entries.
140
152
  */
141
153
  readonly size: Effect.Effect<number, KeyValueStoreError>;
154
+ /**
155
+ * Returns a snapshot of the keys in the store. The order is unspecified.
156
+ */
157
+ readonly keys: Effect.Effect<ReadonlyArray<string>, KeyValueStoreError>;
142
158
  };
143
159
  declare const ErrorTypeId: "~effect/persistence/KeyValueStore/KeyValueStoreError";
144
160
  declare const KeyValueStoreError_base: new <A extends Record<string, any> = {}>(args: import("../Types.ts").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("../Cause.ts").YieldableError & {
@@ -184,8 +200,12 @@ export declare const KeyValueStore: Context.Service<KeyValueStore, KeyValueStore
184
200
  *
185
201
  * **Details**
186
202
  *
187
- * Default implementations are derived for `has`, `isEmpty`, `modify`, and
188
- * `modifyUint8Array` unless they are provided in the options.
203
+ * Default implementations are derived for `has`, `isEmpty`, `clearPrefix`,
204
+ * `modify`, and `modifyUint8Array` unless they are provided in the options.
205
+ *
206
+ * If `clearPrefix` is not provided, it delegates to `clear` for an empty prefix
207
+ * and otherwise removes each key returned by `keys` that starts with the
208
+ * prefix.
189
209
  *
190
210
  * @stability unstable
191
211
  * @category constructors
@@ -209,6 +229,13 @@ export declare const makeStringOnly: (options: MakeStringOptions) => KeyValueSto
209
229
  * Returns a view of a `KeyValueStore` that prepends the given prefix to every
210
230
  * key.
211
231
  *
232
+ * **Details**
233
+ *
234
+ * `keys`, `size`, `isEmpty`, and `clear` only see entries whose key starts
235
+ * with the prefix, and `keys` returns them with the prefix removed. `keys`,
236
+ * `size`, and `isEmpty` list every key in the underlying store and filter the
237
+ * result, while `clear` delegates to `clearPrefix`.
238
+ *
212
239
  * @stability unstable
213
240
  * @category combinators
214
241
  * @since 4.0.0
@@ -218,6 +245,13 @@ export declare const prefix: {
218
245
  * Returns a view of a `KeyValueStore` that prepends the given prefix to every
219
246
  * key.
220
247
  *
248
+ * **Details**
249
+ *
250
+ * `keys`, `size`, `isEmpty`, and `clear` only see entries whose key starts
251
+ * with the prefix, and `keys` returns them with the prefix removed. `keys`,
252
+ * `size`, and `isEmpty` list every key in the underlying store and filter the
253
+ * result, while `clear` delegates to `clearPrefix`.
254
+ *
221
255
  * @stability unstable
222
256
  * @category combinators
223
257
  * @since 4.0.0
@@ -227,6 +261,13 @@ export declare const prefix: {
227
261
  * Returns a view of a `KeyValueStore` that prepends the given prefix to every
228
262
  * key.
229
263
  *
264
+ * **Details**
265
+ *
266
+ * `keys`, `size`, `isEmpty`, and `clear` only see entries whose key starts
267
+ * with the prefix, and `keys` returns them with the prefix removed. `keys`,
268
+ * `size`, and `isEmpty` list every key in the underlying store and filter the
269
+ * result, while `clear` delegates to `clearPrefix`.
270
+ *
230
271
  * @stability unstable
231
272
  * @category combinators
232
273
  * @since 4.0.0
@@ -316,6 +357,10 @@ export interface SchemaStore<S extends Schema.Constraint> {
316
357
  * Returns the number of entries.
317
358
  */
318
359
  readonly size: Effect.Effect<number, KeyValueStoreError>;
360
+ /**
361
+ * Returns a snapshot of the keys in the store. The order is unspecified.
362
+ */
363
+ readonly keys: Effect.Effect<ReadonlyArray<string>, KeyValueStoreError>;
319
364
  /**
320
365
  * Updates the value of the specified key if it exists.
321
366
  */
@@ -1 +1 @@
1
- {"version":3,"file":"KeyValueStore.d.ts","sourceRoot":"","sources":["../../src/persistence/KeyValueStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeyValueStore.d.ts","sourceRoot":"","sources":["../../src/persistence/KeyValueStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AAExC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,IAAI,MAAM,YAAY,CAAA;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGxD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAIhD,QAAA,MAAM,MAAM,EAAG,mCAA4C,CAAA;AAE3D;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM,CAAA;IAChC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,kBAAkB,CAAC,CAAA;IAEpF;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,kBAAkB,CAAC,CAAA;IAElG;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAElG;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAEzE;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAEvD;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAEjF;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAExD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAA;IAEvE;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,CACf,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,KACzB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,kBAAkB,CAAC,CAAA;IAE1D;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,CACzB,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,UAAU,KACjC,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,kBAAkB,CAAC,CAAA;IAE9D;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;IAEzE;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;CAC7D;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG;IACjD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,kBAAkB,CAAC,CAAA;IAEpF;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,kBAAkB,CAAC,CAAA;IAElG;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAElG;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAEzE;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAEvD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAExD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAA;CACxE,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,GAAG;IACpE;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,kBAAkB,CAAC,CAAA;IAEpF;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAErF;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAEzE;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAEvD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAExD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAA;CACxE,CAAA;AAED,QAAA,MAAM,WAAW,EAAG,sDAA+D,CAAA;;;;AAEnF;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAC;IACA;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,WAAW,CAAc;CACzD;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,OAAO,CACzC,aAAa,EACb,aAAa,CACwC,CAAA;AAEvD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,IAAI,YAAa,WAAW,KAAG,aAqCxC,CAAA;AAEJ;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,YAChB,iBAAiB,KACzB,aAkBF,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,MAAM,EAAE;IACnB;;;;;;;;;;;;;;OAcG;IACH,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,aAAa,CAAA;IACxD;;;;;;;;;;;;;;OAcG;IACH,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAA;CAqBpD,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CA2BjD,CAAA;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,cACf,MAAM,KAChB,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAmJzE,CAAA;AAYL;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,aACV,eAAe,KACvB,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,CAgPrD,CAAA;AAEH,QAAA,MAAM,iBAAiB,EAAG,+CAAwD,CAAA;AAElF;;;;;;GAMG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,UAAU;IACtD,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,OAAO,iBAAiB,CAAA;IACtD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CACZ,GAAG,EAAE,MAAM,KACR,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAE5G;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAExF;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAEzE;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IAEvD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAExD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAA;IAEvE;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,CACf,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAC/B,MAAM,CAAC,MAAM,CAChB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EACxB,kBAAkB,GAAG,MAAM,CAAC,WAAW,EACvC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAC9C,CAAA;IAED;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;IAEzE;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;CAC7D;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,CAAC,UAAU,QAAQ,aAAa,UAAU,CAAC,KAAG,WAAW,CAAC,CAAC,CA4CxG,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,aACb,OAAO,CAAC,OAAO,CAAC,KACzB,KAAK,CAAC,KAAK,CAAC,aAAa,CAgGxB,CAAA"}
@@ -62,8 +62,12 @@ export const KeyValueStore = /*#__PURE__*/Context.Service("effect/persistence/Ke
62
62
  *
63
63
  * **Details**
64
64
  *
65
- * Default implementations are derived for `has`, `isEmpty`, `modify`, and
66
- * `modifyUint8Array` unless they are provided in the options.
65
+ * Default implementations are derived for `has`, `isEmpty`, `clearPrefix`,
66
+ * `modify`, and `modifyUint8Array` unless they are provided in the options.
67
+ *
68
+ * If `clearPrefix` is not provided, it delegates to `clear` for an empty prefix
69
+ * and otherwise removes each key returned by `keys` that starts with the
70
+ * prefix.
67
71
  *
68
72
  * @stability unstable
69
73
  * @category constructors
@@ -73,6 +77,9 @@ export const make = options => KeyValueStore.of({
73
77
  [TypeId]: TypeId,
74
78
  has: key => Effect.map(options.get(key), Predicate.isNotUndefined),
75
79
  isEmpty: Effect.map(options.size, size => size === 0),
80
+ clearPrefix: prefix => prefix.length === 0 ? options.clear : Effect.flatMap(options.keys, keys => Effect.forEach(keys, key => key.startsWith(prefix) ? options.remove(key) : Effect.void, {
81
+ discard: true
82
+ })),
76
83
  modify: (key, f) => Effect.flatMap(options.get(key), o => {
77
84
  if (o === undefined) {
78
85
  return Effect.undefined;
@@ -116,20 +123,35 @@ export const makeStringOnly = options => {
116
123
  * Returns a view of a `KeyValueStore` that prepends the given prefix to every
117
124
  * key.
118
125
  *
126
+ * **Details**
127
+ *
128
+ * `keys`, `size`, `isEmpty`, and `clear` only see entries whose key starts
129
+ * with the prefix, and `keys` returns them with the prefix removed. `keys`,
130
+ * `size`, and `isEmpty` list every key in the underlying store and filter the
131
+ * result, while `clear` delegates to `clearPrefix`.
132
+ *
119
133
  * @stability unstable
120
134
  * @category combinators
121
135
  * @since 4.0.0
122
136
  */
123
- export const prefix = /*#__PURE__*/dual(2, (self, prefix) => ({
124
- ...self,
125
- get: key => self.get(`${prefix}${key}`),
126
- getUint8Array: key => self.getUint8Array(`${prefix}${key}`),
127
- set: (key, value) => self.set(`${prefix}${key}`, value),
128
- remove: key => self.remove(`${prefix}${key}`),
129
- has: key => self.has(`${prefix}${key}`),
130
- modify: (key, f) => self.modify(`${prefix}${key}`, f),
131
- modifyUint8Array: (key, f) => self.modifyUint8Array(`${prefix}${key}`, f)
132
- }));
137
+ export const prefix = /*#__PURE__*/dual(2, (self, prefix) => {
138
+ const keys = Effect.map(self.keys, keys => keys.flatMap(key => key.startsWith(prefix) ? [key.slice(prefix.length)] : []));
139
+ return {
140
+ ...self,
141
+ get: key => self.get(`${prefix}${key}`),
142
+ getUint8Array: key => self.getUint8Array(`${prefix}${key}`),
143
+ set: (key, value) => self.set(`${prefix}${key}`, value),
144
+ remove: key => self.remove(`${prefix}${key}`),
145
+ clear: self.clearPrefix(prefix),
146
+ clearPrefix: key => self.clearPrefix(`${prefix}${key}`),
147
+ keys,
148
+ size: Effect.map(keys, keys => keys.length),
149
+ isEmpty: Effect.map(keys, keys => keys.length === 0),
150
+ has: key => self.has(`${prefix}${key}`),
151
+ modify: (key, f) => self.modify(`${prefix}${key}`, f),
152
+ modifyUint8Array: (key, f) => self.modifyUint8Array(`${prefix}${key}`, f)
153
+ };
154
+ });
133
155
  /**
134
156
  * Provides a process-local in-memory `KeyValueStore` backed by a `Map`.
135
157
  *
@@ -152,7 +174,13 @@ export const layerMemory = /*#__PURE__*/Layer.sync(KeyValueStore)(() => {
152
174
  set: (key, value) => Effect.sync(() => store.set(key, value)),
153
175
  remove: key => Effect.sync(() => store.delete(key)),
154
176
  clear: Effect.sync(() => store.clear()),
155
- size: Effect.sync(() => store.size)
177
+ clearPrefix: prefix => Effect.sync(() => {
178
+ for (const key of store.keys()) {
179
+ if (key.startsWith(prefix)) store.delete(key);
180
+ }
181
+ }),
182
+ size: Effect.sync(() => store.size),
183
+ keys: Effect.sync(() => Array.from(store.keys()))
156
184
  });
157
185
  });
158
186
  /**
@@ -203,7 +231,9 @@ export const layerFileSystem = directory => Layer.effect(KeyValueStore)(Effect.g
203
231
  message: `Unable to set item with key ${key}`,
204
232
  cause
205
233
  }))),
206
- remove: key => withKeyPath("remove", key, path => Effect.mapError(fs.remove(path), cause => new KeyValueStoreError({
234
+ remove: key => withKeyPath("remove", key, path => Effect.mapError(fs.remove(path, {
235
+ force: true
236
+ }), cause => new KeyValueStoreError({
207
237
  method: "remove",
208
238
  key,
209
239
  message: `Unable to remove item with key ${key}`,
@@ -224,6 +254,14 @@ export const layerFileSystem = directory => Layer.effect(KeyValueStore)(Effect.g
224
254
  message: `Unable to clear storage`,
225
255
  cause
226
256
  })),
257
+ clearPrefix: prefix => fs.readDirectory(directory).pipe(Effect.flatMap(files => Effect.forEach(files.filter(file => decodeFileKey(file)?.startsWith(prefix)), file => Effect.catchTag(fs.remove(path.join(directory, file)), "PlatformError", cause => cause.reason._tag === "NotFound" ? Effect.void : Effect.fail(cause)), {
258
+ discard: true
259
+ })), Effect.mapError(cause => new KeyValueStoreError({
260
+ method: "clearPrefix",
261
+ key: prefix,
262
+ message: `Unable to clear items with prefix ${prefix}`,
263
+ cause
264
+ }))),
227
265
  size: Effect.matchEffect(fs.readDirectory(directory), {
228
266
  onSuccess: files => Effect.succeed(files.length),
229
267
  onFailure: cause => Effect.fail(new KeyValueStoreError({
@@ -231,9 +269,22 @@ export const layerFileSystem = directory => Layer.effect(KeyValueStore)(Effect.g
231
269
  message: `Unable to get size`,
232
270
  cause
233
271
  }))
234
- })
272
+ }),
273
+ keys: fs.readDirectory(directory).pipe(Effect.flatMap(files => Effect.try(() => files.map(decodeURIComponent))), Effect.mapError(cause => new KeyValueStoreError({
274
+ method: "keys",
275
+ message: `Unable to get keys`,
276
+ cause
277
+ })))
235
278
  });
236
279
  }));
280
+ const decodeFileKey = file => {
281
+ try {
282
+ return decodeURIComponent(file);
283
+ } catch {
284
+ return undefined;
285
+ }
286
+ };
287
+ const escapeLike = prefix => `${prefix.replace(/[!%_[\]]/g, "!$&")}%`;
237
288
  /**
238
289
  * Provides a SQL-backed `KeyValueStore`.
239
290
  *
@@ -248,7 +299,8 @@ export const layerFileSystem = directory => Layer.effect(KeyValueStore)(Effect.g
248
299
  */
249
300
  export const layerSql = (options = {}) => Layer.effect(KeyValueStore)(Effect.gen(function* () {
250
301
  const sql = (yield* SqlClient.SqlClient).withoutTransforms();
251
- const table = sql(options.table ?? "effect_key_value_store");
302
+ const tableName = options.table ?? "effect_key_value_store";
303
+ const table = sql(tableName);
252
304
  yield* sql.onDialectOrElse({
253
305
  mysql: () => sql`
254
306
  CREATE TABLE IF NOT EXISTS ${table} (
@@ -265,7 +317,7 @@ export const layerSql = (options = {}) => Layer.effect(KeyValueStore)(Effect.gen
265
317
  )
266
318
  `,
267
319
  mssql: () => sql`
268
- IF NOT EXISTS (SELECT * FROM sysobjects WHERE name=${table} AND xtype='U')
320
+ IF NOT EXISTS (SELECT * FROM sysobjects WHERE name=${tableName} AND xtype='U')
269
321
  CREATE TABLE ${table} (
270
322
  id NVARCHAR(450) PRIMARY KEY,
271
323
  value VARBINARY(MAX) NOT NULL,
@@ -304,6 +356,22 @@ export const layerSql = (options = {}) => Layer.effect(KeyValueStore)(Effect.gen
304
356
  ON CONFLICT(id) DO UPDATE SET value=excluded.value, value_type=excluded.value_type
305
357
  `.unprepared
306
358
  });
359
+ // The first LIKE uses the primary key index. On mysql and mssql it follows
360
+ // the column collation, which is usually case / accent-insensitive, so a
361
+ // second binary LIKE keeps only exact prefix matches.
362
+ const deleteByPrefix = sql.onDialectOrElse({
363
+ // sqlite LIKE is case-insensitive, so compare the leading characters
364
+ orElse: () => prefix => sql`DELETE FROM ${table} WHERE substr(id, 1, length(${prefix})) = ${prefix}`,
365
+ pg: () => prefix => sql`DELETE FROM ${table} WHERE id LIKE ${escapeLike(prefix)} ESCAPE '!'`,
366
+ mysql: () => prefix => {
367
+ const pattern = escapeLike(prefix);
368
+ return sql`DELETE FROM ${table} WHERE id LIKE ${pattern} ESCAPE '!' AND CONVERT(id USING utf8mb4) COLLATE utf8mb4_bin LIKE ${pattern} ESCAPE '!'`;
369
+ },
370
+ mssql: () => prefix => {
371
+ const pattern = escapeLike(prefix);
372
+ return sql`DELETE FROM ${table} WHERE id LIKE ${pattern} ESCAPE '!' AND id COLLATE Latin1_General_100_BIN2 LIKE ${pattern} ESCAPE '!'`;
373
+ }
374
+ });
307
375
  const encoder = new TextEncoder();
308
376
  const decoder = new TextDecoder();
309
377
  const ValueTypeString = 0;
@@ -376,11 +444,22 @@ export const layerSql = (options = {}) => Layer.effect(KeyValueStore)(Effect.gen
376
444
  message: `Unable to clear storage`,
377
445
  cause
378
446
  })), Effect.asVoid),
447
+ clearPrefix: prefix => deleteByPrefix(prefix).pipe(Effect.mapError(cause => new KeyValueStoreError({
448
+ method: "clearPrefix",
449
+ key: prefix,
450
+ message: `Unable to clear items with prefix ${prefix}`,
451
+ cause
452
+ })), Effect.asVoid),
379
453
  size: sql`SELECT COUNT(*) as count FROM ${table}`.pipe(Effect.mapError(cause => new KeyValueStoreError({
380
454
  method: "size",
381
455
  message: `Unable to get size`,
382
456
  cause
383
- })), Effect.map(rows => rows.length === 0 ? 0 : Number(rows[0].count)))
457
+ })), Effect.map(rows => rows.length === 0 ? 0 : Number(rows[0].count))),
458
+ keys: sql`SELECT id FROM ${table}`.pipe(Effect.mapError(cause => new KeyValueStoreError({
459
+ method: "keys",
460
+ message: `Unable to get keys`,
461
+ cause
462
+ })), Effect.map(rows => rows.map(row => row.id)))
384
463
  });
385
464
  }));
386
465
  const SchemaStoreTypeId = "~effect/persistence/KeyValueStore/SchemaStore";
@@ -416,6 +495,7 @@ export const toSchemaStore = (self, schema) => {
416
495
  remove: self.remove,
417
496
  clear: self.clear,
418
497
  size: self.size,
498
+ keys: self.keys,
419
499
  has: self.has,
420
500
  isEmpty: self.isEmpty
421
501
  };
@@ -471,6 +551,22 @@ export const layerStorage = evaluate => Layer.sync(KeyValueStore)(() => {
471
551
  cause
472
552
  })
473
553
  }),
554
+ clearPrefix: prefix => Effect.try({
555
+ try: () => {
556
+ const keys = [];
557
+ for (let i = 0; i < storage.length; i++) {
558
+ const key = storage.key(i);
559
+ if (key !== null && key.startsWith(prefix)) keys.push(key);
560
+ }
561
+ for (const key of keys) storage.removeItem(key);
562
+ },
563
+ catch: cause => new KeyValueStoreError({
564
+ key: prefix,
565
+ method: "clearPrefix",
566
+ message: `Unable to clear items with prefix ${prefix}`,
567
+ cause
568
+ })
569
+ }),
474
570
  size: Effect.try({
475
571
  try: () => storage.length,
476
572
  catch: cause => new KeyValueStoreError({
@@ -478,6 +574,21 @@ export const layerStorage = evaluate => Layer.sync(KeyValueStore)(() => {
478
574
  message: `Unable to get size`,
479
575
  cause
480
576
  })
577
+ }),
578
+ keys: Effect.try({
579
+ try: () => {
580
+ const keys = [];
581
+ for (let i = 0; i < storage.length; i++) {
582
+ const key = storage.key(i);
583
+ if (key !== null) keys.push(key);
584
+ }
585
+ return keys;
586
+ },
587
+ catch: cause => new KeyValueStoreError({
588
+ method: "keys",
589
+ message: `Unable to get keys`,
590
+ cause
591
+ })
481
592
  })
482
593
  });
483
594
  });