powerlines 0.36.21 → 0.36.23

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 (292) hide show
  1. package/dist/{api-BpNyqnfS.d.ts → api-DpWSpwpF.d.ts} +1 -1
  2. package/dist/{api-DhwCWSTm.d.cts → api-N_vxh61N.d.cts} +1 -1
  3. package/dist/api.cjs +2 -2
  4. package/dist/api.d.cts +2 -2
  5. package/dist/api.d.ts +2 -2
  6. package/dist/api.js +1 -1
  7. package/dist/astro.cjs +4 -4
  8. package/dist/astro.d.cts +1 -1
  9. package/dist/astro.d.ts +1 -1
  10. package/dist/astro.js +3 -3
  11. package/dist/chunk-4YZZZ76B.cjs +12 -0
  12. package/dist/{chunk-HJQ77IG5.js → chunk-A42QONGV.js} +3 -3
  13. package/dist/{chunk-Q3EYAAGO.cjs → chunk-A7AUGAHH.cjs} +7 -2
  14. package/dist/{chunk-FGJPJGGC.js → chunk-DIXXAXEC.js} +3 -3
  15. package/dist/chunk-DIYWNVH6.cjs +12 -0
  16. package/dist/{chunk-GIOACISS.js → chunk-EXY3RCJH.js} +2 -2
  17. package/dist/{chunk-UZQX7NJH.js → chunk-G6FXWWCK.js} +3 -3
  18. package/dist/chunk-KXRVVFNK.js +11 -0
  19. package/dist/{chunk-CXAAEG5H.js → chunk-LSRYGX7V.js} +3 -3
  20. package/dist/{chunk-HICL77ZC.js → chunk-MP6EXEZ3.js} +121 -6
  21. package/dist/{chunk-C4AK4CRR.cjs → chunk-MYNL7MRH.cjs} +4 -4
  22. package/dist/{chunk-6JCE4KHT.js → chunk-PZ5LJOMU.js} +3 -3
  23. package/dist/{chunk-NAC3BK64.cjs → chunk-Q2IEO3ZW.cjs} +121 -6
  24. package/dist/{chunk-FZIDEHX4.cjs → chunk-SAVBNMWQ.cjs} +4 -4
  25. package/dist/{chunk-IJXEMXLH.cjs → chunk-TP4FRF4H.cjs} +2 -2
  26. package/dist/{chunk-B6F32B3B.cjs → chunk-ZBDGZ7QG.cjs} +5 -5
  27. package/dist/{context-AF63GCTq.d.cts → context-bJmSqotS.d.cts} +46 -4
  28. package/dist/{context-BTkUT4s7.d.ts → context-vT1NL0QB.d.ts} +46 -4
  29. package/dist/esbuild.cjs +6 -6
  30. package/dist/esbuild.d.cts +1 -1
  31. package/dist/esbuild.d.ts +1 -1
  32. package/dist/esbuild.js +3 -3
  33. package/dist/farm.cjs +3 -3
  34. package/dist/farm.d.cts +1 -1
  35. package/dist/farm.d.ts +1 -1
  36. package/dist/farm.js +2 -2
  37. package/dist/index.cjs +19 -15
  38. package/dist/index.d.cts +4 -4
  39. package/dist/index.d.ts +4 -4
  40. package/dist/index.js +4 -4
  41. package/dist/lib/{api-D0iAknc0.d.ts → api-BpxWBxyN.d.ts} +1 -1
  42. package/dist/lib/{api-B8z7HzBo.d.cts → api-DuKKNbVT.d.cts} +1 -1
  43. package/dist/lib/build/esbuild.d.cts +2 -2
  44. package/dist/lib/build/esbuild.d.ts +2 -2
  45. package/dist/lib/build/index.d.cts +4 -4
  46. package/dist/lib/build/index.d.ts +4 -4
  47. package/dist/lib/build/rolldown.d.cts +2 -2
  48. package/dist/lib/build/rolldown.d.ts +2 -2
  49. package/dist/lib/build/rollup.d.cts +2 -2
  50. package/dist/lib/build/rollup.d.ts +2 -2
  51. package/dist/lib/build/rspack.d.cts +2 -2
  52. package/dist/lib/build/rspack.d.ts +2 -2
  53. package/dist/lib/build/tsdown.d.cts +2 -2
  54. package/dist/lib/build/tsdown.d.ts +2 -2
  55. package/dist/lib/build/tsup.d.cts +2 -2
  56. package/dist/lib/build/tsup.d.ts +2 -2
  57. package/dist/lib/build/unbuild.d.cts +4 -4
  58. package/dist/lib/build/unbuild.d.ts +4 -4
  59. package/dist/lib/build/vite.d.cts +2 -2
  60. package/dist/lib/build/vite.d.ts +2 -2
  61. package/dist/lib/build/webpack.d.cts +2 -2
  62. package/dist/lib/build/webpack.d.ts +2 -2
  63. package/dist/lib/{chunk-Y5KONJVR.cjs → chunk-4LHV7MWI.cjs} +9 -2
  64. package/dist/lib/chunk-4LHV7MWI.cjs.map +1 -0
  65. package/dist/lib/{chunk-QBE4SZN6.cjs → chunk-FO5AJ2PR.cjs} +11 -4
  66. package/dist/lib/chunk-FO5AJ2PR.cjs.map +1 -0
  67. package/dist/lib/{chunk-VF3S2D2V.cjs → chunk-HE2IFXW4.cjs} +91 -8
  68. package/dist/lib/chunk-HE2IFXW4.cjs.map +1 -0
  69. package/dist/lib/{chunk-5QMQ5G73.js → chunk-I3GWGYDB.js} +10 -3
  70. package/dist/lib/chunk-I3GWGYDB.js.map +1 -0
  71. package/dist/lib/{chunk-YITP2ODI.cjs → chunk-I4ZNMVU2.cjs} +22 -11
  72. package/dist/lib/chunk-I4ZNMVU2.cjs.map +1 -0
  73. package/dist/lib/{chunk-BZFQYIWK.cjs → chunk-IJ5YZSJO.cjs} +14 -14
  74. package/dist/lib/{chunk-BZFQYIWK.cjs.map → chunk-IJ5YZSJO.cjs.map} +1 -1
  75. package/dist/lib/{chunk-YJEZASNU.js → chunk-NE26SC53.js} +10 -3
  76. package/dist/lib/chunk-NE26SC53.js.map +1 -0
  77. package/dist/lib/{chunk-CTMPQSK7.js → chunk-QHKZQZJG.js} +9 -2
  78. package/dist/lib/chunk-QHKZQZJG.js.map +1 -0
  79. package/dist/lib/{chunk-AQNUFK3L.cjs → chunk-RI3JLIUH.cjs} +11 -4
  80. package/dist/lib/chunk-RI3JLIUH.cjs.map +1 -0
  81. package/dist/lib/{chunk-WWWGFMAA.js → chunk-RZ4LXAZQ.js} +4 -4
  82. package/dist/lib/{chunk-WWWGFMAA.js.map → chunk-RZ4LXAZQ.js.map} +1 -1
  83. package/dist/lib/{chunk-67XMKJXQ.js → chunk-TGIY7Q6N.js} +4 -4
  84. package/dist/lib/{chunk-67XMKJXQ.js.map → chunk-TGIY7Q6N.js.map} +1 -1
  85. package/dist/lib/{chunk-QOVSEBZF.js → chunk-UNJET22R.js} +89 -6
  86. package/dist/lib/chunk-UNJET22R.js.map +1 -0
  87. package/dist/lib/{chunk-BT6ROHLM.js → chunk-UOKSPMLS.js} +17 -6
  88. package/dist/lib/chunk-UOKSPMLS.js.map +1 -0
  89. package/dist/lib/{chunk-WQNUM4K3.js → chunk-WF65LEKW.js} +3 -3
  90. package/dist/lib/{chunk-WQNUM4K3.js.map → chunk-WF65LEKW.js.map} +1 -1
  91. package/dist/lib/{chunk-HZ2RLNLV.cjs → chunk-Z64F7URT.cjs} +6 -6
  92. package/dist/lib/{chunk-HZ2RLNLV.cjs.map → chunk-Z64F7URT.cjs.map} +1 -1
  93. package/dist/lib/{chunk-3P36ZLXD.cjs → chunk-ZBC4D6BA.cjs} +16 -16
  94. package/dist/lib/{chunk-3P36ZLXD.cjs.map → chunk-ZBC4D6BA.cjs.map} +1 -1
  95. package/dist/lib/{config-Ds6GSd34.d.ts → config-B-3g4vlp.d.ts} +45 -4
  96. package/dist/lib/{config-BbtAp2KJ.d.cts → config-BaPuSNy_.d.cts} +45 -4
  97. package/dist/lib/config-file.d.cts +2 -2
  98. package/dist/lib/config-file.d.ts +2 -2
  99. package/dist/lib/contexts/api-context.cjs +8 -8
  100. package/dist/lib/contexts/api-context.d.cts +4 -4
  101. package/dist/lib/contexts/api-context.d.ts +4 -4
  102. package/dist/lib/contexts/api-context.js +7 -7
  103. package/dist/lib/contexts/context.cjs +6 -6
  104. package/dist/lib/contexts/context.d.cts +38 -5
  105. package/dist/lib/contexts/context.d.ts +38 -5
  106. package/dist/lib/contexts/context.js +5 -5
  107. package/dist/lib/contexts/environment-context.cjs +7 -7
  108. package/dist/lib/contexts/environment-context.d.cts +4 -4
  109. package/dist/lib/contexts/environment-context.d.ts +4 -4
  110. package/dist/lib/contexts/environment-context.js +6 -6
  111. package/dist/lib/contexts/index.cjs +10 -10
  112. package/dist/lib/contexts/index.d.cts +4 -4
  113. package/dist/lib/contexts/index.d.ts +4 -4
  114. package/dist/lib/contexts/index.js +7 -7
  115. package/dist/lib/contexts/plugin-context.d.cts +4 -4
  116. package/dist/lib/contexts/plugin-context.d.ts +4 -4
  117. package/dist/lib/entry.d.cts +2 -2
  118. package/dist/lib/entry.d.ts +2 -2
  119. package/dist/lib/fs/index.cjs +5 -5
  120. package/dist/lib/fs/index.d.cts +2 -2
  121. package/dist/lib/fs/index.d.ts +2 -2
  122. package/dist/lib/fs/index.js +4 -4
  123. package/dist/lib/fs/storage/base.cjs +2 -2
  124. package/dist/lib/fs/storage/base.d.cts +8 -1
  125. package/dist/lib/fs/storage/base.d.ts +8 -1
  126. package/dist/lib/fs/storage/base.js +1 -1
  127. package/dist/lib/fs/storage/file-system.cjs +3 -3
  128. package/dist/lib/fs/storage/file-system.d.cts +8 -1
  129. package/dist/lib/fs/storage/file-system.d.ts +8 -1
  130. package/dist/lib/fs/storage/file-system.js +2 -2
  131. package/dist/lib/fs/storage/index.cjs +6 -6
  132. package/dist/lib/fs/storage/index.d.cts +1 -1
  133. package/dist/lib/fs/storage/index.d.ts +1 -1
  134. package/dist/lib/fs/storage/index.js +3 -3
  135. package/dist/lib/fs/storage/virtual.cjs +3 -3
  136. package/dist/lib/fs/storage/virtual.d.cts +8 -1
  137. package/dist/lib/fs/storage/virtual.d.ts +8 -1
  138. package/dist/lib/fs/storage/virtual.js +2 -2
  139. package/dist/lib/fs/vfs.cjs +5 -5
  140. package/dist/lib/fs/vfs.d.cts +2 -2
  141. package/dist/lib/fs/vfs.d.ts +2 -2
  142. package/dist/lib/fs/vfs.js +4 -4
  143. package/dist/lib/{fs-BmOAZ4An.d.cts → fs-DkLcPGg-.d.cts} +15 -1
  144. package/dist/lib/{fs-BmOAZ4An.d.ts → fs-DkLcPGg-.d.ts} +15 -1
  145. package/dist/lib/index.cjs +13 -13
  146. package/dist/lib/index.d.cts +5 -5
  147. package/dist/lib/index.d.ts +5 -5
  148. package/dist/lib/index.js +8 -8
  149. package/dist/lib/{internal-Dxf3D0k2.d.ts → internal-8-kuDx9k.d.ts} +2 -2
  150. package/dist/lib/{internal-DkOa3QW7.d.cts → internal-Dvez9bHr.d.cts} +2 -2
  151. package/dist/lib/logger.d.cts +2 -2
  152. package/dist/lib/logger.d.ts +2 -2
  153. package/dist/lib/typescript/import-transformer.d.cts +2 -2
  154. package/dist/lib/typescript/import-transformer.d.ts +2 -2
  155. package/dist/lib/typescript/index.d.cts +2 -2
  156. package/dist/lib/typescript/index.d.ts +2 -2
  157. package/dist/lib/typescript/ts-morph.d.cts +2 -2
  158. package/dist/lib/typescript/ts-morph.d.ts +2 -2
  159. package/dist/lib/unplugin/factory.cjs +9 -9
  160. package/dist/lib/unplugin/factory.d.cts +4 -4
  161. package/dist/lib/unplugin/factory.d.ts +4 -4
  162. package/dist/lib/unplugin/factory.js +8 -8
  163. package/dist/lib/unplugin/helpers.d.cts +2 -2
  164. package/dist/lib/unplugin/helpers.d.ts +2 -2
  165. package/dist/lib/unplugin/index.cjs +9 -9
  166. package/dist/lib/unplugin/index.d.cts +4 -4
  167. package/dist/lib/unplugin/index.d.ts +4 -4
  168. package/dist/lib/unplugin/index.js +8 -8
  169. package/dist/lib/unplugin/plugin.d.cts +4 -4
  170. package/dist/lib/unplugin/plugin.d.ts +4 -4
  171. package/dist/lib/{unplugin-ByfVrTII.d.ts → unplugin-CAhjFZ9E.d.ts} +2 -2
  172. package/dist/lib/{unplugin-Z1cKpW1R.d.cts → unplugin-Ckt_H0y0.d.cts} +2 -2
  173. package/dist/lib/utilities/bundle.d.cts +2 -2
  174. package/dist/lib/utilities/bundle.d.ts +2 -2
  175. package/dist/lib/utilities/cache.d.cts +2 -2
  176. package/dist/lib/utilities/cache.d.ts +2 -2
  177. package/dist/lib/utilities/file-header.d.cts +2 -2
  178. package/dist/lib/utilities/file-header.d.ts +2 -2
  179. package/dist/lib/utilities/index.d.cts +2 -2
  180. package/dist/lib/utilities/index.d.ts +2 -2
  181. package/dist/lib/utilities/meta.d.cts +2 -2
  182. package/dist/lib/utilities/meta.d.ts +2 -2
  183. package/dist/lib/utilities/resolve.d.cts +2 -2
  184. package/dist/lib/utilities/resolve.d.ts +2 -2
  185. package/dist/lib/utilities/source-file.d.cts +2 -2
  186. package/dist/lib/utilities/source-file.d.ts +2 -2
  187. package/dist/lib/utilities/source-map.d.cts +2 -2
  188. package/dist/lib/utilities/source-map.d.ts +2 -2
  189. package/dist/lib/utilities/worker.d.cts +2 -2
  190. package/dist/lib/utilities/worker.d.ts +2 -2
  191. package/dist/lib/utilities/write-file.d.cts +2 -2
  192. package/dist/lib/utilities/write-file.d.ts +2 -2
  193. package/dist/next.cjs +4 -4
  194. package/dist/next.js +3 -3
  195. package/dist/nuxt.cjs +7 -7
  196. package/dist/nuxt.d.cts +1 -1
  197. package/dist/nuxt.d.ts +1 -1
  198. package/dist/nuxt.js +5 -5
  199. package/dist/plugin-utils/{context-BoulfuGO.d.cts → context-DV64LM07.d.cts} +57 -2
  200. package/dist/plugin-utils/{context-BoulfuGO.d.ts → context-DV64LM07.d.ts} +57 -2
  201. package/dist/plugin-utils/context-helpers.d.cts +1 -1
  202. package/dist/plugin-utils/context-helpers.d.ts +1 -1
  203. package/dist/plugin-utils/enforce.d.cts +1 -1
  204. package/dist/plugin-utils/enforce.d.ts +1 -1
  205. package/dist/plugin-utils/extend.d.cts +1 -1
  206. package/dist/plugin-utils/extend.d.ts +1 -1
  207. package/dist/plugin-utils/get-config-path.d.cts +1 -1
  208. package/dist/plugin-utils/get-config-path.d.ts +1 -1
  209. package/dist/plugin-utils/helpers.d.cts +1 -1
  210. package/dist/plugin-utils/helpers.d.ts +1 -1
  211. package/dist/plugin-utils/index.d.cts +1 -1
  212. package/dist/plugin-utils/index.d.ts +1 -1
  213. package/dist/plugin-utils/merge.d.cts +1 -1
  214. package/dist/plugin-utils/merge.d.ts +1 -1
  215. package/dist/plugin-utils/paths.d.cts +1 -1
  216. package/dist/plugin-utils/paths.d.ts +1 -1
  217. package/dist/rolldown.cjs +6 -6
  218. package/dist/rolldown.d.cts +1 -1
  219. package/dist/rolldown.d.ts +1 -1
  220. package/dist/rolldown.js +3 -3
  221. package/dist/rollup.cjs +3 -3
  222. package/dist/rollup.d.cts +1 -1
  223. package/dist/rollup.d.ts +1 -1
  224. package/dist/rollup.js +2 -2
  225. package/dist/rspack.cjs +3 -3
  226. package/dist/rspack.d.cts +1 -1
  227. package/dist/rspack.d.ts +1 -1
  228. package/dist/rspack.js +2 -2
  229. package/dist/tsdown.cjs +4 -4
  230. package/dist/tsdown.js +3 -3
  231. package/dist/tsup.cjs +4 -4
  232. package/dist/tsup.js +3 -3
  233. package/dist/types/api.d.cts +2 -2
  234. package/dist/types/api.d.ts +2 -2
  235. package/dist/types/babel.d.cts +1 -1
  236. package/dist/types/babel.d.ts +1 -1
  237. package/dist/types/commands.d.cts +1 -1
  238. package/dist/types/commands.d.ts +1 -1
  239. package/dist/types/config.d.cts +1 -1
  240. package/dist/types/config.d.ts +1 -1
  241. package/dist/types/context.cjs +2 -2
  242. package/dist/types/context.d.cts +1 -1
  243. package/dist/types/context.d.ts +1 -1
  244. package/dist/types/context.js +1 -1
  245. package/dist/types/fs.cjs +7 -3
  246. package/dist/types/fs.d.cts +16 -1
  247. package/dist/types/fs.d.ts +16 -1
  248. package/dist/types/fs.js +1 -1
  249. package/dist/types/hooks.d.cts +1 -1
  250. package/dist/types/hooks.d.ts +1 -1
  251. package/dist/types/index.cjs +9 -5
  252. package/dist/types/index.d.cts +3 -3
  253. package/dist/types/index.d.ts +3 -3
  254. package/dist/types/index.js +2 -2
  255. package/dist/types/internal.d.cts +2 -2
  256. package/dist/types/internal.d.ts +2 -2
  257. package/dist/types/plugin.d.cts +1 -1
  258. package/dist/types/plugin.d.ts +1 -1
  259. package/dist/types/resolved.d.cts +1 -1
  260. package/dist/types/resolved.d.ts +1 -1
  261. package/dist/types/unplugin.d.cts +2 -2
  262. package/dist/types/unplugin.d.ts +2 -2
  263. package/dist/unloader.cjs +3 -3
  264. package/dist/unloader.d.cts +1 -1
  265. package/dist/unloader.d.ts +1 -1
  266. package/dist/unloader.js +2 -2
  267. package/dist/unplugin.cjs +5 -5
  268. package/dist/unplugin.d.cts +2 -2
  269. package/dist/unplugin.d.ts +2 -2
  270. package/dist/unplugin.js +3 -3
  271. package/dist/vite.cjs +6 -6
  272. package/dist/vite.d.cts +1 -1
  273. package/dist/vite.d.ts +1 -1
  274. package/dist/vite.js +3 -3
  275. package/dist/webpack.cjs +6 -6
  276. package/dist/webpack.d.cts +1 -1
  277. package/dist/webpack.d.ts +1 -1
  278. package/dist/webpack.js +3 -3
  279. package/package.json +15 -15
  280. package/dist/chunk-2AOMCPQX.cjs +0 -12
  281. package/dist/chunk-FFVBHH5L.js +0 -7
  282. package/dist/chunk-LCNL5IWM.cjs +0 -12
  283. package/dist/lib/chunk-5QMQ5G73.js.map +0 -1
  284. package/dist/lib/chunk-AQNUFK3L.cjs.map +0 -1
  285. package/dist/lib/chunk-BT6ROHLM.js.map +0 -1
  286. package/dist/lib/chunk-CTMPQSK7.js.map +0 -1
  287. package/dist/lib/chunk-QBE4SZN6.cjs.map +0 -1
  288. package/dist/lib/chunk-QOVSEBZF.js.map +0 -1
  289. package/dist/lib/chunk-VF3S2D2V.cjs.map +0 -1
  290. package/dist/lib/chunk-Y5KONJVR.cjs.map +0 -1
  291. package/dist/lib/chunk-YITP2ODI.cjs.map +0 -1
  292. package/dist/lib/chunk-YJEZASNU.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/fs/storage/base.ts"],"names":["BaseStorageAdapter","options","preset","base","resolve","isReadOnly","exists","key","existsSync","get","getSync","set","value","setSync","mkdirSync","_","mkdir","dirPath","Promise","remove","removeSync","clearSync","keys","listSync","length","map","startsWith","joinPaths","clear","list","all","isDirectorySync","isDirectory","isFileSync","isFile","dispose","Symbol","asyncDispose","_dispose","test","Error","name","JSON","stringify","appendPath","correctPath","replace"],"mappings":"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","file":"chunk-QHKZQZJG.js","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { appendPath } from \"@stryke/path/append\";\nimport { correctPath } from \"@stryke/path/correct-path\";\nimport { joinPaths } from \"@stryke/path/join\";\nimport { MaybePromise } from \"@stryke/types/base\";\nimport { resolve } from \"node:path\";\nimport { StorageAdapter, StoragePreset } from \"../../../types/fs\";\n\nexport interface StorageAdapterOptions {\n base: string;\n isReadOnly?: boolean;\n ignore?: string | string[];\n}\n\n/**\n * Abstract base class for storage adapters, providing a template for storage operations.\n */\nexport abstract class BaseStorageAdapter<\n TOptions extends StorageAdapterOptions = StorageAdapterOptions\n> implements StorageAdapter {\n /**\n * Indicates whether the storage adapter has been disposed.\n */\n #isDisposed = false;\n\n /**\n * A name identifying the storage adapter type.\n */\n public abstract name: string;\n\n /**\n * Configuration options for the storage adapter.\n */\n public options: TOptions;\n\n /**\n * The storage preset for the adapter.\n *\n * @remarks\n * This can be used as an alternate way to identify the type of storage being used.\n */\n public readonly preset?: StoragePreset | null = null;\n\n /**\n * Constructor for the BaseStorageAdapter.\n *\n * @param options - Configuration options for the storage adapter.\n */\n public constructor(options: TOptions = { base: \"/\" } as TOptions) {\n this.options = options;\n this.options.base = resolve(options.base);\n this.options.isReadOnly = !!options.isReadOnly;\n }\n\n /**\n * Synchronously checks if a key exists in the storage.\n *\n * @param key - The key to check for existence.\n * @returns Returns `true` if the key exists, otherwise `false`.\n */\n public abstract existsSync(key: string): boolean;\n\n /**\n * Asynchronously checks if a key exists in the storage.\n *\n * @param key - The key to check for existence.\n * @returns A promise that resolves to `true` if the key exists, otherwise `false`.\n */\n public async exists(key: string): Promise<boolean> {\n return this.existsSync(key);\n }\n\n /**\n * Synchronously retrieves the value associated with a given key.\n *\n * @param key - The key whose value is to be retrieved.\n * @returns The value associated with the key, or `null` if the key does not exist.\n */\n public abstract getSync(key: string): string | null;\n\n /**\n * Asynchronously retrieves the value associated with a given key.\n *\n * @param key - The key whose value is to be retrieved.\n * @returns A promise that resolves to the value associated with the key, or `null` if the key does not exist.\n */\n public async get(key: string): Promise<string | null> {\n return this.getSync(key);\n }\n\n /**\n * Synchronously sets the value for a given key.\n *\n * @param key - The key to set the value for.\n * @param value - The value to set.\n */\n public abstract setSync(key: string, value: string): void;\n\n /**\n * Asynchronously sets the value for a given key.\n *\n * @param key - The key to set the value for.\n * @param value - The value to set.\n */\n public async set(key: string, value: string): Promise<void> {\n if (!this.options.isReadOnly) {\n this.setSync(key, value);\n }\n }\n\n /**\n * Synchronously creates a directory at the specified path.\n *\n * @param _ - The path of the directory to create.\n */\n public mkdirSync(_: string) {}\n\n /**\n * Creates a directory at the specified path.\n *\n * @param dirPath - The path of the directory to create.\n */\n public async mkdir(dirPath: string): Promise<void> {\n return Promise.resolve(this.mkdirSync(dirPath));\n }\n\n /**\n * Synchronously removes a key from the storage.\n *\n * @param key - The key to remove.\n */\n public abstract removeSync(key: string): void;\n\n /**\n * Asynchronously removes a key from the storage.\n *\n * @param key - The key to remove.\n */\n public async remove(key: string): Promise<void> {\n if (!this.options.isReadOnly) {\n this.removeSync(key);\n }\n }\n\n /**\n * Synchronously removes all entries from the storage that match the provided base path.\n *\n * @param base - The base path to clear keys from.\n */\n public clearSync(base?: string) {\n if (!this.options.isReadOnly) {\n const keys = this.listSync(base || this.options.base);\n if (!keys.length) {\n return;\n }\n\n keys.map(key =>\n this.removeSync(\n base && !key.startsWith(base) ? joinPaths(base, key) : key\n )\n );\n }\n }\n\n /**\n * Asynchronously removes all entries from the storage that match the provided base path.\n *\n * @param base - The base path to clear keys from.\n * @returns A promise that resolves when the operation is complete.\n */\n public async clear(base?: string): Promise<void> {\n if (!this.options.isReadOnly) {\n const keys = await this.list(base || this.options.base);\n if (!keys.length) {\n return;\n }\n\n await Promise.all(\n keys.map(async key =>\n this.remove(\n base && !key.startsWith(base) ? joinPaths(base, key) : key\n )\n )\n );\n }\n }\n\n /**\n * Lists all keys under a given base path synchronously.\n *\n * @param base - The base path to list keys from.\n * @returns An array of keys under the specified base path.\n */\n public abstract listSync(base?: string): string[];\n\n /**\n * Asynchronously lists all keys under a given base path.\n *\n * @param base - The base path to list keys from.\n * @returns A promise that resolves to an array of keys under the specified base path.\n */\n public async list(base?: string): Promise<string[]> {\n return this.listSync(base);\n }\n\n /**\n * Synchronously checks if the given key is a directory.\n *\n * @param _ - The key to check.\n * @returns `true` if the key is a directory, otherwise `false`.\n */\n public isDirectorySync(_: string): boolean {\n return false;\n }\n\n /**\n * Checks if the given key is a directory.\n *\n * @param key - The key to check.\n * @returns A promise that resolves to `true` if the key is a directory, otherwise `false`.\n */\n public async isDirectory(key: string) {\n return Promise.resolve(this.isDirectorySync(key));\n }\n\n /**\n * Synchronously checks if the given key is a file.\n *\n * @param key - The key to check.\n * @returns `true` if the key is a file, otherwise `false`.\n */\n public isFileSync(key: string): boolean {\n return this.existsSync(key) && !this.isDirectorySync(key);\n }\n\n /**\n * Checks if the given key is a file.\n *\n * @param key - The key to check.\n * @returns A promise that resolves to `true` if the key is a file, otherwise `false`.\n */\n public async isFile(key: string) {\n return Promise.resolve(this.isFileSync(key));\n }\n\n /**\n * Disposes of the storage adapter, releasing any held resources.\n *\n * @returns A promise that resolves when the disposal is complete.\n */\n public dispose(): MaybePromise<void> {\n return Promise.resolve();\n }\n\n /**\n * Async dispose method to clean up resources.\n *\n * @returns A promise that resolves when disposal is complete.\n */\n public async [Symbol.asyncDispose]() {\n return this._dispose();\n }\n\n /**\n * Resolves a given key to its full path within the storage adapter.\n *\n * @param key - The key to resolve.\n * @returns The resolved full path for the key.\n */\n protected resolve(key: string = this.options.base) {\n if (/\\.\\.:|\\.\\.$/.test(key)) {\n throw new Error(\n `[${this.name}]: Invalid key: ${JSON.stringify(key)} provided to storage adapter.`\n );\n }\n\n return appendPath(correctPath(key).replace(/:/g, \"/\"), this.options.base);\n }\n\n /**\n * Disposes of the storage adapter, releasing any held resources.\n *\n * @returns A promise that resolves when the disposal is complete.\n */\n protected async _dispose(): Promise<void> {\n if (!this.#isDisposed) {\n await Promise.resolve(this.dispose());\n this.#isDisposed = true;\n }\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkY5KONJVR_cjs = require('./chunk-Y5KONJVR.cjs');
