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
@@ -14,7 +14,9 @@ import * as Context from "../Context.js";
14
14
  import * as Effectable from "../Effectable.js";
15
15
  import { dual } from "../Function.js";
16
16
  import * as Predicate from "../Predicate.js";
17
+ import * as Result from "../Result.js";
17
18
  import { ChildProcessSpawner } from "./ChildProcessSpawner.js";
19
+ import * as CommandLine from "./CommandLine.js";
18
20
  const TypeId = "~effect/process/ChildProcess";
19
21
  // =============================================================================
20
22
  // Constructors
@@ -74,16 +76,33 @@ const makePipedCommand = (left, right, options = {}) => Object.assign(Object.cre
74
76
  * 2. Options + template literal: `make({ cwd: "/app" })\`npm run build\``
75
77
  * 3. Array form: `make("npm", ["run", "build"], options?)`
76
78
  *
77
- * Template literals are not parsed until execution time, allowing parsing
78
- * errors to flow through Effect's error channel.
79
+ * Templates are split with `CommandLine.template`: quotes group words, each
80
+ * `${}` value is one literal argument, and an argument that contains a
81
+ * `Redacted` value stays `Redacted`. Arguments in the array form can be
82
+ * `Redacted` too.
83
+ *
84
+ * With the `shell` option, the template text is the shell script and is kept
85
+ * as written.
86
+ *
87
+ * **Gotchas**
88
+ *
89
+ * - A template is parsed when `make` is called. Shell syntax such as `|`,
90
+ * `$HOME`, `*` or `~` throws a `CommandLine.CommandLineError`: quote it, or
91
+ * pass the value with `${}`.
92
+ * - A template with the `shell` option cannot contain `${}` values, because
93
+ * their quoting depends on the shell. Build the script with
94
+ * `CommandLine.quote` and pass it as a string.
95
+ * - The program name, the first word, cannot be `Redacted`.
96
+ * - A NUL character in the command, an argument or an `env` value fails with
97
+ * a `BadArgument` error when the command is spawned.
79
98
  *
80
99
  * **Example** (Creating commands)
81
100
  *
82
101
  * ```ts import.meta.vitest
83
102
  * import { ChildProcess } from "effect/process"
84
103
  *
85
- * // Template literal form
86
- * const cmd1 = ChildProcess.make`echo "hello"`
104
+ * // Template literal form; quotes group words
105
+ * const cmd1 = ChildProcess.make`echo "hello world"`
87
106
  *
88
107
  * // With options
89
108
  * const cmd2 = ChildProcess.make({ cwd: "/tmp" })`ls -la`
@@ -91,7 +110,7 @@ const makePipedCommand = (left, right, options = {}) => Object.assign(Object.cre
91
110
  * // Array form
92
111
  * const cmd3 = ChildProcess.make("git", ["status"])
93
112
  *
94
- * const result = [cmd1.command, cmd2.options.cwd, cmd3.args[0]] // => ["echo", "/tmp", "status"]
113
+ * const result = [cmd1.args[0], cmd2.options.cwd, cmd3.args[0]] // => ["hello world", "/tmp", "status"]
95
114
  * ```
96
115
  *
97
116
  * @stability unstable
@@ -102,15 +121,18 @@ export const make = function make(...args) {
102
121
  // Template literal form: make`command`
103
122
  if (isTemplateString(args[0])) {
104
123
  const [templates, ...expressions] = args;
105
- const tokens = parseTemplates(templates, expressions);
106
- return makeStandardCommand(tokens[0] ?? "", tokens.slice(1), {});
124
+ const [command, cmdArgs] = parseTemplate(templates, expressions);
125
+ return makeStandardCommand(command, cmdArgs, {});
107
126
  }
108
127
  // Options form: make({ cwd: "/tmp" })`command`
109
128
  if (typeof args[0] === "object" && !Array.isArray(args[0]) && !isTemplateString(args[0])) {
110
129
  const options = args[0];
111
130
  return function (templates, ...expressions) {
112
- const tokens = parseTemplates(templates, expressions);
113
- return makeStandardCommand(tokens[0] ?? "", tokens.slice(1), options);
131
+ if (options.shell !== undefined && options.shell !== false) {
132
+ return makeStandardCommand(shellScript(templates, expressions), [], options);
133
+ }
134
+ const [command, cmdArgs] = parseTemplate(templates, expressions);
135
+ return makeStandardCommand(command, cmdArgs, options);
114
136
  };
115
137
  }
116
138
  // Standard form without arguments: make("command", options?)
@@ -171,7 +193,7 @@ export const pipeTo = /*#__PURE__*/dual(args => isCommand(args[0]) && isCommand(
171
193
  * ```ts import.meta.vitest
172
194
  * import { ChildProcess } from "effect/process"
173
195
  *
174
- * const command = ChildProcess.make`echo "foo"`
196
+ * const command = ChildProcess.make`echo foo`
175
197
  *
176
198
  * const prefixed = command.pipe(
177
199
  * ChildProcess.prefix`time`
@@ -198,10 +220,10 @@ export const prefix = function prefix(...args) {
198
220
  const parsePrefixArgs = args => {
199
221
  if (isTemplateString(args[0])) {
200
222
  const [templates, ...expressions] = args;
201
- const tokens = parseTemplates(templates, expressions);
223
+ const [command, cmdArgs] = parseTemplate(templates, expressions);
202
224
  return {
203
- command: tokens[0] ?? "",
204
- args: tokens.slice(1)
225
+ command,
226
+ args: cmdArgs
205
227
  };
206
228
  }
207
229
  const [command, cmdArgs = []] = args;
@@ -330,154 +352,30 @@ export const fdName = fd => `fd${fd}`;
330
352
  // =============================================================================
331
353
  // Template Parsing
332
354
  // =============================================================================
333
- const parseTemplates = (templates, expressions) => {
334
- let tokens = [];
335
- for (const [index, template] of templates.entries()) {
336
- tokens = parseTemplate(templates, expressions, tokens, template, index);
355
+ const parseTemplate = (templates, expressions) => {
356
+ const [program = "", ...args] = Result.getOrThrow(CommandLine.template(templates, ...expressions));
357
+ if (typeof program !== "string") {
358
+ throw new CommandLine.CommandLineError({
359
+ reason: "InvalidArgument",
360
+ message: "The program name of a command cannot be Redacted"
361
+ });
337
362
  }
338
- return tokens;
363
+ return [program, args];
339
364
  };
340
- const parseTemplate = (templates, expressions, prevTokens, template, index) => {
341
- const rawTemplate = templates.raw[index];
342
- if (rawTemplate === undefined) {
343
- throw new Error(`Invalid backslash sequence: ${templates.raw[index]}`);
344
- }
345
- const {
346
- hasLeadingWhitespace,
347
- hasTrailingWhitespace,
348
- tokens
349
- } = splitByWhitespaces(template, rawTemplate);
350
- const nextTokens = concatTokens(prevTokens, tokens, hasLeadingWhitespace);
351
- if (index === expressions.length) {
352
- return nextTokens;
353
- }
354
- const expression = expressions[index];
355
- const expressionTokens = Array.isArray(expression) ? expression.map(expression => parseExpression(expression)) : [parseExpression(expression)];
356
- return concatTokens(nextTokens, expressionTokens, hasTrailingWhitespace);
357
- };
358
- /**
359
- * Convert valid expressions defined in a template string command (i.e. using
360
- * `${expression}` into strings.
361
- */
362
- const parseExpression = expression => {
363
- const type = typeof expression;
364
- if (type === "string") {
365
- return expression; // Return strings directly
366
- }
367
- return String(expression); // Convert numbers to strings
368
- };
369
- const DELIMITERS = /*#__PURE__*/new Set([" ", "\t", "\r", "\n"]);
370
- /**
371
- * Number of characters in backslash escape sequences: \0 \xXX or \uXXXX
372
- * \cX is allowed in RegExps but not in strings
373
- * Octal sequences are not allowed in strict mode
374
- */
375
- const ESCAPE_LENGTH = {
376
- x: 3,
377
- u: 5
378
- };
379
- /**
380
- * Splits a template string by whitespace while also properly handling escape
381
- * sequences.
382
- *
383
- * As an example, let's review the following valid commands:
384
- *
385
- * ```ts
386
- * ChildProcess.exec`echo foo\n bar`
387
- * // We should run `["echo", "foo\n", "bar"]`
388
- *
389
- * ChildProcess.exec`echo foo
390
- * bar`
391
- * // We should run `["echo", "foo", "bar]`
392
- * ```
393
- *
394
- * The problem is that when we evaluate the template string for both of the above
395
- * commands, we will end up with the same string "echo foo\n bar".
396
- *
397
- * What we really want is to include the escaped character in the arguments for
398
- * the first command, since it was written explicitly by the user.
399
- *
400
- * This is why also having access to the raw template string is useful - in a
401
- * template string, there are two representations of the same string:
402
- * 1. `template` - The processed string (escape sequences are evaluated).
403
- * 2. `template.raw` - The raw string (escape sequences are literal).
404
- */
405
- const splitByWhitespaces = (template, rawTemplate) => {
406
- if (rawTemplate.length === 0) {
407
- return {
408
- tokens: [],
409
- hasLeadingWhitespace: false,
410
- hasTrailingWhitespace: false
411
- };
365
+ const shellScript = (templates, expressions) => {
366
+ if (expressions.length > 0) {
367
+ throw new CommandLine.CommandLineError({
368
+ reason: "UnsupportedSyntax",
369
+ message: "A shell template cannot interpolate values; build the script with CommandLine.quote"
370
+ });
412
371
  }
413
- const hasLeadingWhitespace = DELIMITERS.has(rawTemplate[0]);
414
- const tokens = [];
415
- // Given that escape sequences will have different lengths in the template
416
- // versus the raw template, we must maintain two indices:
417
- // - One for the index into the template string
418
- // - One for the index into the raw template string
419
- // We also maintain the current cursor position for where we are in the template
420
- let templateCursor = 0;
421
- for (let templateIndex = 0, rawIndex = 0; templateIndex < template.length; templateIndex += 1, rawIndex += 1) {
422
- // Use the raw template character to check for actual whitespace
423
- const rawCharacter = rawTemplate[rawIndex];
424
- if (DELIMITERS.has(rawCharacter)) {
425
- // Whitespace found, extract token from template if necessary
426
- if (templateCursor !== templateIndex) {
427
- tokens.push(template.slice(templateCursor, templateIndex));
428
- }
429
- // Advance the template start index to the current position
430
- templateCursor = templateIndex + 1;
431
- } else if (rawCharacter === "\\") {
432
- // Escape sequence detected, check the next raw character
433
- const nextRawCharacter = rawTemplate[rawIndex + 1];
434
- if (nextRawCharacter === "\n") {
435
- // Handle `\` character followed by a newline (i.e. a line continuation) by:
436
- // - Reversing the template index (backslash-newline is erased in template)
437
- // - Advancing the raw template index past the line continuation
438
- templateIndex -= 1;
439
- rawIndex += 1;
440
- } else if (nextRawCharacter === "u" && rawTemplate[rawIndex + 2] === "{") {
441
- // Handle variable-length unicode escape sequences (i.e. `\u{1F600}`) by:
442
- // - Advancing the template index an extra code unit for astral code points
443
- // - Advancing the raw template index past the unicode escape sequence
444
- const end = rawTemplate.indexOf("}", rawIndex + 3);
445
- if (parseInt(rawTemplate.slice(rawIndex + 3, end), 16) > 0xffff) {
446
- templateIndex += 1;
447
- }
448
- rawIndex = end;
449
- } else {
450
- // Advance raw template index past fixed-length escape sequences:
451
- // - \n → 2 chars (backslash + n)
452
- // - \t → 2 chars (backslash + t)
453
- // - \xHH → 4 chars (backslash + x + H + H)
454
- // - \uHHHH → 6 chars (backslash + u + H + H + H + H)
455
- rawIndex += ESCAPE_LENGTH[nextRawCharacter] ?? 1;
456
- }
457
- }
372
+ const script = templates[0];
373
+ if (script === undefined) {
374
+ throw new CommandLine.CommandLineError({
375
+ reason: "InvalidEscape",
376
+ message: "Template part 0 contains an invalid escape sequence"
377
+ });
458
378
  }
459
- // Trailing whitespace only exists if the template cursor is equivalent to the
460
- // length of the template
461
- const hasTrailingWhitespace = templateCursor === template.length;
462
- // If we did not end with trailing whitespace, ensure the final token is added
463
- if (!hasTrailingWhitespace) {
464
- tokens.push(template.slice(templateCursor));
465
- }
466
- return {
467
- tokens,
468
- hasLeadingWhitespace,
469
- hasTrailingWhitespace
470
- };
379
+ return script;
471
380
  };
472
- /**
473
- * Concatenates two separate sets of string tokens together.
474
- *
475
- * If either set is empty or `isSeparated=false`, the last element of `prevTokens`
476
- * and the first element of `nextTokens` will be joined into a single token.
477
- */
478
- const concatTokens = (prevTokens, nextTokens, isSeparated) => isSeparated || prevTokens.length === 0 || nextTokens.length === 0
479
- // Keep the previous and next tokens separate from one another
480
- ? [...prevTokens, ...nextTokens]
481
- // Join the last token from the previous set and the first token from the next set
482
- : [...prevTokens.slice(0, -1), `${prevTokens.at(-1)}${nextTokens.at(0)}`, ...nextTokens.slice(1)];
483
381
  //# sourceMappingURL=ChildProcess.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChildProcess.js","names":[],"sources":["../../src/process/ChildProcess.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ChildProcess.js","names":[],"sources":["../../src/process/ChildProcess.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -132,6 +132,9 @@ export interface ChildProcessHandle {
132
132
  *
133
133
  * **Details**
134
134
  *
135
+ * Available for `"input"` and `"duplex"` file descriptors. The write side is
136
+ * ended when the sink completes.
137
+ *
135
138
  * If a file descriptor is accessed that was not configured, returns a drain
136
139
  * `Sink`.
137
140
  */
@@ -142,6 +145,8 @@ export interface ChildProcessHandle {
142
145
  *
143
146
  * **Details**
144
147
  *
148
+ * Available for `"output"` and `"duplex"` file descriptors.
149
+ *
145
150
  * If a file descriptor is accessed that was not configured, returns an empty
146
151
  * `Stream`.
147
152
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ChildProcessSpawner.d.ts","sourceRoot":"","sources":["../../src/process/ChildProcessSpawner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChildProcessSpawner.d.ts","sourceRoot":"","sources":["../../src/process/ChildProcessSpawner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,KAAK,aAAa,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,KAAK,IAAI,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE7D;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;AAExD;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAA6B,CAAA;AAE9E;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,SAAS,CAA8B,CAAA;AAEjF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;AAEpE,QAAA,MAAM,YAAY,2DAA2D,CAAA;AAE7E;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAA;IAC5C;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAA;IACvB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACvE;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACvE;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACtG;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC/E;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACvE;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACvE;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACpE;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACpG;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC5F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;CAClE;AAUD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,WAAY,IAAI,CAAC,kBAAkB,EAAE,OAAO,YAAY,CAAC,KAAG,kBAChC,CAAA;AAEnD;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,UAAW,mBAAmB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAG,mBAAmB,CAAC,SAAS,CA8BlG,CAAA;;IAUC;;OAEG;mBAEQ,OAAO,GACf,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC;IAE9E;;;;;;;;OAQG;sBAEQ,OAAO,GACf,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC;IAEvD;;;;;;;;;OASG;0BACmB,OAAO,YAAY;QACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC7C,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC;IAEtD;;;;;;;;;OASG;yBACkB,OAAO,YAAY;QACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC7C,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC;IAEtD;;;;;;;;OAQG;mBACY,OAAO,YAAY;QAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC7C,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC;IAE7D;;;;;;;;OAQG;oBACa,OAAO,YAAY;QACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC7C,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC;;AAhFxD;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,wBA0EC;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChildProcessSpawner.js","names":[],"sources":["../../src/process/ChildProcessSpawner.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;AAaA,OAAO,KAAK,KAAK,MAAM,aAAa;AACpC,OAAO,KAAK,OAAO,MAAM,eAAe;AACxC,OAAO,KAAK,MAAM,MAAM,cAAc;AACtC,OAAO,KAAK,WAAW,MAAM,mBAAmB;AAIhD,OAAO,KAAK,MAAM,MAAM,cAAc;AAYtC;;;;;;;AAOA,OAAO,MAAM,QAAQ,gBAAgC,KAAK,CAAC,OAAO,EAAY;AAY9E;;;;;;;AAOA,OAAO,MAAM,SAAS,gBAAiC,KAAK,CAAC,OAAO,EAAa;AAkBjF,MAAM,YAAY,GAAG,wDAAwD;AAiI7E,MAAM,WAAW,GAAG;EAClB,CAAC,YAAY,GAAG,YAAY;EAC5B,GAAG,WAAW,CAAC,SAAS;EACxB,MAAM;IACJ,OAAO;MAAE,GAAG,EAAE,oBAAoB;MAAE,GAAG,EAAE,IAAI,CAAC;IAAG,CAAE;EACrD;CACD;AAED;;;;;;;AAOA,OAAO,MAAM,UAAU,GAAI,MAAqD,IAC9E,MAAM,CAAC,cAAc,CAAC;EAAE,GAAG;AAAM,CAAE,EAAE,WAAW,CAAC;AAEnD;;;;;;;;AAQA,OAAO,MAAM,IAAI,GAAI,KAA8C,IAAoC;EACrG;EACA;EACA,MAAM,YAAY,GAAkD,CAAC,OAAO,EAAE,OAAO,KACnF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CACjB,MAAM,CAAC,GAAG,CAAE,MAAM,IAChB,MAAM,CAAC,UAAU,CACf,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAC9F,CACF,EACD,MAAM,CAAC,MAAM,CACd;EACH,MAAM,WAAW,GAAkD,CAAC,OAAO,EAAE,OAAO,KAClF,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;EAEnD,OAAO,mBAAmB,CAAC,EAAE,CAAC;IAC5B,KAAK;IACL;IACA,QAAQ,EAAG,OAAO,IAChB,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,OAAO,CACZ,KAAK,CAAC,OAAO,CAAC,EACb,MAAM,IAAK,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CACzG,CACF;IACH,YAAY;IACZ,WAAW;IACX,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7E,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;GAC7E,CAAC;AACJ,CAAC;AAED;;;;;;;AAOA,OAAM,MAAO,mBAAoB,sBAAQ,OAAO,CAAC,OAAO,EA0EpD,CAAC,oCAAoC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"ChildProcessSpawner.js","names":[],"sources":["../../src/process/ChildProcessSpawner.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;AAaA,OAAO,KAAK,KAAK,MAAM,aAAa;AACpC,OAAO,KAAK,OAAO,MAAM,eAAe;AACxC,OAAO,KAAK,MAAM,MAAM,cAAc;AACtC,OAAO,KAAK,WAAW,MAAM,mBAAmB;AAIhD,OAAO,KAAK,MAAM,MAAM,cAAc;AAYtC;;;;;;;AAOA,OAAO,MAAM,QAAQ,gBAAgC,KAAK,CAAC,OAAO,EAAY;AAY9E;;;;;;;AAOA,OAAO,MAAM,SAAS,gBAAiC,KAAK,CAAC,OAAO,EAAa;AAkBjF,MAAM,YAAY,GAAG,wDAAwD;AAsI7E,MAAM,WAAW,GAAG;EAClB,CAAC,YAAY,GAAG,YAAY;EAC5B,GAAG,WAAW,CAAC,SAAS;EACxB,MAAM;IACJ,OAAO;MAAE,GAAG,EAAE,oBAAoB;MAAE,GAAG,EAAE,IAAI,CAAC;IAAG,CAAE;EACrD;CACD;AAED;;;;;;;AAOA,OAAO,MAAM,UAAU,GAAI,MAAqD,IAC9E,MAAM,CAAC,cAAc,CAAC;EAAE,GAAG;AAAM,CAAE,EAAE,WAAW,CAAC;AAEnD;;;;;;;;AAQA,OAAO,MAAM,IAAI,GAAI,KAA8C,IAAoC;EACrG;EACA;EACA,MAAM,YAAY,GAAkD,CAAC,OAAO,EAAE,OAAO,KACnF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CACjB,MAAM,CAAC,GAAG,CAAE,MAAM,IAChB,MAAM,CAAC,UAAU,CACf,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAC9F,CACF,EACD,MAAM,CAAC,MAAM,CACd;EACH,MAAM,WAAW,GAAkD,CAAC,OAAO,EAAE,OAAO,KAClF,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;EAEnD,OAAO,mBAAmB,CAAC,EAAE,CAAC;IAC5B,KAAK;IACL;IACA,QAAQ,EAAG,OAAO,IAChB,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,OAAO,CACZ,KAAK,CAAC,OAAO,CAAC,EACb,MAAM,IAAK,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CACzG,CACF;IACH,YAAY;IACZ,WAAW;IACX,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7E,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;GAC7E,CAAC;AACJ,CAAC;AAED;;;;;;;AAOA,OAAM,MAAO,mBAAoB,sBAAQ,OAAO,CAAC,OAAO,EA0EpD,CAAC,oCAAoC,CAAC","ignoreList":[]}
@@ -0,0 +1,294 @@
1
+ import * as Redacted from "../Redacted.ts";
2
+ import * as Result from "../Result.ts";
3
+ /**
4
+ * Command line syntax understood by the functions in this module.
5
+ *
6
+ * **Details**
7
+ *
8
+ * - `"posix"`: POSIX shells (`sh`, `dash`, `bash`, `zsh`). Quoted words are
9
+ * also safe in `fish`.
10
+ * - `"powershell"`: PowerShell 7.3 or later, which passes arguments to native
11
+ * programs unchanged (`$PSNativeCommandArgumentPassing` set to `Standard` or
12
+ * `Windows`).
13
+ * - `"windows"`: the Microsoft C runtime convention, also implemented by
14
+ * `CommandLineToArgvW`, that most Windows programs use. It is not the syntax
15
+ * of `cmd.exe` or of batch files.
16
+ *
17
+ * @stability unstable
18
+ * @category models
19
+ * @since 4.0.7
20
+ */
21
+ export type Format = "posix" | "powershell" | "windows";
22
+ /**
23
+ * One argument: a plain string or a `Redacted` string that must not appear in
24
+ * logs.
25
+ *
26
+ * @stability unstable
27
+ * @category models
28
+ * @since 4.0.7
29
+ */
30
+ export type Word = string | Redacted.Redacted<string>;
31
+ /**
32
+ * Single value accepted inside a `${}` interpolation of {@link template}.
33
+ *
34
+ * @stability unstable
35
+ * @category models
36
+ * @since 4.0.7
37
+ */
38
+ export type TemplateExpressionItem = string | number | boolean | Redacted.Redacted<string>;
39
+ /**
40
+ * Value accepted inside a `${}` interpolation of {@link template}.
41
+ *
42
+ * **Details**
43
+ *
44
+ * An array adds one argument per element and must stand alone as a whole
45
+ * argument. An empty array adds no arguments.
46
+ *
47
+ * @stability unstable
48
+ * @category models
49
+ * @since 4.0.7
50
+ */
51
+ export type TemplateExpression = TemplateExpressionItem | ReadonlyArray<TemplateExpressionItem>;
52
+ declare const CommandLineError_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 & {
53
+ readonly _tag: "CommandLineError";
54
+ } & Readonly<A>;
55
+ /**
56
+ * Error returned when a command line or a template cannot be built.
57
+ *
58
+ * **Details**
59
+ *
60
+ * - `NulCharacter`: an argument passed to {@link quote} or {@link join}
61
+ * contains a NUL character, which no command line can carry.
62
+ * - `InvalidArgument`: the format cannot carry an argument: a Windows program
63
+ * name with a double quote, or the argument `--%`, which PowerShell drops
64
+ * when it calls a native program.
65
+ * - `InvalidEscape`: template text ends with a backslash that escapes nothing,
66
+ * or contains an invalid JavaScript escape sequence.
67
+ * - `UnterminatedQuote`: a quoted section of a template is not closed.
68
+ * - `UnsupportedSyntax`: template text contains shell syntax that cannot work
69
+ * without a shell, such as operators, expansions, globs, comments or
70
+ * variable assignments, or an interpolated array is not a separate argument.
71
+ *
72
+ * Messages never include the input, which may contain secrets.
73
+ *
74
+ * @stability unstable
75
+ * @category errors
76
+ * @since 4.0.7
77
+ */
78
+ export declare class CommandLineError extends CommandLineError_base<{
79
+ readonly reason: "NulCharacter" | "InvalidArgument" | "InvalidEscape" | "UnterminatedQuote" | "UnsupportedSyntax";
80
+ readonly message: string;
81
+ }> {
82
+ }
83
+ /**
84
+ * Quotes one argument so that a program reading the given format sees it as
85
+ * exactly one argument, with one PowerShell exception listed under Gotchas.
86
+ *
87
+ * **When to use**
88
+ *
89
+ * Use when you insert an argument into a command line that is otherwise
90
+ * written by hand, for example a script passed to `sh -c`.
91
+ *
92
+ * **Details**
93
+ *
94
+ * - `"posix"` leaves words made of letters, digits and `_ @ + : , . / -`
95
+ * unchanged and wraps everything else in single quotes. Single quotes and
96
+ * backslashes are written outside the quotes, so `fish` reads the result
97
+ * the same way.
98
+ * - `"powershell"` always uses single quotes, doubling `'` and the
99
+ * typographic single quotes that PowerShell also accepts as quotes.
100
+ * - `"windows"` quotes words that contain a space, a tab, a line break or a
101
+ * double quote, using the C runtime backslash rules. Use {@link join} for a
102
+ * complete command line, because the program name follows different rules.
103
+ *
104
+ * **Gotchas**
105
+ *
106
+ * - The result contains the value of a `Redacted` argument. Use
107
+ * {@link display} for logs.
108
+ * - Control characters are kept as they are. That is safe for `sh -c` and SSH
109
+ * commands, but not for text typed into an interactive shell.
110
+ * - PowerShell never passes an argument equal to `--%` to a native program,
111
+ * however it is quoted. Use {@link join} for a whole native call, which
112
+ * fails with `InvalidArgument` instead.
113
+ *
114
+ * **Example** (Quoting arguments for different shells)
115
+ *
116
+ * ```ts import.meta.vitest
117
+ * import { Result } from "effect"
118
+ * import { CommandLine } from "effect/process"
119
+ *
120
+ * CommandLine.quote("it's") // => Result.succeed("'it'\\''s'")
121
+ * CommandLine.quote("it's", { format: "powershell" }) // => Result.succeed("'it''s'")
122
+ * CommandLine.quote("C:\\My Files\\", { format: "windows" }) // => Result.succeed("\"C:\\My Files\\\\\"")
123
+ * ```
124
+ *
125
+ * @see {@link join} for quoting a whole argument list
126
+ *
127
+ * @stability unstable
128
+ * @category encoding
129
+ * @since 4.0.7
130
+ */
131
+ export declare const quote: (word: Word, options?: {
132
+ readonly format?: Format | undefined;
133
+ }) => Result.Result<string, CommandLineError>;
134
+ /**
135
+ * Builds a command line that runs the given program and arguments.
136
+ *
137
+ * **When to use**
138
+ *
139
+ * Use when a transport accepts only one string, such as an SSH exec request or
140
+ * a `shell` option, and the arguments must reach the program unchanged.
141
+ *
142
+ * **Details**
143
+ *
144
+ * The first word is the program. Each word is quoted as in {@link quote} and
145
+ * the words are separated by spaces.
146
+ *
147
+ * - `"posix"` also quotes a program name that `sh`, `bash`, `zsh` or `fish`
148
+ * reads as syntax, such as `if` or `time`.
149
+ * - `"powershell"` starts the line with the call operator `&`, because a
150
+ * quoted program name is otherwise read as a string value.
151
+ * - `"windows"` quotes the program name with the C runtime rules for program
152
+ * names, which do not support backslash escapes.
153
+ * - An empty list returns an empty string.
154
+ *
155
+ * **Gotchas**
156
+ *
157
+ * - The result contains the values of `Redacted` arguments. Use
158
+ * {@link display} for logs.
159
+ * - A Windows program name that contains `"` fails with `InvalidArgument`.
160
+ * - For `"powershell"`, an argument equal to `--%` fails with
161
+ * `InvalidArgument`: PowerShell drops it when it calls a native program,
162
+ * however it is quoted.
163
+ * - `"windows"` output is the command line of a program, not a `cmd.exe`
164
+ * script. `cmd.exe`, which `shell: true` uses on Windows, expands `%NAME%`
165
+ * and reads `^ & | < >` before the program sees its arguments, so a script
166
+ * that contains untrusted values has to be written by hand.
167
+ *
168
+ * **Example** (Joining arguments into command lines)
169
+ *
170
+ * ```ts import.meta.vitest
171
+ * import { Result } from "effect"
172
+ * import { CommandLine } from "effect/process"
173
+ *
174
+ * const args = ["git", "commit", "-m", "fix: don't fail"]
175
+ *
176
+ * CommandLine.join(args) // => Result.succeed("git commit -m 'fix: don'\\''t fail'")
177
+ * CommandLine.join(args, { format: "powershell" }) // => Result.succeed("& 'git' 'commit' '-m' 'fix: don''t fail'")
178
+ * CommandLine.join(args, { format: "windows" }) // => Result.succeed("git commit -m \"fix: don't fail\"")
179
+ * ```
180
+ *
181
+ * @see {@link display} for rendering a command for logs and error messages
182
+ *
183
+ * @stability unstable
184
+ * @category encoding
185
+ * @since 4.0.7
186
+ */
187
+ export declare const join: (words: ReadonlyArray<Word>, options?: {
188
+ readonly format?: Format | undefined;
189
+ }) => Result.Result<string, CommandLineError>;
190
+ /**
191
+ * Renders a command for logs and error messages.
192
+ *
193
+ * **When to use**
194
+ *
195
+ * Use when you show a command to a person, for example in an error message,
196
+ * and secrets and control characters must not reach the output.
197
+ *
198
+ * **Details**
199
+ *
200
+ * - Quotes like {@link join}, so commands without control characters or
201
+ * secrets can be copied into a terminal of the given format.
202
+ * - Replaces `Redacted` arguments with `<redacted>`.
203
+ * - Writes control characters and Unicode line separators as escapes such as
204
+ * `\n` or `\u001b`, so output cannot move the cursor or inject terminal
205
+ * sequences.
206
+ * - Never fails: input that {@link join} rejects is rendered anyway.
207
+ *
208
+ * **Gotchas**
209
+ *
210
+ * The output is for reading only. It is not a reliable command line: escapes
211
+ * and `<redacted>` change what a shell would run.
212
+ *
213
+ * **Example** (Showing a command with a secret)
214
+ *
215
+ * ```ts import.meta.vitest
216
+ * import { Redacted } from "effect"
217
+ * import { CommandLine } from "effect/process"
218
+ *
219
+ * const token = Redacted.make("hunter2")
220
+ *
221
+ * CommandLine.display(["curl", "-H", token, "https://x.dev/a b"]) // => "curl -H <redacted> 'https://x.dev/a b'"
222
+ * ```
223
+ *
224
+ * @see {@link join} for building a command line to run
225
+ *
226
+ * @stability unstable
227
+ * @category encoding
228
+ * @since 4.0.7
229
+ */
230
+ export declare const display: (words: ReadonlyArray<Word>, options?: {
231
+ readonly format?: Format | undefined;
232
+ }) => string;
233
+ /**
234
+ * Builds an argument list from a template literal.
235
+ *
236
+ * **When to use**
237
+ *
238
+ * Use to write a command as it would look in a shell while keeping every
239
+ * interpolated value a literal argument.
240
+ *
241
+ * **Details**
242
+ *
243
+ * - The template text is split into words as a POSIX shell does: spaces,
244
+ * tabs and line breaks separate words, and quotes and backslash escapes are
245
+ * removed. A long command can span several lines.
246
+ * - Text that would need a shell fails with `UnsupportedSyntax`: operators
247
+ * (`| & ; < > ( )`), expansions (`$NAME`, `${...}`, `$(...)`, backticks, a
248
+ * leading `~`, braces such as `{a,b}`, and a leading `=` that `zsh`
249
+ * expands), globs (`* ? [`), comments (`#` at the start of a word), and a
250
+ * variable assignment in the program position. Quote such characters to
251
+ * pass them literally.
252
+ * - No shell runs, so a program such as `if` or `time` names an executable.
253
+ * - Each `${}` value is inserted literally, without splitting or quote
254
+ * processing. Next to other text or inside quotes, it becomes part of the
255
+ * surrounding argument.
256
+ * - An array adds one argument per element and must stand alone as a whole
257
+ * argument.
258
+ * - Numbers and booleans are converted with `String`.
259
+ * - An argument that contains a `Redacted` value becomes `Redacted` as a
260
+ * whole.
261
+ *
262
+ * **Gotchas**
263
+ *
264
+ * - An invalid JavaScript escape sequence in the text, such as `\u` without
265
+ * hex digits, fails with `InvalidEscape`. Use `String.raw` or a `${}` value
266
+ * for backslashes.
267
+ * - Neither the text nor the values are checked for NUL characters.
268
+ * {@link join} and the child process spawners reject them where they would
269
+ * truncate an argument.
270
+ *
271
+ * **Example** (Building arguments with interpolated values)
272
+ *
273
+ * ```ts import.meta.vitest
274
+ * import { Redacted, Result } from "effect"
275
+ * import { CommandLine } from "effect/process"
276
+ *
277
+ * const msg = "fix: handle $HOME"
278
+ * const files = ["a.ts", "b.ts"]
279
+ *
280
+ * CommandLine.template`git commit -m ${msg} ${files}` // => Result.succeed(["git", "commit", "-m", msg, ...files])
281
+ *
282
+ * const password = Redacted.make("hunter2")
283
+ * const words = Result.getOrThrow(CommandLine.template`psql "--password=${password}"`)
284
+ *
285
+ * CommandLine.display(words) // => "psql <redacted>"
286
+ * ```
287
+ *
288
+ * @stability unstable
289
+ * @category constructors
290
+ * @since 4.0.7
291
+ */
292
+ export declare const template: (strings: TemplateStringsArray, ...expressions: ReadonlyArray<TemplateExpression>) => Result.Result<Array<Word>, CommandLineError>;
293
+ export {};
294
+ //# sourceMappingURL=CommandLine.d.ts.map