@adviser/cement 0.4.7 → 0.4.8

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 (505) hide show
  1. package/base-basic-sys-abstraction.test.d.ts +2 -0
  2. package/base-basic-sys-abstraction.test.d.ts.map +1 -0
  3. package/base-basic-sys-abstraction.test.js +88 -0
  4. package/base-basic-sys-abstraction.test.js.map +1 -0
  5. package/{base-sys-abstraction-h0dB3nZ5.d.ts → base-sys-abstraction.d.ts} +23 -22
  6. package/base-sys-abstraction.d.ts.map +1 -0
  7. package/base-sys-abstraction.js +193 -0
  8. package/base-sys-abstraction.js.map +1 -0
  9. package/bin2text.d.ts +3 -0
  10. package/bin2text.d.ts.map +1 -0
  11. package/bin2text.js +43 -0
  12. package/bin2text.js.map +1 -0
  13. package/bin2text.test.d.ts +2 -0
  14. package/bin2text.test.d.ts.map +1 -0
  15. package/bin2text.test.js +51 -0
  16. package/bin2text.test.js.map +1 -0
  17. package/cf/cf-basic-sys-abstraction.d.ts +14 -0
  18. package/cf/cf-basic-sys-abstraction.d.ts.map +1 -0
  19. package/cf/cf-basic-sys-abstraction.js +67 -0
  20. package/cf/cf-basic-sys-abstraction.js.map +1 -0
  21. package/cf/cf-env-actions.d.ts +16 -0
  22. package/cf/cf-env-actions.d.ts.map +1 -0
  23. package/cf/cf-env-actions.js +53 -0
  24. package/cf/cf-env-actions.js.map +1 -0
  25. package/cf/index.d.ts +3 -30
  26. package/cf/index.d.ts.map +1 -0
  27. package/cf/index.js +2 -11
  28. package/cf/index.js.map +1 -1
  29. package/cf-test-main.d.ts +5 -0
  30. package/cf-test-main.d.ts.map +1 -0
  31. package/cf-test-main.js +12 -0
  32. package/cf-test-main.js.map +1 -0
  33. package/coerce-binary.d.ts +6 -0
  34. package/coerce-binary.d.ts.map +1 -0
  35. package/coerce-binary.js +32 -0
  36. package/coerce-binary.js.map +1 -0
  37. package/coerce-binary.test.d.ts +2 -0
  38. package/coerce-binary.test.d.ts.map +1 -0
  39. package/coerce-binary.test.js +39 -0
  40. package/coerce-binary.test.js.map +1 -0
  41. package/crypto.d.ts +76 -0
  42. package/crypto.d.ts.map +1 -0
  43. package/crypto.js +22 -0
  44. package/crypto.js.map +1 -0
  45. package/crypto.test.d.ts +2 -0
  46. package/crypto.test.d.ts.map +1 -0
  47. package/crypto.test.js +21 -0
  48. package/crypto.test.js.map +1 -0
  49. package/deno/deno-basic-sys-abstraction.d.ts +14 -0
  50. package/deno/deno-basic-sys-abstraction.d.ts.map +1 -0
  51. package/deno/deno-basic-sys-abstraction.js +35 -0
  52. package/deno/deno-basic-sys-abstraction.js.map +1 -0
  53. package/deno/deno-env-actions.d.ts +23 -0
  54. package/deno/deno-env-actions.d.ts.map +1 -0
  55. package/deno/deno-env-actions.js +40 -0
  56. package/deno/deno-env-actions.js.map +1 -0
  57. package/deno/deno-file-service.d.ts +17 -0
  58. package/deno/deno-file-service.d.ts.map +1 -0
  59. package/deno/deno-file-service.js +67 -0
  60. package/deno/deno-file-service.js.map +1 -0
  61. package/deno/deno-sys-abstraction.d.ts +19 -0
  62. package/deno/deno-sys-abstraction.d.ts.map +1 -0
  63. package/deno/deno-sys-abstraction.js +96 -0
  64. package/deno/deno-sys-abstraction.js.map +1 -0
  65. package/deno/index.d.ts +3 -37
  66. package/deno/index.d.ts.map +1 -0
  67. package/deno/index.js +2 -179
  68. package/deno/index.js.map +1 -1
  69. package/file-service.d.ts +17 -0
  70. package/file-service.d.ts.map +1 -0
  71. package/file-service.js +2 -0
  72. package/file-service.js.map +1 -0
  73. package/future.d.ts +8 -0
  74. package/future.d.ts.map +1 -0
  75. package/future.js +25 -0
  76. package/future.js.map +1 -0
  77. package/future.test.d.ts +2 -0
  78. package/future.test.d.ts.map +1 -0
  79. package/future.test.js +32 -0
  80. package/future.test.js.map +1 -0
  81. package/http_header.d.ts +29 -0
  82. package/http_header.d.ts.map +1 -0
  83. package/http_header.js +157 -0
  84. package/http_header.js.map +1 -0
  85. package/http_header.test.d.ts +2 -0
  86. package/http_header.test.d.ts.map +1 -0
  87. package/http_header.test.js +96 -0
  88. package/http_header.test.js.map +1 -0
  89. package/index.d.ts +29 -396
  90. package/index.d.ts.map +1 -0
  91. package/index.js +28 -609
  92. package/index.js.map +1 -1
  93. package/is-promise.d.ts +4 -0
  94. package/is-promise.d.ts.map +1 -0
  95. package/is-promise.js +10 -0
  96. package/is-promise.js.map +1 -0
  97. package/is-promise.test.d.ts +2 -0
  98. package/is-promise.test.d.ts.map +1 -0
  99. package/is-promise.test.js +48 -0
  100. package/is-promise.test.js.map +1 -0
  101. package/json-en-decoder.d.ts +12 -0
  102. package/json-en-decoder.d.ts.map +1 -0
  103. package/json-en-decoder.js +42 -0
  104. package/json-en-decoder.js.map +1 -0
  105. package/json-en-decoder.test.d.ts +2 -0
  106. package/json-en-decoder.test.d.ts.map +1 -0
  107. package/json-en-decoder.test.js +18 -0
  108. package/json-en-decoder.test.js.map +1 -0
  109. package/log-level-impl.d.ts +17 -0
  110. package/log-level-impl.d.ts.map +1 -0
  111. package/log-level-impl.js +75 -0
  112. package/log-level-impl.js.map +1 -0
  113. package/log-writer-impl.d.ts +11 -0
  114. package/log-writer-impl.d.ts.map +1 -0
  115. package/log-writer-impl.js +52 -0
  116. package/log-writer-impl.js.map +1 -0
  117. package/logger-impl.d.ts +75 -0
  118. package/logger-impl.d.ts.map +1 -0
  119. package/logger-impl.js +505 -0
  120. package/logger-impl.js.map +1 -0
  121. package/logger.d.ts +97 -0
  122. package/logger.d.ts.map +1 -0
  123. package/logger.js +150 -0
  124. package/logger.js.map +1 -0
  125. package/logger.test.d.ts +2 -0
  126. package/logger.test.d.ts.map +1 -0
  127. package/logger.test.js +1577 -0
  128. package/logger.test.js.map +1 -0
  129. package/lru-map-set.d.ts +33 -0
  130. package/lru-map-set.d.ts.map +1 -0
  131. package/lru-map-set.js +116 -0
  132. package/lru-map-set.js.map +1 -0
  133. package/lru-map-set.test.d.ts +2 -0
  134. package/lru-map-set.test.d.ts.map +1 -0
  135. package/lru-map-set.test.js +81 -0
  136. package/lru-map-set.test.js.map +1 -0
  137. package/node/index.d.ts +4 -45
  138. package/node/index.d.ts.map +1 -0
  139. package/node/index.js +3 -222
  140. package/node/index.js.map +1 -1
  141. package/node/mock-file-service.d.ts +11 -0
  142. package/node/mock-file-service.d.ts.map +1 -0
  143. package/node/mock-file-service.js +31 -0
  144. package/node/mock-file-service.js.map +1 -0
  145. package/node/mock-file-service.test.d.ts +2 -0
  146. package/node/mock-file-service.test.d.ts.map +1 -0
  147. package/node/mock-file-service.test.js +31 -0
  148. package/node/mock-file-service.test.js.map +1 -0
  149. package/node/node-basic-sys-abstraction.d.ts +25 -0
  150. package/node/node-basic-sys-abstraction.d.ts.map +1 -0
  151. package/node/node-basic-sys-abstraction.js +45 -0
  152. package/node/node-basic-sys-abstraction.js.map +1 -0
  153. package/node/node-env-actions.d.ts +15 -0
  154. package/node/node-env-actions.d.ts.map +1 -0
  155. package/node/node-env-actions.js +38 -0
  156. package/node/node-env-actions.js.map +1 -0
  157. package/node/node-file-service.d.ts +16 -0
  158. package/node/node-file-service.d.ts.map +1 -0
  159. package/node/node-file-service.js +72 -0
  160. package/node/node-file-service.js.map +1 -0
  161. package/node/node-sys-abstraction.d.ts +19 -0
  162. package/node/node-sys-abstraction.d.ts.map +1 -0
  163. package/node/node-sys-abstraction.js +95 -0
  164. package/node/node-sys-abstraction.js.map +1 -0
  165. package/node/node-sys-abstraction.test.d.ts +2 -0
  166. package/node/node-sys-abstraction.test.d.ts.map +1 -0
  167. package/node/node-sys-abstraction.test.js +83 -0
  168. package/node/node-sys-abstraction.test.js.map +1 -0
  169. package/option.d.ts +26 -0
  170. package/option.d.ts.map +1 -0
  171. package/option.js +54 -0
  172. package/option.js.map +1 -0
  173. package/package.json +4 -10
  174. package/path-ops.d.ts +7 -0
  175. package/path-ops.d.ts.map +1 -0
  176. package/path-ops.js +35 -0
  177. package/path-ops.js.map +1 -0
  178. package/path-ops.test.d.ts +2 -0
  179. package/path-ops.test.d.ts.map +1 -0
  180. package/path-ops.test.js +39 -0
  181. package/path-ops.test.js.map +1 -0
  182. package/resolve-once.d.ts +59 -0
  183. package/resolve-once.d.ts.map +1 -0
  184. package/resolve-once.js +212 -0
  185. package/resolve-once.js.map +1 -0
  186. package/resolve-once.test.d.ts +2 -0
  187. package/resolve-once.test.d.ts.map +1 -0
  188. package/resolve-once.test.js +392 -0
  189. package/resolve-once.test.js.map +1 -0
  190. package/result.d.ts +34 -0
  191. package/result.d.ts.map +1 -0
  192. package/result.js +94 -0
  193. package/result.js.map +1 -0
  194. package/result.test.d.ts +2 -0
  195. package/result.test.d.ts.map +1 -0
  196. package/result.test.js +83 -0
  197. package/result.test.js.map +1 -0
  198. package/runtime.d.ts +9 -0
  199. package/runtime.d.ts.map +1 -0
  200. package/runtime.js +33 -0
  201. package/runtime.js.map +1 -0
  202. package/src/jsr.json +1 -1
  203. package/src/uri.ts +62 -37
  204. package/sys-abstraction.d.ts +43 -0
  205. package/sys-abstraction.d.ts.map +1 -0
  206. package/sys-abstraction.js +28 -0
  207. package/sys-abstraction.js.map +1 -0
  208. package/sys-env.d.ts +46 -0
  209. package/sys-env.d.ts.map +1 -0
  210. package/sys-env.js +161 -0
  211. package/sys-env.js.map +1 -0
  212. package/sys-env.test.d.ts +2 -0
  213. package/sys-env.test.d.ts.map +1 -0
  214. package/sys-env.test.js +170 -0
  215. package/sys-env.test.js.map +1 -0
  216. package/test/index.d.ts +3 -4
  217. package/test/index.d.ts.map +1 -0
  218. package/test/index.js +2 -13
  219. package/test/index.js.map +1 -1
  220. package/test/log-write-stream.d.ts +27 -0
  221. package/test/log-write-stream.d.ts.map +1 -0
  222. package/test/log-write-stream.js +78 -0
  223. package/test/log-write-stream.js.map +1 -0
  224. package/test/mock-logger.d.ts +14 -0
  225. package/test/mock-logger.d.ts.map +1 -0
  226. package/test/mock-logger.js +29 -0
  227. package/test/mock-logger.js.map +1 -0
  228. package/test/mock-logger.test.d.ts +2 -0
  229. package/test/mock-logger.test.d.ts.map +1 -0
  230. package/test/mock-logger.test.js +63 -0
  231. package/test/mock-logger.test.js.map +1 -0
  232. package/test/test-exit-handler.d.ts +2 -0
  233. package/test/test-exit-handler.d.ts.map +1 -0
  234. package/test/test-exit-handler.js +61 -0
  235. package/test/test-exit-handler.js.map +1 -0
  236. package/time.d.ts +14 -0
  237. package/time.d.ts.map +1 -0
  238. package/time.js +13 -0
  239. package/time.js.map +1 -0
  240. package/tracer.d.ts +59 -0
  241. package/tracer.d.ts.map +1 -0
  242. package/tracer.js +174 -0
  243. package/tracer.js.map +1 -0
  244. package/tracer.test.d.ts +2 -0
  245. package/tracer.test.d.ts.map +1 -0
  246. package/tracer.test.js +304 -0
  247. package/tracer.test.js.map +1 -0
  248. package/ts/smoke/smoke.js +1 -1
  249. package/ts/smoke/smoke.js.map +1 -1
  250. package/ts/src/base-sys-abstraction.js +20 -8
  251. package/ts/src/base-sys-abstraction.js.map +1 -1
  252. package/ts/src/cf/cf-basic-sys-abstraction.js +3 -3
  253. package/ts/src/cf/cf-basic-sys-abstraction.js.map +1 -1
  254. package/ts/src/cf/cf-env-actions.js +3 -1
  255. package/ts/src/cf/cf-env-actions.js.map +1 -1
  256. package/ts/src/coerce-binary.js +1 -1
  257. package/ts/src/coerce-binary.js.map +1 -1
  258. package/ts/src/deno/deno-basic-sys-abstraction.js +3 -3
  259. package/ts/src/deno/deno-basic-sys-abstraction.js.map +1 -1
  260. package/ts/src/deno/deno-env-actions.js +3 -9
  261. package/ts/src/deno/deno-env-actions.js.map +1 -1
  262. package/ts/src/deno/deno-file-service.js +2 -0
  263. package/ts/src/deno/deno-file-service.js.map +1 -1
  264. package/ts/src/deno/deno-sys-abstraction.js +21 -21
  265. package/ts/src/deno/deno-sys-abstraction.js.map +1 -1
  266. package/ts/src/future.js +13 -26
  267. package/ts/src/future.js.map +1 -1
  268. package/ts/src/http_header.js +2 -3
  269. package/ts/src/http_header.js.map +1 -1
  270. package/ts/src/json-en-decoder.js +3 -2
  271. package/ts/src/json-en-decoder.js.map +1 -1
  272. package/ts/src/log-level-impl.js +4 -6
  273. package/ts/src/log-level-impl.js.map +1 -1
  274. package/ts/src/log-writer-impl.js +9 -5
  275. package/ts/src/log-writer-impl.js.map +1 -1
  276. package/ts/src/logger-impl.js +15 -5
  277. package/ts/src/logger-impl.js.map +1 -1
  278. package/ts/src/logger.js +3 -3
  279. package/ts/src/logger.js.map +1 -1
  280. package/ts/src/logger.test.js +7 -19
  281. package/ts/src/logger.test.js.map +1 -1
  282. package/ts/src/lru-map-set.js +3 -1
  283. package/ts/src/lru-map-set.js.map +1 -1
  284. package/ts/src/node/mock-file-service.js +1 -4
  285. package/ts/src/node/mock-file-service.js.map +1 -1
  286. package/ts/src/node/node-basic-sys-abstraction.js +4 -3
  287. package/ts/src/node/node-basic-sys-abstraction.js.map +1 -1
  288. package/ts/src/node/node-env-actions.js +3 -9
  289. package/ts/src/node/node-env-actions.js.map +1 -1
  290. package/ts/src/node/node-file-service.js +1 -0
  291. package/ts/src/node/node-file-service.js.map +1 -1
  292. package/ts/src/node/node-sys-abstraction.js +21 -21
  293. package/ts/src/node/node-sys-abstraction.js.map +1 -1
  294. package/ts/src/option.js +1 -0
  295. package/ts/src/option.js.map +1 -1
  296. package/ts/src/path-ops.js +21 -30
  297. package/ts/src/path-ops.js.map +1 -1
  298. package/ts/src/resolve-once.js +17 -13
  299. package/ts/src/resolve-once.js.map +1 -1
  300. package/ts/src/result.js +2 -0
  301. package/ts/src/result.js.map +1 -1
  302. package/ts/src/sys-abstraction.js +1 -1
  303. package/ts/src/sys-abstraction.js.map +1 -1
  304. package/ts/src/sys-env.js +2 -1
  305. package/ts/src/sys-env.js.map +1 -1
  306. package/ts/src/sys-env.test.js +6 -19
  307. package/ts/src/sys-env.test.js.map +1 -1
  308. package/ts/src/test/log-write-stream.js +10 -6
  309. package/ts/src/test/log-write-stream.js.map +1 -1
  310. package/ts/src/test/mock-logger.js +6 -6
  311. package/ts/src/test/mock-logger.js.map +1 -1
  312. package/ts/src/test/test-exit-handler.js +1 -2
  313. package/ts/src/test/test-exit-handler.js.map +1 -1
  314. package/ts/src/tracer.js +10 -3
  315. package/ts/src/tracer.js.map +1 -1
  316. package/ts/src/tracer.test.js +5 -9
  317. package/ts/src/tracer.test.js.map +1 -1
  318. package/ts/src/txt-en-decoder.js +2 -4
  319. package/ts/src/txt-en-decoder.js.map +1 -1
  320. package/ts/src/types.js +2 -6
  321. package/ts/src/types.js.map +1 -1
  322. package/ts/src/uri.d.ts +4 -0
  323. package/ts/src/uri.d.ts.map +1 -1
  324. package/ts/src/uri.js +54 -34
  325. package/ts/src/uri.js.map +1 -1
  326. package/ts/src/uri.test.js +27 -0
  327. package/ts/src/uri.test.js.map +1 -1
  328. package/ts/src/utils/console-write-stream.js +8 -5
  329. package/ts/src/utils/console-write-stream.js.map +1 -1
  330. package/ts/src/utils/fanout-write-stream.js +4 -1
  331. package/ts/src/utils/fanout-write-stream.js.map +1 -1
  332. package/ts/src/utils/rebuffer.test.js +1 -1
  333. package/ts/src/utils/rebuffer.test.js.map +1 -1
  334. package/ts/src/utils/relative-path.js +1 -0
  335. package/ts/src/utils/relative-path.js.map +1 -1
  336. package/ts/src/utils/stream-map.test.js +1 -1
  337. package/ts/src/utils/stream-map.test.js.map +1 -1
  338. package/ts/src/web/web-basic-sys-abstraction.js +3 -3
  339. package/ts/src/web/web-basic-sys-abstraction.js.map +1 -1
  340. package/ts/src/web/web-env-actions.js +2 -1
  341. package/ts/src/web/web-env-actions.js.map +1 -1
  342. package/txt-en-decoder.d.ts +11 -0
  343. package/txt-en-decoder.d.ts.map +1 -0
  344. package/txt-en-decoder.js +37 -0
  345. package/txt-en-decoder.js.map +1 -0
  346. package/txt-en-decoder.test.d.ts +2 -0
  347. package/txt-en-decoder.test.d.ts.map +1 -0
  348. package/txt-en-decoder.test.js +48 -0
  349. package/txt-en-decoder.test.js.map +1 -0
  350. package/types.d.ts +16 -0
  351. package/types.d.ts.map +1 -0
  352. package/types.js +11 -0
  353. package/types.js.map +1 -0
  354. package/uri.d.ts +137 -0
  355. package/uri.d.ts.map +1 -0
  356. package/uri.js +567 -0
  357. package/uri.js.map +1 -0
  358. package/uri.test.d.ts +2 -0
  359. package/uri.test.d.ts.map +1 -0
  360. package/uri.test.js +633 -0
  361. package/uri.test.js.map +1 -0
  362. package/utils/coerce-uint8.d.ts +8 -0
  363. package/utils/coerce-uint8.d.ts.map +1 -0
  364. package/utils/coerce-uint8.js +34 -0
  365. package/utils/coerce-uint8.js.map +1 -0
  366. package/utils/console-write-stream.d.ts +21 -0
  367. package/utils/console-write-stream.d.ts.map +1 -0
  368. package/utils/console-write-stream.js +66 -0
  369. package/utils/console-write-stream.js.map +1 -0
  370. package/utils/fanout-write-stream.d.ts +12 -0
  371. package/utils/fanout-write-stream.d.ts.map +1 -0
  372. package/utils/fanout-write-stream.js +27 -0
  373. package/utils/fanout-write-stream.js.map +1 -0
  374. package/utils/get-params-result.d.ts +8 -0
  375. package/utils/get-params-result.d.ts.map +1 -0
  376. package/utils/get-params-result.js +45 -0
  377. package/utils/get-params-result.js.map +1 -0
  378. package/utils/index.d.ts +12 -3
  379. package/utils/index.d.ts.map +1 -0
  380. package/utils/index.js +11 -50
  381. package/utils/index.js.map +1 -1
  382. package/utils/rebuffer.d.ts +3 -0
  383. package/utils/rebuffer.d.ts.map +1 -0
  384. package/utils/rebuffer.js +66 -0
  385. package/utils/rebuffer.js.map +1 -0
  386. package/utils/rebuffer.test.d.ts +2 -0
  387. package/utils/rebuffer.test.d.ts.map +1 -0
  388. package/utils/rebuffer.test.js +77 -0
  389. package/utils/rebuffer.test.js.map +1 -0
  390. package/utils/relative-path.d.ts +18 -0
  391. package/utils/relative-path.d.ts.map +1 -0
  392. package/utils/relative-path.js +148 -0
  393. package/utils/relative-path.js.map +1 -0
  394. package/utils/relative-path.test.d.ts +2 -0
  395. package/utils/relative-path.test.d.ts.map +1 -0
  396. package/utils/relative-path.test.js +187 -0
  397. package/utils/relative-path.test.js.map +1 -0
  398. package/utils/sorted-objec.test.d.ts +2 -0
  399. package/utils/sorted-objec.test.d.ts.map +1 -0
  400. package/utils/sorted-objec.test.js +20 -0
  401. package/utils/sorted-objec.test.js.map +1 -0
  402. package/utils/sorted-object.d.ts +4 -0
  403. package/utils/sorted-object.d.ts.map +1 -0
  404. package/utils/sorted-object.js +16 -0
  405. package/utils/sorted-object.js.map +1 -0
  406. package/utils/stream-map.d.ts +9 -0
  407. package/utils/stream-map.d.ts.map +1 -0
  408. package/utils/stream-map.js +63 -0
  409. package/utils/stream-map.js.map +1 -0
  410. package/utils/stream-map.test.d.ts +2 -0
  411. package/utils/stream-map.test.d.ts.map +1 -0
  412. package/utils/stream-map.test.js +87 -0
  413. package/utils/stream-map.test.js.map +1 -0
  414. package/utils/stream-test-helper.d.ts +17 -0
  415. package/utils/stream-test-helper.d.ts.map +1 -0
  416. package/utils/stream-test-helper.js +45 -0
  417. package/utils/stream-test-helper.js.map +1 -0
  418. package/utils/stream2string.d.ts +3 -0
  419. package/utils/stream2string.d.ts.map +1 -0
  420. package/utils/stream2string.js +48 -0
  421. package/utils/stream2string.js.map +1 -0
  422. package/utils/stream2string.test.d.ts +2 -0
  423. package/utils/stream2string.test.d.ts.map +1 -0
  424. package/utils/stream2string.test.js +29 -0
  425. package/utils/stream2string.test.js.map +1 -0
  426. package/utils/string2stream.d.ts +4 -0
  427. package/utils/string2stream.d.ts.map +1 -0
  428. package/utils/string2stream.js +13 -0
  429. package/utils/string2stream.js.map +1 -0
  430. package/utils/string2stream.test.d.ts +2 -0
  431. package/utils/string2stream.test.d.ts.map +1 -0
  432. package/utils/string2stream.test.js +6 -0
  433. package/utils/string2stream.test.js.map +1 -0
  434. package/utils/stripper.d.ts +3 -0
  435. package/utils/stripper.d.ts.map +1 -0
  436. package/utils/stripper.js +59 -0
  437. package/utils/stripper.js.map +1 -0
  438. package/utils/stripper.test.d.ts +2 -0
  439. package/utils/stripper.test.d.ts.map +1 -0
  440. package/utils/stripper.test.js +128 -0
  441. package/utils/stripper.test.js.map +1 -0
  442. package/utils/uint8array-equal.d.ts +2 -0
  443. package/utils/uint8array-equal.d.ts.map +1 -0
  444. package/utils/uint8array-equal.js +12 -0
  445. package/utils/uint8array-equal.js.map +1 -0
  446. package/version.d.ts +2 -0
  447. package/version.d.ts.map +1 -0
  448. package/version.js +4 -0
  449. package/version.js.map +1 -0
  450. package/web/index.d.ts +2 -7
  451. package/web/index.d.ts.map +1 -0
  452. package/web/index.js +1 -7
  453. package/web/index.js.map +1 -1
  454. package/web/web-basic-sys-abstraction.d.ts +4 -0
  455. package/web/web-basic-sys-abstraction.d.ts.map +1 -0
  456. package/web/web-basic-sys-abstraction.js +45 -0
  457. package/web/web-basic-sys-abstraction.js.map +1 -0
  458. package/web/web-env-actions.d.ts +14 -0
  459. package/web/web-env-actions.d.ts.map +1 -0
  460. package/web/web-env-actions.js +36 -0
  461. package/web/web-env-actions.js.map +1 -0
  462. package/base-sys-abstraction-DgTynXGV.d.cts +0 -95
  463. package/cf/index.cjs +0 -1110
  464. package/cf/index.cjs.map +0 -1
  465. package/cf/index.d.cts +0 -30
  466. package/chunk-2DWEYXJH.js +0 -1681
  467. package/chunk-2DWEYXJH.js.map +0 -1
  468. package/chunk-FOALXQST.js +0 -89
  469. package/chunk-FOALXQST.js.map +0 -1
  470. package/chunk-FURW5CDL.js +0 -792
  471. package/chunk-FURW5CDL.js.map +0 -1
  472. package/chunk-NJMNJYN2.js +0 -270
  473. package/chunk-NJMNJYN2.js.map +0 -1
  474. package/chunk-NTOGMD33.js +0 -684
  475. package/chunk-NTOGMD33.js.map +0 -1
  476. package/deno/index.cjs +0 -1280
  477. package/deno/index.cjs.map +0 -1
  478. package/deno/index.d.cts +0 -37
  479. package/get-params-result-4xHM5s4_.d.cts +0 -71
  480. package/get-params-result-4xHM5s4_.d.ts +0 -71
  481. package/index-CMLb7JSe.d.ts +0 -97
  482. package/index-DH243CLH.d.cts +0 -297
  483. package/index-LQOsS7gM.d.cts +0 -97
  484. package/index-RMC1sv15.d.ts +0 -297
  485. package/index.cjs +0 -4009
  486. package/index.cjs.map +0 -1
  487. package/index.d.cts +0 -396
  488. package/metafile-cjs.json +0 -1
  489. package/metafile-esm.json +0 -1
  490. package/node/index.cjs +0 -1335
  491. package/node/index.cjs.map +0 -1
  492. package/node/index.d.cts +0 -45
  493. package/stripper-BpBUUZ9p.d.cts +0 -4
  494. package/stripper-BpBUUZ9p.d.ts +0 -4
  495. package/sys-abstraction-CeAxxg9H.d.ts +0 -117
  496. package/sys-abstraction-DDAwGTnk.d.cts +0 -117
  497. package/test/index.cjs +0 -2994
  498. package/test/index.cjs.map +0 -1
  499. package/test/index.d.cts +0 -4
  500. package/utils/index.cjs +0 -778
  501. package/utils/index.cjs.map +0 -1
  502. package/utils/index.d.cts +0 -3
  503. package/web/index.cjs +0 -1153
  504. package/web/index.cjs.map +0 -1
  505. package/web/index.d.cts +0 -7