3
+ var chunk4LHV7MWI_cjs = require('./chunk-4LHV7MWI.cjs');
4
4
  var chunkYYG2XJQN_cjs = require('./chunk-YYG2XJQN.cjs');
5
5
  var chunkPK6SKIKE_cjs = require('./chunk-PK6SKIKE.cjs');
6
6
  var exists = require('@stryke/fs/exists');
@@ -12,7 +12,7 @@ var writeFile = require('@stryke/fs/write-file');
12
12
  var fs = require('fs');
13
13
  var promises = require('fs/promises');
14
14
 
15
- var FileSystemStorageAdapter = class extends chunkY5KONJVR_cjs.BaseStorageAdapter {
15
+ var FileSystemStorageAdapter = class extends chunk4LHV7MWI_cjs.BaseStorageAdapter {
16
16
  static {
17
17
  chunkPK6SKIKE_cjs.__name(this, "FileSystemStorageAdapter");
18
18
  }
@@ -21,6 +21,13 @@ var FileSystemStorageAdapter = class extends chunkY5KONJVR_cjs.BaseStorageAdapte
21
21
  */
22
22
  name = "file-system";
23
23
  /**
24
+ * The storage preset for the adapter.
25
+ *
26
+ * @remarks
27
+ * This can be used as an alternate way to identify the type of storage being used.
28
+ */
29
+ preset = "fs";
30
+ /**
24
31
  * Constructor for the FileSystemStorageAdapter.
25
32
  *
26
33
  * @param options - Configuration options for the storage adapter.
@@ -173,5 +180,5 @@ var FileSystemStorageAdapter = class extends chunkY5KONJVR_cjs.BaseStorageAdapte
173
180
  };
174
181
 
175
182
  exports.FileSystemStorageAdapter = FileSystemStorageAdapter;
176
- //# sourceMappingURL=chunk-AQNUFK3L.cjs.map
177
- //# sourceMappingURL=chunk-AQNUFK3L.cjs.map
183
+ //# sourceMappingURL=chunk-RI3JLIUH.cjs.map
184
+ //# sourceMappingURL=chunk-RI3JLIUH.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/fs/storage/file-system.ts"],"names":["FileSystemStorageAdapter","BaseStorageAdapter","name","preset","options","existsSync","key","resolve","exists","getSync","readFileSync","get","readFile","setSync","value","isReadOnly","writeFileSync","set","writeFile","removeSync","unlinkSync","err","ignoreNotfound","remove","unlink","catch","mkdirSync","dirPath","createDirectorySync","mkdir","createDirectory","listSync","base","listFilesSync","ignore","list","listFiles","then","r","isDirectorySync","isDirectory","isFileSync","isFile"],"mappings":"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","file":"chunk-RI3JLIUH.cjs","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { exists, existsSync } from \"@stryke/fs/exists\";\nimport { createDirectory, createDirectorySync } from \"@stryke/fs/helpers\";\nimport { isDirectory, isFile } from \"@stryke/fs/is-file\";\nimport { listFiles, listFilesSync } from \"@stryke/fs/list-files\";\nimport { readFile, readFileSync } from \"@stryke/fs/read-file\";\nimport { writeFile, writeFileSync } from \"@stryke/fs/write-file\";\nimport { unlinkSync } from \"node:fs\";\nimport { unlink } from \"node:fs/promises\";\nimport { ignoreNotfound } from \"../helpers\";\nimport { BaseStorageAdapter, StorageAdapterOptions } from \"./base\";\n\nexport type SetSyncOptions = Parameters<typeof writeFileSync>[2];\nexport type SetOptions = Parameters<typeof writeFile>[2];\n\n/**\n * File system storage adapter implementation.\n */\nexport class FileSystemStorageAdapter extends BaseStorageAdapter {\n /**\n * A name identifying the storage adapter type.\n */\n public name = \"file-system\";\n\n /**\n * The storage preset for the adapter.\n *\n * @remarks\n * This can be used as an alternate way to identify the type of storage being used.\n */\n public override readonly preset = \"fs\";\n\n /**\n * Constructor for the FileSystemStorageAdapter.\n *\n * @param options - Configuration options for the storage adapter.\n */\n public constructor(options?: StorageAdapterOptions) {\n super(options);\n }\n\n /**\n * Synchronously checks if a key exists in the storage.\n *\n * @param key - The key to check for existence.\n * @returns Returns `true` if the key exists, otherwise `false`.\n */\n public existsSync(key: string): boolean {\n return existsSync(this.resolve(key));\n }\n\n /**\n * Asynchronously checks if a key exists in the storage.\n *\n * @param key - The key to check for existence.\n * @returns A promise that resolves to `true` if the key exists, otherwise `false`.\n */\n public override async exists(key: string): Promise<boolean> {\n return exists(this.resolve(key));\n }\n\n /**\n * Synchronously retrieves the value associated with a given key.\n *\n * @param key - The key whose value is to be retrieved.\n * @returns The value associated with the key, or `null` if the key does not exist.\n */\n public getSync(key: string): string | null {\n return readFileSync(this.resolve(key));\n }\n\n /**\n * Asynchronously retrieves the value associated with a given key.\n *\n * @param key - The key whose value is to be retrieved.\n * @returns A promise that resolves to the value associated with the key, or `null` if the key does not exist.\n */\n public override async get(key: string): Promise<string | null> {\n return readFile(this.resolve(key));\n }\n\n /**\n * Synchronously sets the value for a given key.\n *\n * @param key - The key to set the value for.\n * @param value - The value to set.\n */\n public setSync(key: string, value: string) {\n if (!this.options.isReadOnly) {\n return writeFileSync(this.resolve(key), value);\n }\n }\n\n /**\n * Asynchronously sets the value for a given key.\n *\n * @param key - The key to set the value for.\n * @param value - The value to set.\n */\n public override async set(key: string, value: string): Promise<void> {\n if (!this.options.isReadOnly) {\n return writeFile(this.resolve(key), value);\n }\n }\n\n /**\n * Synchronously removes a key from the storage.\n *\n * @param key - The key to remove.\n */\n public removeSync(key: string) {\n if (!this.options.isReadOnly) {\n try {\n return unlinkSync(this.resolve(key));\n } catch (err) {\n return ignoreNotfound(err);\n }\n }\n }\n\n /**\n * Asynchronously removes a key from the storage.\n *\n * @param key - The key to remove.\n */\n public override async remove(key: string): Promise<void> {\n if (!this.options.isReadOnly) {\n return unlink(this.resolve(key)).catch(ignoreNotfound);\n }\n }\n\n /**\n * Synchronously creates a directory at the specified path.\n *\n * @param dirPath - The path of the directory to create.\n */\n public override mkdirSync(dirPath: string) {\n createDirectorySync(this.resolve(dirPath));\n }\n\n /**\n * Creates a directory at the specified path.\n *\n * @param dirPath - The path of the directory to create.\n */\n public override async mkdir(dirPath: string): Promise<void> {\n await createDirectory(this.resolve(dirPath));\n }\n\n /**\n * Lists all keys under a given base path synchronously.\n *\n * @param base - The base path to list keys from.\n * @returns An array of keys under the specified base path.\n */\n public listSync(base?: string): string[] {\n try {\n return listFilesSync(this.resolve(base), {\n ignore: this.options.ignore\n });\n } catch (err) {\n return ignoreNotfound(err) ?? [];\n }\n }\n\n /**\n * Asynchronously lists all keys under a given base path.\n *\n * @param base - The base path to list keys from.\n * @returns A promise that resolves to an array of keys under the specified base path.\n */\n public override async list(base?: string): Promise<string[]> {\n return listFiles(this.resolve(base), {\n ignore: this.options.ignore\n })\n .catch(ignoreNotfound)\n .then(r => r || []);\n }\n\n /**\n * Synchronously checks if the given key is a directory.\n *\n * @param key - The key to check.\n * @returns `true` if the key is a directory, otherwise `false`.\n */\n public override isDirectorySync(key: string): boolean {\n return isDirectory(this.resolve(key));\n }\n\n /**\n * Synchronously checks if the given key is a file.\n *\n * @param key - The key to check.\n * @returns `true` if the key is a file, otherwise `false`.\n */\n public override isFileSync(key: string): boolean {\n return !isFile(this.resolve(key));\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { PowerlinesEnvironmentContext } from './chunk-WQNUM4K3.js';
2
- import { PowerlinesContext } from './chunk-QOVSEBZF.js';
1
+ import { PowerlinesEnvironmentContext } from './chunk-WF65LEKW.js';
2
+ import { PowerlinesContext } from './chunk-UNJET22R.js';
3
3
  import { loadWorkspaceConfig } from './chunk-Q25ZPXA7.js';
4
4
  import { __name } from './chunk-7QVYU63E.js';
5
5
  import { LogLevelLabel } from '@storm-software/config-tools/types';
@@ -254,5 +254,5 @@ var PowerlinesAPIContext = class _PowerlinesAPIContext extends PowerlinesContext
254
254
  };
255
255
 
256
256
  export { PowerlinesAPIContext };
257
- //# sourceMappingURL=chunk-WWWGFMAA.js.map
258
- //# sourceMappingURL=chunk-WWWGFMAA.js.map
257
+ //# sourceMappingURL=chunk-RZ4LXAZQ.js.map
258
+ //# sourceMappingURL=chunk-RZ4LXAZQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/internal/helpers/environment.ts","../../src/lib/contexts/api-context.ts"],"names":["DEFAULT_ENVIRONMENT","GLOBAL_ENVIRONMENT","createEnvironment","name","userConfig","defu","environments","title","titleCase","ssr","mainFields","build","platform","extensions","consumer","preview","port","open","strictPort","host","allowedHosts","cors","headers","undefined","createDefaultEnvironment","PowerlinesAPIContext","PowerlinesContext","from","workspaceRoot","config","context","loadWorkspaceConfig","root","withUserConfig","powerlinesPath","resolvePackage","Error","$$internal","value","environment","Object","values","log","createLog","plugins","workspaceConfig","init","Promise","all","toArray","keys","length","map","env","in","PowerlinesEnvironmentContext","fromConfig","isSetObject","inlineConfig","withInlineConfig","plugin","addPlugin","options","isHighPriority","push","getEnvironment","LogLevelLabel","DEBUG","chalk","bold","cyanBright","WARN","getEnvironmentSafe","toEnvironment"],"mappings":"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","file":"chunk-WWWGFMAA.js","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport defu from \"defu\";\nimport { APIContext, Context } from \"../../types/context\";\nimport { EnvironmentResolvedConfig } from \"../../types/resolved\";\n\nexport const DEFAULT_ENVIRONMENT = \"default\" as const;\nexport const GLOBAL_ENVIRONMENT = \"__GLOBAL__\" as const;\n\nexport function createEnvironment<TContext extends Context = Context>(\n name: string,\n userConfig: TContext[\"config\"][\"userConfig\"]\n): EnvironmentResolvedConfig {\n return defu(\n userConfig.environments?.[name] ?? {},\n {\n name,\n title: userConfig.title || titleCase(userConfig.name),\n ssr: false,\n mainFields:\n userConfig.build?.platform === \"browser\"\n ? [\"browser\", \"module\", \"jsnext:main\", \"jsnext\"]\n : [\"module\", \"jsnext:main\", \"jsnext\"],\n extensions: [\".mjs\", \".js\", \".mts\", \".ts\", \".jsx\", \".tsx\", \".json\"],\n consumer: userConfig.build?.platform === \"browser\" ? \"client\" : \"server\",\n preview:\n userConfig.build?.platform === \"browser\"\n ? {\n port: 5173,\n open: true,\n strictPort: false,\n // https: false,\n host: \"localhost\",\n allowedHosts: [\".\"],\n cors: true,\n headers: {}\n }\n : undefined\n },\n userConfig\n ) as EnvironmentResolvedConfig;\n}\n\nexport function createDefaultEnvironment<\n TContext extends APIContext = APIContext\n>(userConfig: TContext[\"config\"][\"userConfig\"]): EnvironmentResolvedConfig {\n return createEnvironment(DEFAULT_ENVIRONMENT, userConfig);\n}\n","/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { resolvePackage } from \"@stryke/fs/resolve\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport chalk from \"chalk\";\nimport {\n createDefaultEnvironment,\n createEnvironment,\n GLOBAL_ENVIRONMENT\n} from \"../../internal/helpers/environment\";\nimport {\n InitialUserConfig,\n InlineConfig,\n LogFn,\n UserConfig,\n WorkspaceConfig\n} from \"../../types/config\";\nimport {\n APIContext,\n EnvironmentContext,\n InitContextOptions,\n PluginContext\n} from \"../../types/context\";\nimport {\n UNSAFE_ContextInternal,\n UNSAFE_EnvironmentContext\n} from \"../../types/internal\";\nimport { Plugin } from \"../../types/plugin\";\nimport {\n EnvironmentResolvedConfig,\n ResolvedConfig\n} from \"../../types/resolved\";\nimport { loadWorkspaceConfig } from \"../config-file\";\nimport { PowerlinesContext } from \"./context\";\nimport { PowerlinesEnvironmentContext } from \"./environment-context\";\n\nexport class PowerlinesAPIContext<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n>\n extends PowerlinesContext<TResolvedConfig>\n implements APIContext<TResolvedConfig>\n{\n #environments: Record<string, UNSAFE_EnvironmentContext<TResolvedConfig>> =\n {};\n\n #plugins: Plugin<PluginContext<TResolvedConfig>>[] = [];\n\n #log!: LogFn;\n\n /**\n * Create a new Storm context from the workspace root and user config.\n *\n * @param workspaceRoot - The root directory of the workspace.\n * @param config - The user configuration options.\n * @returns A promise that resolves to the new context.\n */\n public static override async from<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n >(\n workspaceRoot: string,\n config: InitialUserConfig<TResolvedConfig[\"userConfig\"]>\n ): Promise<APIContext<TResolvedConfig>> {\n const context = new PowerlinesAPIContext<TResolvedConfig>(\n await loadWorkspaceConfig(workspaceRoot, config.root)\n );\n await context.withUserConfig(config);\n\n const powerlinesPath = await resolvePackage(\"powerlines\");\n if (!powerlinesPath) {\n throw new Error(\"Could not resolve `powerlines` package location.\");\n }\n\n context.powerlinesPath = powerlinesPath;\n\n return context;\n }\n\n /**\n * Internal context fields and methods\n *\n * @danger\n * This field is for internal use only and should not be accessed or modified directly. It is unstable and can be changed at anytime.\n *\n * @internal\n */\n public override get $$internal(): UNSAFE_ContextInternal<TResolvedConfig> {\n return super.$$internal;\n }\n\n /**\n * Internal context fields and methods\n *\n * @danger\n * This field is for internal use only and should not be accessed or modified directly. It is unstable and can be changed at anytime.\n *\n * @internal\n */\n public override set $$internal(\n value: UNSAFE_ContextInternal<TResolvedConfig>\n ) {\n super.$$internal = value;\n for (const environment of Object.values(this.environments)) {\n environment.$$internal = super.$$internal;\n }\n }\n\n /**\n * A record of all environments by name\n */\n public get environments(): Record<\n string,\n UNSAFE_EnvironmentContext<TResolvedConfig>\n > {\n return this.#environments;\n }\n\n public override get log(): LogFn {\n if (!this.#log) {\n this.#log = this.createLog();\n }\n\n return this.#log;\n }\n\n public get plugins(): Array<Plugin<PluginContext<TResolvedConfig>>> {\n return this.#plugins;\n }\n\n protected constructor(workspaceConfig: WorkspaceConfig) {\n super(workspaceConfig);\n }\n\n /**\n * Initialize the context with the provided configuration options\n *\n * @param config - The partial user configuration to use for initialization.\n */\n protected override async init(\n config: Partial<TResolvedConfig[\"userConfig\"]> = {}\n ) {\n await super.init(config);\n\n await Promise.all(\n toArray(\n this.config.userConfig.environments &&\n Object.keys(this.config.userConfig.environments).length > 0\n ? Object.keys(this.config.userConfig.environments).map(name =>\n createEnvironment(name, this.config.userConfig)\n )\n : createDefaultEnvironment(this.config.userConfig)\n ).map(async env => {\n this.#environments[env.name] = await this.in(env);\n })\n );\n }\n\n /**\n * A function to copy the context and update the fields for a specific environment\n *\n * @param environment - The environment configuration to use.\n * @returns A new context instance with the updated environment.\n */\n public async in(\n environment: EnvironmentResolvedConfig\n ): Promise<UNSAFE_EnvironmentContext<TResolvedConfig>> {\n let context: UNSAFE_EnvironmentContext<TResolvedConfig>;\n if (this.environments[environment.name]) {\n context = this.environments[environment.name] as any;\n } else {\n context = (await PowerlinesEnvironmentContext.fromConfig(\n this.workspaceConfig,\n this.config\n )) as any;\n }\n\n if (isSetObject(this.config.inlineConfig)) {\n await context.withInlineConfig(this.config.inlineConfig);\n }\n\n context.environment = environment;\n context.plugins = [];\n\n for (const plugin of this.plugins) {\n await context.addPlugin(plugin);\n }\n\n return context;\n }\n\n /**\n * Update the context using a new user configuration options\n *\n * @param userConfig - The new user configuration options.\n */\n public override async withUserConfig(\n userConfig: InitialUserConfig<TResolvedConfig[\"userConfig\"]>,\n options: InitContextOptions = {\n isHighPriority: true\n }\n ) {\n await super.withUserConfig(userConfig, options);\n\n await Promise.all(\n Object.keys(this.#environments).map(async name => {\n await this.#environments[name]!.withUserConfig(\n userConfig as UserConfig,\n options\n );\n })\n );\n }\n\n /**\n * Update the context using a new inline configuration options\n *\n * @param inlineConfig - The new inline configuration options.\n */\n public override async withInlineConfig(\n inlineConfig: TResolvedConfig[\"inlineConfig\"],\n options: InitContextOptions = {\n isHighPriority: true\n }\n ) {\n await super.withInlineConfig(inlineConfig, options);\n\n await Promise.all(\n Object.keys(this.#environments).map(async name => {\n await this.#environments[name]!.withInlineConfig(\n inlineConfig as InlineConfig,\n options\n );\n })\n );\n }\n\n /**\n * Add a plugin to the API context and all environments\n *\n * @param plugin - The plugin to add.\n */\n public async addPlugin(plugin: Plugin<PluginContext<TResolvedConfig>>) {\n this.plugins.push(plugin);\n\n await Promise.all(\n Object.keys(this.environments).map(async name => {\n await this.environments[name]!.addPlugin(plugin);\n })\n );\n }\n\n /**\n * Get an environment by name, or the default environment if no name is provided\n *\n * @param name - The name of the environment to retrieve.\n * @returns The requested environment context.\n */\n public async getEnvironment(name?: string) {\n let environment: EnvironmentContext<TResolvedConfig> | undefined;\n if (name) {\n environment = this.environments[name];\n }\n\n if (Object.keys(this.environments).length === 1) {\n environment = this.environments[Object.keys(this.environments)[0]!];\n\n this.log(\n LogLevelLabel.DEBUG,\n `Applying the only configured environment: ${chalk.bold.cyanBright(\n environment?.environment.name\n )}`\n );\n }\n\n if (!environment) {\n if (name) {\n throw new Error(`Environment \"${name}\" not found.`);\n }\n\n environment = await this.in(\n createDefaultEnvironment(this.config.userConfig)\n );\n\n this.log(\n LogLevelLabel.WARN,\n `No environment specified, and no default environment found. Using a temporary default environment: ${chalk.bold.cyanBright(\n environment?.environment.name\n )}`\n );\n }\n\n return environment;\n }\n\n /**\n * A safe version of `getEnvironment` that returns `undefined` if the environment is not found\n *\n * @param name - The name of the environment to retrieve.\n * @returns The requested environment context or `undefined` if not found.\n */\n public async getEnvironmentSafe(\n name?: string\n ): Promise<EnvironmentContext<TResolvedConfig> | undefined> {\n try {\n return await this.getEnvironment(name);\n } catch {\n return undefined;\n }\n }\n\n /**\n * A function to merge all configured environments into a single context.\n *\n * @remarks\n * If only one environment is configured, that environment will be returned directly.\n *\n * @returns A promise that resolves to a merged/global environment context.\n */\n public async toEnvironment(): Promise<EnvironmentContext<TResolvedConfig>> {\n let environment: EnvironmentContext<TResolvedConfig>;\n if (Object.keys(this.environments).length > 1) {\n environment = await this.in(\n createEnvironment(GLOBAL_ENVIRONMENT, this.config.userConfig)\n );\n\n this.log(\n LogLevelLabel.DEBUG,\n `Combined all ${Object.keys(this.environments).length} environments into a single global context.`\n );\n } else {\n environment = await this.getEnvironment();\n }\n\n return environment;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/internal/helpers/environment.ts","../../src/lib/contexts/api-context.ts"],"names":["DEFAULT_ENVIRONMENT","GLOBAL_ENVIRONMENT","createEnvironment","name","userConfig","defu","environments","title","titleCase","ssr","mainFields","build","platform","extensions","consumer","preview","port","open","strictPort","host","allowedHosts","cors","headers","undefined","createDefaultEnvironment","PowerlinesAPIContext","PowerlinesContext","from","workspaceRoot","config","context","loadWorkspaceConfig","root","withUserConfig","powerlinesPath","resolvePackage","Error","$$internal","value","environment","Object","values","log","createLog","plugins","workspaceConfig","init","Promise","all","toArray","keys","length","map","env","in","PowerlinesEnvironmentContext","fromConfig","isSetObject","inlineConfig","withInlineConfig","plugin","addPlugin","options","isHighPriority","push","getEnvironment","LogLevelLabel","DEBUG","chalk","bold","cyanBright","WARN","getEnvironmentSafe","toEnvironment"],"mappings":"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","file":"chunk-RZ4LXAZQ.js","sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { titleCase } from \"@stryke/string-format/title-case\";\nimport defu from \"defu\";\nimport { APIContext, Context } from \"../../types/context\";\nimport { EnvironmentResolvedConfig } from \"../../types/resolved\";\n\nexport const DEFAULT_ENVIRONMENT = \"default\" as const;\nexport const GLOBAL_ENVIRONMENT = \"__GLOBAL__\" as const;\n\nexport function createEnvironment<TContext extends Context = Context>(\n name: string,\n userConfig: TContext[\"config\"][\"userConfig\"]\n): EnvironmentResolvedConfig {\n return defu(\n userConfig.environments?.[name] ?? {},\n {\n name,\n title: userConfig.title || titleCase(userConfig.name),\n ssr: false,\n mainFields:\n userConfig.build?.platform === \"browser\"\n ? [\"browser\", \"module\", \"jsnext:main\", \"jsnext\"]\n : [\"module\", \"jsnext:main\", \"jsnext\"],\n extensions: [\".mjs\", \".js\", \".mts\", \".ts\", \".jsx\", \".tsx\", \".json\"],\n consumer: userConfig.build?.platform === \"browser\" ? \"client\" : \"server\",\n preview:\n userConfig.build?.platform === \"browser\"\n ? {\n port: 5173,\n open: true,\n strictPort: false,\n // https: false,\n host: \"localhost\",\n allowedHosts: [\".\"],\n cors: true,\n headers: {}\n }\n : undefined\n },\n userConfig\n ) as EnvironmentResolvedConfig;\n}\n\nexport function createDefaultEnvironment<\n TContext extends APIContext = APIContext\n>(userConfig: TContext[\"config\"][\"userConfig\"]): EnvironmentResolvedConfig {\n return createEnvironment(DEFAULT_ENVIRONMENT, userConfig);\n}\n","/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport { toArray } from \"@stryke/convert/to-array\";\nimport { resolvePackage } from \"@stryke/fs/resolve\";\nimport { isSetObject } from \"@stryke/type-checks/is-set-object\";\nimport chalk from \"chalk\";\nimport {\n createDefaultEnvironment,\n createEnvironment,\n GLOBAL_ENVIRONMENT\n} from \"../../internal/helpers/environment\";\nimport {\n InitialUserConfig,\n InlineConfig,\n LogFn,\n UserConfig,\n WorkspaceConfig\n} from \"../../types/config\";\nimport {\n APIContext,\n EnvironmentContext,\n InitContextOptions,\n PluginContext\n} from \"../../types/context\";\nimport {\n UNSAFE_ContextInternal,\n UNSAFE_EnvironmentContext\n} from \"../../types/internal\";\nimport { Plugin } from \"../../types/plugin\";\nimport {\n EnvironmentResolvedConfig,\n ResolvedConfig\n} from \"../../types/resolved\";\nimport { loadWorkspaceConfig } from \"../config-file\";\nimport { PowerlinesContext } from \"./context\";\nimport { PowerlinesEnvironmentContext } from \"./environment-context\";\n\nexport class PowerlinesAPIContext<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n>\n extends PowerlinesContext<TResolvedConfig>\n implements APIContext<TResolvedConfig>\n{\n #environments: Record<string, UNSAFE_EnvironmentContext<TResolvedConfig>> =\n {};\n\n #plugins: Plugin<PluginContext<TResolvedConfig>>[] = [];\n\n #log!: LogFn;\n\n /**\n * Create a new Storm context from the workspace root and user config.\n *\n * @param workspaceRoot - The root directory of the workspace.\n * @param config - The user configuration options.\n * @returns A promise that resolves to the new context.\n */\n public static override async from<\n TResolvedConfig extends ResolvedConfig = ResolvedConfig\n >(\n workspaceRoot: string,\n config: InitialUserConfig<TResolvedConfig[\"userConfig\"]>\n ): Promise<APIContext<TResolvedConfig>> {\n const context = new PowerlinesAPIContext<TResolvedConfig>(\n await loadWorkspaceConfig(workspaceRoot, config.root)\n );\n await context.withUserConfig(config);\n\n const powerlinesPath = await resolvePackage(\"powerlines\");\n if (!powerlinesPath) {\n throw new Error(\"Could not resolve `powerlines` package location.\");\n }\n\n context.powerlinesPath = powerlinesPath;\n\n return context;\n }\n\n /**\n * Internal context fields and methods\n *\n * @danger\n * This field is for internal use only and should not be accessed or modified directly. It is unstable and can be changed at anytime.\n *\n * @internal\n */\n public override get $$internal(): UNSAFE_ContextInternal<TResolvedConfig> {\n return super.$$internal;\n }\n\n /**\n * Internal context fields and methods\n *\n * @danger\n * This field is for internal use only and should not be accessed or modified directly. It is unstable and can be changed at anytime.\n *\n * @internal\n */\n public override set $$internal(\n value: UNSAFE_ContextInternal<TResolvedConfig>\n ) {\n super.$$internal = value;\n for (const environment of Object.values(this.environments)) {\n environment.$$internal = super.$$internal;\n }\n }\n\n /**\n * A record of all environments by name\n */\n public get environments(): Record<\n string,\n UNSAFE_EnvironmentContext<TResolvedConfig>\n > {\n return this.#environments;\n }\n\n public override get log(): LogFn {\n if (!this.#log) {\n this.#log = this.createLog();\n }\n\n return this.#log;\n }\n\n public get plugins(): Array<Plugin<PluginContext<TResolvedConfig>>> {\n return this.#plugins;\n }\n\n protected constructor(workspaceConfig: WorkspaceConfig) {\n super(workspaceConfig);\n }\n\n /**\n * Initialize the context with the provided configuration options\n *\n * @param config - The partial user configuration to use for initialization.\n */\n protected override async init(\n config: Partial<TResolvedConfig[\"userConfig\"]> = {}\n ) {\n await super.init(config);\n\n await Promise.all(\n toArray(\n this.config.userConfig.environments &&\n Object.keys(this.config.userConfig.environments).length > 0\n ? Object.keys(this.config.userConfig.environments).map(name =>\n createEnvironment(name, this.config.userConfig)\n )\n : createDefaultEnvironment(this.config.userConfig)\n ).map(async env => {\n this.#environments[env.name] = await this.in(env);\n })\n );\n }\n\n /**\n * A function to copy the context and update the fields for a specific environment\n *\n * @param environment - The environment configuration to use.\n * @returns A new context instance with the updated environment.\n */\n public async in(\n environment: EnvironmentResolvedConfig\n ): Promise<UNSAFE_EnvironmentContext<TResolvedConfig>> {\n let context: UNSAFE_EnvironmentContext<TResolvedConfig>;\n if (this.environments[environment.name]) {\n context = this.environments[environment.name] as any;\n } else {\n context = (await PowerlinesEnvironmentContext.fromConfig(\n this.workspaceConfig,\n this.config\n )) as any;\n }\n\n if (isSetObject(this.config.inlineConfig)) {\n await context.withInlineConfig(this.config.inlineConfig);\n }\n\n context.environment = environment;\n context.plugins = [];\n\n for (const plugin of this.plugins) {\n await context.addPlugin(plugin);\n }\n\n return context;\n }\n\n /**\n * Update the context using a new user configuration options\n *\n * @param userConfig - The new user configuration options.\n */\n public override async withUserConfig(\n userConfig: InitialUserConfig<TResolvedConfig[\"userConfig\"]>,\n options: InitContextOptions = {\n isHighPriority: true\n }\n ) {\n await super.withUserConfig(userConfig, options);\n\n await Promise.all(\n Object.keys(this.#environments).map(async name => {\n await this.#environments[name]!.withUserConfig(\n userConfig as UserConfig,\n options\n );\n })\n );\n }\n\n /**\n * Update the context using a new inline configuration options\n *\n * @param inlineConfig - The new inline configuration options.\n */\n public override async withInlineConfig(\n inlineConfig: TResolvedConfig[\"inlineConfig\"],\n options: InitContextOptions = {\n isHighPriority: true\n }\n ) {\n await super.withInlineConfig(inlineConfig, options);\n\n await Promise.all(\n Object.keys(this.#environments).map(async name => {\n await this.#environments[name]!.withInlineConfig(\n inlineConfig as InlineConfig,\n options\n );\n })\n );\n }\n\n /**\n * Add a plugin to the API context and all environments\n *\n * @param plugin - The plugin to add.\n */\n public async addPlugin(plugin: Plugin<PluginContext<TResolvedConfig>>) {\n this.plugins.push(plugin);\n\n await Promise.all(\n Object.keys(this.environments).map(async name => {\n await this.environments[name]!.addPlugin(plugin);\n })\n );\n }\n\n /**\n * Get an environment by name, or the default environment if no name is provided\n *\n * @param name - The name of the environment to retrieve.\n * @returns The requested environment context.\n */\n public async getEnvironment(name?: string) {\n let environment: EnvironmentContext<TResolvedConfig> | undefined;\n if (name) {\n environment = this.environments[name];\n }\n\n if (Object.keys(this.environments).length === 1) {\n environment = this.environments[Object.keys(this.environments)[0]!];\n\n this.log(\n LogLevelLabel.DEBUG,\n `Applying the only configured environment: ${chalk.bold.cyanBright(\n environment?.environment.name\n )}`\n );\n }\n\n if (!environment) {\n if (name) {\n throw new Error(`Environment \"${name}\" not found.`);\n }\n\n environment = await this.in(\n createDefaultEnvironment(this.config.userConfig)\n );\n\n this.log(\n LogLevelLabel.WARN,\n `No environment specified, and no default environment found. Using a temporary default environment: ${chalk.bold.cyanBright(\n environment?.environment.name\n )}`\n );\n }\n\n return environment;\n }\n\n /**\n * A safe version of `getEnvironment` that returns `undefined` if the environment is not found\n *\n * @param name - The name of the environment to retrieve.\n * @returns The requested environment context or `undefined` if not found.\n */\n public async getEnvironmentSafe(\n name?: string\n ): Promise<EnvironmentContext<TResolvedConfig> | undefined> {\n try {\n return await this.getEnvironment(name);\n } catch {\n return undefined;\n }\n }\n\n /**\n * A function to merge all configured environments into a single context.\n *\n * @remarks\n * If only one environment is configured, that environment will be returned directly.\n *\n * @returns A promise that resolves to a merged/global environment context.\n */\n public async toEnvironment(): Promise<EnvironmentContext<TResolvedConfig>> {\n let environment: EnvironmentContext<TResolvedConfig>;\n if (Object.keys(this.environments).length > 1) {\n environment = await this.in(\n createEnvironment(GLOBAL_ENVIRONMENT, this.config.userConfig)\n );\n\n this.log(\n LogLevelLabel.DEBUG,\n `Combined all ${Object.keys(this.environments).length} environments into a single global context.`\n );\n } else {\n environment = await this.getEnvironment();\n }\n\n return environment;\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { getFileHeader } from './chunk-7R23HVGQ.js';
2
- import { PowerlinesAPIContext } from './chunk-WWWGFMAA.js';
3
- import { isPluginConfig, findInvalidPluginConfig, isPlugin, isPluginConfigTuple, isPluginConfigObject, checkDedupe } from './chunk-QOVSEBZF.js';
2
+ import { PowerlinesAPIContext } from './chunk-RZ4LXAZQ.js';
3
+ import { isPluginConfig, findInvalidPluginConfig, isPlugin, isPluginConfigTuple, isPluginConfigObject, checkDedupe } from './chunk-UNJET22R.js';
4
4
  import { writeMetaFile } from './chunk-45D4XIOK.js';
5
5
  import { createProgram } from './chunk-ZLWW2MXD.js';
6
6
  import { isIncludeMatchFound, getParsedTypeScriptConfig, getTsconfigFilePath } from './chunk-FPFPUYXS.js';
@@ -1210,5 +1210,5 @@ function createUnpluginFactory(variant, decorate) {
1210
1210
  __name(createUnpluginFactory, "createUnpluginFactory");
1211
1211
 
1212
1212
  export { createUnpluginFactory };
1213
- //# sourceMappingURL=chunk-67XMKJXQ.js.map
1214
- //# sourceMappingURL=chunk-67XMKJXQ.js.map
1213
+ //# sourceMappingURL=chunk-TGIY7Q6N.js.map
1214
+ //# sourceMappingURL=chunk-TGIY7Q6N.js.map