package/runtime.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ export interface Runtime {
2
+ isNodeIsh: boolean;
3
+ isBrowser: boolean;
4
+ isDeno: boolean;
5
+ isReactNative: boolean;
6
+ isCFWorker: boolean;
7
+ }
8
+ export declare function runtimeFn(): Runtime;
9
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/runtime.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;CACrB;AAeD,wBAAgB,SAAS,IAAI,OAAO,CAwBnC"}
package/runtime.js ADDED
@@ -0,0 +1,33 @@
1
+ function isSet(value, ref = globalThis) {
2
+ const [head, ...tail] = value.split(".");
3
+ if (["object", "function"].includes(typeof ref) && ref && ["object", "function"].includes(typeof ref[head]) && ref[head]) {
4
+ if (tail.length <= 1) {
5
+ return true;
6
+ }
7
+ return isSet(tail.join("."), ref[head]);
8
+ }
9
+ return false;
10
+ }
11
+ export function runtimeFn() {
12
+ const gt = globalThis;
13
+ let isReactNative = isSet("navigator.product") && typeof gt["navigator"] === "object" && gt["navigator"]["product"] === "ReactNative";
14
+ let isNodeIsh = false;
15
+ if (!isSet("Deno")) {
16
+ isNodeIsh = isSet("process.versions.node") && !isReactNative;
17
+ }
18
+ let isDeno = isSet("Deno");
19
+ const isCFWorker = isSet("caches.default") && isSet("WebSocketPair");
20
+ if (isCFWorker) {
21
+ isDeno = false;
22
+ isNodeIsh = false;
23
+ isReactNative = false;
24
+ }
25
+ return {
26
+ isNodeIsh,
27
+ isBrowser: !(isNodeIsh || isDeno || isCFWorker || isReactNative),
28
+ isDeno,
29
+ isReactNative,
30
+ isCFWorker,
31
+ };
32
+ }
33
+ //# sourceMappingURL=runtime.js.map
package/runtime.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/runtime.ts"],"names":[],"mappings":"AAQA,SAAS,KAAK,CAAC,KAAa,EAAE,MAA+B,UAAU;IACrE,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACzH,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAA4B,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAID,MAAM,UAAU,SAAS;IAEvB,MAAM,EAAE,GAAQ,UAAU,CAAC;IAC3B,IAAI,aAAa,GAEf,KAAK,CAAC,mBAAmB,CAAC,IAAI,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,QAAQ,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,KAAK,aAAa,CAAC;IACpH,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACnB,SAAS,GAAG,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC;IAC/D,CAAC;IACD,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACrE,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,GAAG,KAAK,CAAC;QACf,SAAS,GAAG,KAAK,CAAC;QAClB,aAAa,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,OAAO;QACL,SAAS;QACT,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,CAAC;QAChE,MAAM;QACN,aAAa;QACb,UAAU;KACX,CAAC;AACJ,CAAC"}
package/src/jsr.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adviser/cement",
3
- "version": "0.4.7",
3
+ "version": "0.4.8",
4
4
  "exports": {
5
5
  ".": "./index.ts",
6
6
  "./web": "./web/index.ts",
package/src/uri.ts CHANGED
@@ -350,6 +350,47 @@ function getParamResult(
350
350
  return Result.Ok(val);
351
351
  }
352
352
 
353
+ function setParams(
354
+ src: string,
355
+ val: Record<string, string | number | boolean | Date | null | undefined>,
356
+ mode: "reset" | "merge" = "reset",
357
+ out: URLSearchParams = new URLSearchParams(""),
358
+ ): string {
359
+ let preset: Record<string, string>;
360
+ switch (mode) {
361
+ case "reset":
362
+ preset = {};
363
+ break;
364
+ case "merge":
365
+ default:
366
+ preset = Object.fromEntries(new URLSearchParams(src).entries());
367
+ break;
368
+ }
369
+ // const out = new URLSearchParams("");
370
+ for (const [key, value] of Object.entries({ ...preset, ...val }).sort((a, b) => a[0].localeCompare(b[0]))) {
371
+ switch (typeof value) {
372
+ case "string":
373
+ out.set(key, value);
374
+ break;
375
+ case "number":
376
+ out.set(key, value.toString());
377
+ break;
378
+ case "boolean":
379
+ out.set(key, value ? "true" : "false");
380
+ break;
381
+ default:
382
+ if (value instanceof Date) {
383
+ out.set(key, value.toISOString());
384
+ } else {
385
+ // eslint-disable-next-line no-console
386
+ console.error(`unsupported type: ${typeof value} ignore key: ${key}`);
387
+ }
388
+ break;
389
+ }
390
+ }
391
+ return out.toString();
392
+ }
393
+
353
394
  export class BuildURI implements URIInterface<BuildURI> {
354
395
  _url: MutableURL; // pathname needs this
355
396
  private constructor(url: MutableURL) {
@@ -457,44 +498,20 @@ export class BuildURI implements URIInterface<BuildURI> {
457
498
  return this;
458
499
  }
459
500
 
501
+ searchParams(
502
+ val: Record<string, string | number | boolean | Date | null | undefined>,
503
+ mode: "reset" | "merge" = "reset",
504
+ ): BuildURI {
505
+ // this._url.searchParams = setParams(this._url.hash.replace(/^#/, ''), val, mode);
506
+ setParams(this._url.search, val, mode, this._url.searchParams);
507
+ return this;
508
+ }
509
+
460
510
  hashParams(
461
511
  val: Record<string, string | number | boolean | Date | null | undefined>,
462
512
  mode: "reset" | "merge" = "reset",
463
513
  ): BuildURI {
464
- let preset: Record<string, string>;
465
- switch (mode) {
466
- case "reset":
467
- this._url.hash = "";
468
- preset = {};
469
- break;
470
- case "merge":
471
- default:
472
- preset = Object.fromEntries(new URLSearchParams(this._url.hash.replace(/^#/, "")).entries());
473
- break;
474
- }
475
- const out = new URLSearchParams("");
476
- for (const [key, value] of Object.entries({ ...preset, ...val }).sort((a, b) => a[0].localeCompare(b[0]))) {
477
- switch (typeof value) {
478
- case "string":
479
- out.set(key, value);
480
- break;
481
- case "number":
482
- out.set(key, value.toString());
483
- break;
484
- case "boolean":
485
- out.set(key, value ? "true" : "false");
486
- break;
487
- default:
488
- if (value instanceof Date) {
489
- out.set(key, value.toISOString());
490
- } else {
491
- // eslint-disable-next-line no-console
492
- console.error(`unsupported type: ${typeof value} ignore key: ${key}`);
493
- }
494
- break;
495
- }
496
- }
497
- this._url.hash = out.toString();
514
+ this._url.hash = setParams(this._url.hash.replace(/^#/, ""), val, mode);
498
515
  return this;
499
516
  }
500
517
 
@@ -564,6 +581,14 @@ export class BuildURI implements URIInterface<BuildURI> {
564
581
  return BuildURI.from(this.toString());
565
582
  }
566
583
 
584
+ get onlyHostAndSchema(): string {
585
+ return this.clone().pathname("").cleanParams().hash("").toString();
586
+ }
587
+
588
+ get withoutHostAndSchema(): string {
589
+ return this._url.pathname + this._url.search + this._url.hash;
590
+ }
591
+
567
592
  URI(): URI {
568
593
  return URI.from(this._url);
569
594
  }
@@ -679,9 +704,9 @@ export class URI implements URIInterface<URI> {
679
704
  // return this._url.username;
680
705
  // }
681
706
 
682
- // get search(): string {
683
- // return this._url.search;
684
- // }
707
+ get search(): string {
708
+ return this._url.search;
709
+ }
685
710
 
686
711
  get protocol(): string {
687
712
  return this._url.protocol;
@@ -0,0 +1,43 @@
1
+ import { FileService } from "./file-service.js";
2
+ import { Env } from "./sys-env.js";
3
+ import { Time } from "./time.js";
4
+ export declare const TimeMode: {
5
+ REAL: string;
6
+ CONST: string;
7
+ STEP: string;
8
+ };
9
+ export type TimeMode = (typeof TimeMode)[keyof typeof TimeMode];
10
+ export declare const RandomMode: {
11
+ CONST: string;
12
+ STEP: string;
13
+ RANDOM: string;
14
+ };
15
+ export type RandomMode = (typeof RandomMode)[keyof typeof RandomMode];
16
+ export declare const IDMode: {
17
+ UUID: string;
18
+ CONST: string;
19
+ STEP: string;
20
+ };
21
+ export type IDMode = (typeof IDMode)[keyof typeof IDMode];
22
+ export declare function String2TimeMode(s?: string): TimeMode;
23
+ export type VoidFunc = () => void | Promise<void>;
24
+ export interface SystemService {
25
+ OnExit(hdl: VoidFunc): VoidFunc;
26
+ Exit(code: number): void;
27
+ }
28
+ export interface RuntimeSysAbstraction extends BasicSysAbstraction {
29
+ System(): SystemService;
30
+ FileSystem(): FileService;
31
+ }
32
+ export interface BasicRuntimeService {
33
+ Stdout(): WritableStream<Uint8Array>;
34
+ Stderr(): WritableStream<Uint8Array>;
35
+ Env(): Env;
36
+ Args(): string[];
37
+ }
38
+ export interface BasicSysAbstraction extends BasicRuntimeService {
39
+ Time(): Time;
40
+ NextId(): string;
41
+ Random0ToValue(value: number): number;
42
+ }
43
+ //# sourceMappingURL=sys-abstraction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sys-abstraction.d.ts","sourceRoot":"","sources":["../../../src/sys-abstraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,eAAO,MAAM,QAAQ;;;;CAIpB,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE,eAAO,MAAM,UAAU;;;;CAItB,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEtE,eAAO,MAAM,MAAM;;;;CAIlB,CAAC;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAE1D,wBAAgB,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAWpD;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAChC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAChE,MAAM,IAAI,aAAa,CAAC;IACxB,UAAU,IAAI,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;IACrC,GAAG,IAAI,GAAG,CAAC;IACX,IAAI,IAAI,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,IAAI,MAAM,CAAC;IACjB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACvC"}
@@ -0,0 +1,28 @@
1
+ export const TimeMode = {
2
+ REAL: "real",
3
+ CONST: "const",
4
+ STEP: "step",
5
+ };
6
+ export const RandomMode = {
7
+ CONST: "const",
8
+ STEP: "step",
9
+ RANDOM: "random",
10
+ };
11
+ export const IDMode = {
12
+ UUID: "uuid",
13
+ CONST: "const",
14
+ STEP: "step",
15
+ };
16
+ export function String2TimeMode(s) {
17
+ switch (s?.toLowerCase()) {
18
+ case "real":
19
+ return TimeMode.REAL;
20
+ case "const":
21
+ return TimeMode.CONST;
22
+ case "step":
23
+ return TimeMode.STEP;
24
+ default:
25
+ return TimeMode.REAL;
26
+ }
27
+ }
28
+ //# sourceMappingURL=sys-abstraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sys-abstraction.js","sourceRoot":"","sources":["../../../src/sys-abstraction.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;CACb,CAAC;AAGF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;CACjB,CAAC;AAGF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;CACb,CAAC;AAGF,MAAM,UAAU,eAAe,CAAC,CAAU;IACxC,QAAQ,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC;QACzB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB;YACE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC;AACH,CAAC"}
package/sys-env.d.ts ADDED
@@ -0,0 +1,46 @@
1
+ import { Result } from "./result.js";
2
+ import { KeysParam } from "./utils/get-params-result.js";
3
+ export type EnvTuple = ([string, string] | [string, string][] | Record<string, string> | Iterator<[string, string]>)[];
4
+ export interface EnvMap {
5
+ get(key: string): string | undefined;
6
+ set(key: string, value?: string): void;
7
+ delete(key: string): void;
8
+ keys(): string[];
9
+ }
10
+ export interface EnvActions extends EnvMap {
11
+ active(): boolean;
12
+ register(env: Env): Env;
13
+ }
14
+ export interface EnvFactoryOpts {
15
+ readonly symbol: string;
16
+ readonly presetEnv: Map<string, string>;
17
+ }
18
+ type OnSetFn = (key: string, value?: string) => void;
19
+ export interface OnSetItem {
20
+ readonly filter: Set<string>;
21
+ readonly fn: OnSetFn;
22
+ }
23
+ export interface Env extends EnvMap {
24
+ onSet(fn: OnSetFn, ...filter: string[]): void;
25
+ gets(...kparams: KeysParam): Result<Record<string, string>>;
26
+ sets(...keys: EnvTuple): void;
27
+ }
28
+ export type EnvFactoryFn = (opts: Partial<EnvFactoryOpts>) => EnvActions;
29
+ export declare function registerEnvAction(fn: EnvFactoryFn): () => void;
30
+ export declare function envFactory(opts?: Partial<EnvFactoryOpts>): Env;
31
+ export declare class EnvImpl implements Env {
32
+ readonly _map: EnvMap;
33
+ constructor(map: EnvMap, opts?: Partial<EnvFactoryOpts>);
34
+ gets(...kparams: KeysParam): Result<Record<string, string>>;
35
+ sets(...keys: EnvTuple): void;
36
+ _updatePresets(presetEnv?: Map<string, string>): void;
37
+ _applyOnSet(onSet: OnSetItem[], key?: string, value?: string): void;
38
+ readonly _onSet: OnSetItem[];
39
+ keys(): string[];
40
+ onSet(fn: OnSetFn, ...filter: string[]): void;
41
+ get(key: string): string | undefined;
42
+ set(key: string, value?: string): void;
43
+ delete(key: string): void;
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=sys-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sys-env.d.ts","sourceRoot":"","sources":["../../../src/sys-env.ts"],"names":[],"mappings":"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"}
package/sys-env.js ADDED
@@ -0,0 +1,161 @@
1
+ import { DenoEnvActions } from "./deno/deno-env-actions.js";
2
+ import { NodeEnvActions } from "./node/node-env-actions.js";
3
+ import { BrowserEnvActions } from "./web/web-env-actions.js";
4
+ import { CFEnvActions } from "./cf/cf-env-actions.js";
5
+ import { KeyedResolvOnce } from "./resolve-once.js";
6
+ import { getParamsResult } from "./utils/get-params-result.js";
7
+ const envActions = [
8
+ { id: "cf", fn: (opts) => CFEnvActions.new(opts) },
9
+ { id: "node", fn: (opts) => NodeEnvActions.new(opts) },
10
+ { id: "deno", fn: (opts) => DenoEnvActions.new(opts) },
11
+ { id: "browser", fn: (opts) => BrowserEnvActions.new(opts) },
12
+ ];
13
+ export function registerEnvAction(fn) {
14
+ const id = `id-${Math.random()}`;
15
+ envActions.unshift({ id, fn });
16
+ _envFactories.unget(id);
17
+ return () => {
18
+ const index = envActions.findIndex((i) => i.id === id);
19
+ if (index >= 0) {
20
+ envActions.splice(index, 1);
21
+ }
22
+ };
23
+ }
24
+ const _envFactories = new KeyedResolvOnce();
25
+ export function envFactory(opts = {}) {
26
+ const found = envActions.find((fi) => fi.fn(opts).active());
27
+ if (!found) {
28
+ throw new Error("SysContainer:envFactory: no env available");
29
+ }
30
+ return _envFactories.get(found.id).once(() => {
31
+ const action = found.fn(opts);
32
+ const ret = new EnvImpl(action, opts);
33
+ action.register(ret);
34
+ return ret;
35
+ });
36
+ }
37
+ function isIterable(obj) {
38
+ if (obj == null) {
39
+ return false;
40
+ }
41
+ return typeof obj[Symbol.iterator] === "function";
42
+ }
43
+ export class EnvImpl {
44
+ _map;
45
+ constructor(map, opts = {}) {
46
+ this._map = map;
47
+ this._updatePresets(opts.presetEnv);
48
+ }
49
+ gets(...kparams) {
50
+ return getParamsResult(kparams, {
51
+ getParam: (k) => this.get(k),
52
+ });
53
+ }
54
+ sets(...keys) {
55
+ keys.forEach((key) => {
56
+ if (Array.isArray(key)) {
57
+ if (key.length === 2) {
58
+ const [k, v] = key;
59
+ if (typeof k === "string" && typeof v === "string") {
60
+ this.set(k, v);
61
+ return;
62
+ }
63
+ }
64
+ for (const item of key) {
65
+ if (Array.isArray(item)) {
66
+ if (item.length === 2) {
67
+ const [k, v] = item;
68
+ if (typeof k === "string" && typeof v === "string") {
69
+ this.set(k, v);
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+ else {
76
+ if (isIterable(key)) {
77
+ for (const [k, v] of key) {
78
+ if (typeof k === "string" && typeof v === "string") {
79
+ this.set(k, v);
80
+ }
81
+ }
82
+ }
83
+ else {
84
+ const rKey = key;
85
+ for (const k in rKey) {
86
+ const v = rKey[k];
87
+ if (typeof k === "string" && typeof v === "string") {
88
+ this.set(k, v);
89
+ }
90
+ }
91
+ }
92
+ }
93
+ });
94
+ }
95
+ _updatePresets(presetEnv) {
96
+ if (!presetEnv) {
97
+ return;
98
+ }
99
+ for (const [key, value] of presetEnv) {
100
+ this._map.set(key, value);
101
+ }
102
+ }
103
+ _applyOnSet(onSet, key, value) {
104
+ onSet.forEach((item) => {
105
+ let keys = [];
106
+ if (key) {
107
+ keys = [key];
108
+ }
109
+ else {
110
+ keys = this._map.keys();
111
+ }
112
+ keys
113
+ .filter((k) => {
114
+ if (item.filter.size === 0) {
115
+ return true;
116
+ }
117
+ if (item.filter.has(k)) {
118
+ return true;
119
+ }
120
+ return false;
121
+ })
122
+ .forEach((k) => {
123
+ let v;
124
+ if (!key && !value) {
125
+ v = this._map.get(k);
126
+ }
127
+ else if (key && !value) {
128
+ v = undefined;
129
+ }
130
+ else {
131
+ v = value;
132
+ }
133
+ item.fn(k, v);
134
+ });
135
+ });
136
+ }
137
+ _onSet = [];
138
+ keys() {
139
+ return this._map.keys();
140
+ }
141
+ onSet(fn, ...filter) {
142
+ const item = { filter: new Set(filter), fn };
143
+ this._onSet.push(item);
144
+ this._applyOnSet([item]);
145
+ }
146
+ get(key) {
147
+ return this._map.get(key);
148
+ }
149
+ set(key, value) {
150
+ if (!value) {
151
+ return;
152
+ }
153
+ this._map.set(key, value);
154
+ this._applyOnSet(this._onSet, key, value);
155
+ }
156
+ delete(key) {
157
+ this._map.delete(key);
158
+ this._applyOnSet(this._onSet, key);
159
+ }
160
+ }
161
+ //# sourceMappingURL=sys-env.js.map
package/sys-env.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sys-env.js","sourceRoot":"","sources":["../../../src/sys-env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sys-env.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sys-env.test.d.ts","sourceRoot":"","sources":["../../../src/sys-env.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,170 @@
1
+ import { EnvImpl, envFactory, registerEnvAction, runtimeFn, param } from "@adviser/cement";
2
+ import { CFEnvActions } from "./cf/cf-env-actions.js";
3
+ import { BrowserEnvActions } from "./web/web-env-actions.js";
4
+ describe("sys_env", () => {
5
+ let key;
6
+ const envImpl = envFactory();
7
+ beforeEach(() => {
8
+ key = `key-${Math.random()}`;
9
+ });
10
+ it("actions", () => {
11
+ expect(envImpl.get(key)).toBeUndefined();
12
+ envImpl.set(key, "value");
13
+ expect(envImpl.get(key)).toBe("value");
14
+ envImpl.set(key);
15
+ expect(envImpl.get(key)).toBe("value");
16
+ envImpl.delete(key);
17
+ expect(envImpl.get(key)).toBeUndefined();
18
+ });
19
+ it("preset", () => {
20
+ const env = new EnvImpl(BrowserEnvActions.new({}), {
21
+ presetEnv: new Map([[key, "value"]]),
22
+ });
23
+ expect(env.get(key)).toBe("value");
24
+ env.delete(key);
25
+ expect(env.get(key)).toBeUndefined();
26
+ });
27
+ it("onSet wild card", () => {
28
+ const fn = vi.fn();
29
+ envImpl.onSet(fn);
30
+ expect(fn).toBeCalledTimes(envImpl.keys().length);
31
+ expect(fn.mock.calls.map((i) => i[0]).sort()).toEqual(envImpl.keys().sort());
32
+ expect(fn.mock.calls.map((i) => i[1]).sort()).toEqual(envImpl
33
+ .keys()
34
+ .map((i) => envImpl.get(i))
35
+ .sort());
36
+ });
37
+ it("onSet filter", () => {
38
+ const env = new EnvImpl(BrowserEnvActions.new({}), {
39
+ presetEnv: new Map([[key, "value"]]),
40
+ });
41
+ const fn = vi.fn();
42
+ env.onSet(fn, key);
43
+ expect(fn).toBeCalledTimes(1);
44
+ expect(fn.mock.calls[0]).toEqual([key, "value"]);
45
+ env.set(key, "value2");
46
+ expect(fn).toBeCalledTimes(2);
47
+ expect(fn.mock.calls[1]).toEqual([key, "value2"]);
48
+ env.delete(key);
49
+ expect(fn).toBeCalledTimes(3);
50
+ expect(fn.mock.calls[2]).toEqual([key, undefined]);
51
+ });
52
+ it("test register", () => {
53
+ class TestEnvActions {
54
+ #map;
55
+ constructor(opts) {
56
+ this.#map = opts.presetEnv || new Map();
57
+ }
58
+ register(env) {
59
+ return env;
60
+ }
61
+ active() {
62
+ return true;
63
+ }
64
+ keys() {
65
+ return Array.from(this.#map.keys());
66
+ }
67
+ get(key) {
68
+ return this.#map.get(key);
69
+ }
70
+ set(key, value) {
71
+ if (value) {
72
+ this.#map.set(key, value);
73
+ }
74
+ }
75
+ delete(key) {
76
+ this.#map.delete(key);
77
+ }
78
+ }
79
+ let tea = {};
80
+ const unreg = registerEnvAction((opts) => {
81
+ tea = new TestEnvActions(opts);
82
+ return tea;
83
+ });
84
+ const env = envFactory({
85
+ presetEnv: new Map([[key, "value"]]),
86
+ });
87
+ expect(env.get(key)).toBe("value");
88
+ expect(tea.get(key)).toBe("value");
89
+ unreg();
90
+ });
91
+ if (runtimeFn().isCFWorker) {
92
+ it("CFWorker env", () => {
93
+ const env = envFactory();
94
+ const onSet = vi.fn();
95
+ env.onSet(onSet);
96
+ CFEnvActions.inject({ "cf-key": "cf-value" });
97
+ env.set("cf-key-1", "cf-value-2");
98
+ expect(onSet).toBeCalledWith("cf-key", "cf-value");
99
+ expect(env.get("cf-key")).toBe("cf-value");
100
+ });
101
+ }
102
+ it("gets ok", () => {
103
+ const res0 = envImpl.gets({ key: param.REQUIRED });
104
+ expect(res0.isErr()).toBeTruthy();
105
+ envImpl.set("key", "value");
106
+ const res = envImpl.gets({ key: param.REQUIRED });
107
+ expect(res.isOk()).toBeTruthy();
108
+ expect(res.unwrap()).toEqual({ key: "value" });
109
+ });
110
+ it("gets error", () => {
111
+ envImpl.set("key", "value");
112
+ const res = envImpl.gets({
113
+ unk1: param.REQUIRED,
114
+ unk2: param.REQUIRED,
115
+ key: param.REQUIRED,
116
+ });
117
+ expect(res.isErr()).toBeTruthy();
118
+ expect(res.Err().message).toEqual("missing parameters: unk1,unk2");
119
+ });
120
+ it("sets array flat tuple", () => {
121
+ envImpl.sets(["key1", "value1"], ["key2", "value2"]);
122
+ expect(envImpl.get("key1")).toBe("value1");
123
+ expect(envImpl.get("key2")).toBe("value2");
124
+ });
125
+ it("sets array array tuple", () => {
126
+ envImpl.sets([
127
+ ["key1", "value1"],
128
+ ["key2", "value2"],
129
+ ]);
130
+ expect(envImpl.get("key1")).toBe("value1");
131
+ expect(envImpl.get("key2")).toBe("value2");
132
+ });
133
+ it("sets object", () => {
134
+ envImpl.sets({
135
+ key1: "value1",
136
+ key2: "value2",
137
+ });
138
+ expect(envImpl.get("key1")).toBe("value1");
139
+ expect(envImpl.get("key2")).toBe("value2");
140
+ });
141
+ it("sets iterator", () => {
142
+ envImpl.sets(new Map(Object.entries({
143
+ key1: "value1",
144
+ key2: "value2",
145
+ })).entries());
146
+ expect(envImpl.get("key1")).toBe("value1");
147
+ expect(envImpl.get("key2")).toBe("value2");
148
+ });
149
+ it("sets combination", () => {
150
+ envImpl.sets(new Map(Object.entries({
151
+ key1: "value1",
152
+ key2: "value2",
153
+ })).entries(), {
154
+ key3: "value3",
155
+ key4: "value4",
156
+ }, ["key5", "value5"], ["key6", "value6"], [
157
+ ["key7", "value7"],
158
+ ["key8", "value8"],
159
+ ]);
160
+ expect(envImpl.get("key1")).toBe("value1");
161
+ expect(envImpl.get("key2")).toBe("value2");
162
+ expect(envImpl.get("key3")).toBe("value3");
163
+ expect(envImpl.get("key4")).toBe("value4");
164
+ expect(envImpl.get("key5")).toBe("value5");
165
+ expect(envImpl.get("key6")).toBe("value6");
166
+ expect(envImpl.get("key7")).toBe("value7");
167
+ expect(envImpl.get("key8")).toBe("value8");
168
+ });
169
+ });
170
+ //# sourceMappingURL=sys-env.test.js.map