adnbn 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (716) hide show
  1. package/README.md +3 -0
  2. package/dist/cli/builders/locale/LocaleBuilder.js +2 -11
  3. package/dist/cli/builders/locale/LocaleBuilder.js.map +1 -1
  4. package/dist/cli/builders/locale/index.js +1 -1
  5. package/dist/cli/builders/locale/index.js.map +1 -1
  6. package/dist/cli/builders/manifest/ManifestBase.js +17 -7
  7. package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
  8. package/dist/cli/builders/manifest/ManifestV2.js +1 -1
  9. package/dist/cli/builders/manifest/ManifestV3.js +12 -5
  10. package/dist/cli/builders/manifest/ManifestV3.js.map +1 -1
  11. package/dist/cli/builders/manifest/utils/data-collection-permissions.d.ts +15 -0
  12. package/dist/cli/builders/manifest/utils/data-collection-permissions.js +26 -0
  13. package/dist/cli/builders/manifest/utils/data-collection-permissions.js.map +1 -0
  14. package/dist/cli/builders/manifest/utils/host-patterns.d.ts +1 -0
  15. package/dist/cli/builders/manifest/utils/host-patterns.js +40 -0
  16. package/dist/cli/builders/manifest/utils/host-patterns.js.map +1 -0
  17. package/dist/cli/builders/manifest/utils/index.d.ts +4 -0
  18. package/dist/cli/builders/manifest/utils/index.js +19 -0
  19. package/dist/cli/builders/manifest/utils/index.js.map +1 -0
  20. package/dist/cli/builders/manifest/utils/permissions.d.ts +14 -0
  21. package/dist/cli/builders/manifest/utils/permissions.js +34 -0
  22. package/dist/cli/builders/manifest/utils/permissions.js.map +1 -0
  23. package/dist/cli/builders/manifest/utils/web-accessible-resources.d.ts +2 -0
  24. package/dist/cli/builders/manifest/utils/web-accessible-resources.js +92 -0
  25. package/dist/cli/builders/manifest/utils/web-accessible-resources.js.map +1 -0
  26. package/dist/cli/bundler/index.d.ts +1 -0
  27. package/dist/cli/bundler/index.js +1 -0
  28. package/dist/cli/bundler/index.js.map +1 -1
  29. package/dist/cli/bundler/layers.d.ts +5 -0
  30. package/dist/cli/bundler/layers.js +12 -0
  31. package/dist/cli/bundler/layers.js.map +1 -0
  32. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.d.ts +14 -0
  33. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js +524 -0
  34. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js.map +1 -0
  35. package/dist/cli/bundler/plugins/build-assets-map/index.d.ts +2 -0
  36. package/dist/cli/bundler/plugins/build-assets-map/index.js +5 -0
  37. package/dist/cli/bundler/plugins/build-assets-map/index.js.map +1 -0
  38. package/dist/cli/bundler/plugins/build-assets-map/usage.d.ts +9 -0
  39. package/dist/cli/bundler/plugins/build-assets-map/usage.js +31 -0
  40. package/dist/cli/bundler/plugins/build-assets-map/usage.js.map +1 -0
  41. package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.d.ts +9 -0
  42. package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.js +43 -0
  43. package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.js.map +1 -0
  44. package/dist/cli/bundler/plugins/chunk-loader/index.d.ts +1 -0
  45. package/dist/cli/bundler/plugins/chunk-loader/index.js +5 -0
  46. package/dist/cli/bundler/plugins/chunk-loader/index.js.map +1 -0
  47. package/dist/cli/bundler/plugins/chunk-loader/templates/runtime.template.d.ts +2 -0
  48. package/dist/cli/bundler/plugins/chunk-loader/templates.d.ts +7 -0
  49. package/dist/cli/bundler/plugins/chunk-loader/templates.js +30 -0
  50. package/dist/cli/bundler/plugins/{EntrypointPlugin.d.ts → entrypoint/EntrypointPlugin.d.ts} +7 -2
  51. package/dist/cli/bundler/plugins/{EntrypointPlugin.js → entrypoint/EntrypointPlugin.js} +46 -26
  52. package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js.map +1 -0
  53. package/dist/cli/bundler/plugins/entrypoint/index.d.ts +1 -0
  54. package/dist/cli/bundler/plugins/entrypoint/index.js +7 -0
  55. package/dist/cli/bundler/plugins/entrypoint/index.js.map +1 -0
  56. package/dist/cli/bundler/plugins/{GenerateJsonPlugin.d.ts → generate-json/GenerateJsonPlugin.d.ts} +1 -0
  57. package/dist/cli/bundler/plugins/generate-json/GenerateJsonPlugin.js +73 -0
  58. package/dist/cli/bundler/plugins/generate-json/GenerateJsonPlugin.js.map +1 -0
  59. package/dist/cli/bundler/plugins/generate-json/index.d.ts +1 -0
  60. package/dist/cli/bundler/plugins/generate-json/index.js +5 -0
  61. package/dist/cli/bundler/plugins/generate-json/index.js.map +1 -0
  62. package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.d.ts +23 -0
  63. package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.js +88 -0
  64. package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.js.map +1 -0
  65. package/dist/cli/bundler/plugins/generate-module/index.d.ts +1 -0
  66. package/dist/cli/bundler/plugins/generate-module/index.js +7 -0
  67. package/dist/cli/bundler/plugins/generate-module/index.js.map +1 -0
  68. package/dist/cli/bundler/plugins/index.d.ts +11 -5
  69. package/dist/cli/bundler/plugins/index.js +28 -10
  70. package/dist/cli/bundler/plugins/index.js.map +1 -1
  71. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.d.ts +21 -0
  72. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js +174 -0
  73. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js.map +1 -0
  74. package/dist/cli/bundler/plugins/isolated-styles/chunks.d.ts +3 -0
  75. package/dist/cli/bundler/plugins/isolated-styles/chunks.js +32 -0
  76. package/dist/cli/bundler/plugins/isolated-styles/chunks.js.map +1 -0
  77. package/dist/cli/bundler/plugins/isolated-styles/index.d.ts +1 -0
  78. package/dist/cli/bundler/plugins/isolated-styles/index.js +5 -0
  79. package/dist/cli/bundler/plugins/isolated-styles/index.js.map +1 -0
  80. package/dist/cli/bundler/plugins/isolated-styles/templates/css-loader.template.d.ts +1 -0
  81. package/dist/cli/bundler/plugins/isolated-styles/templates/runtime.template.d.ts +7 -0
  82. package/dist/cli/bundler/plugins/isolated-styles/templates.d.ts +18 -0
  83. package/dist/cli/bundler/plugins/isolated-styles/templates.js +174 -0
  84. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.d.ts +10 -0
  85. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js +54 -0
  86. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js.map +1 -0
  87. package/dist/cli/bundler/plugins/manifest/index.d.ts +1 -0
  88. package/dist/cli/bundler/plugins/manifest/index.js +6 -0
  89. package/dist/cli/bundler/plugins/manifest/index.js.map +1 -0
  90. package/dist/cli/bundler/plugins/replace/ReplacePlugin.js.map +1 -0
  91. package/dist/cli/bundler/plugins/replace/index.d.ts +1 -0
  92. package/dist/cli/bundler/plugins/replace/index.js +5 -0
  93. package/dist/cli/bundler/plugins/replace/index.js.map +1 -0
  94. package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.d.ts +19 -0
  95. package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.js +20 -0
  96. package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.js.map +1 -0
  97. package/dist/cli/bundler/plugins/resource-access/index.d.ts +1 -0
  98. package/dist/cli/bundler/plugins/resource-access/index.js +5 -0
  99. package/dist/cli/bundler/plugins/resource-access/index.js.map +1 -0
  100. package/dist/cli/bundler/plugins/resource-access/utils.d.ts +8 -0
  101. package/dist/cli/bundler/plugins/resource-access/utils.js +42 -0
  102. package/dist/cli/bundler/plugins/resource-access/utils.js.map +1 -0
  103. package/dist/cli/bundler/plugins/types.d.ts +8 -0
  104. package/dist/cli/bundler/plugins/types.js +1 -0
  105. package/dist/cli/bundler/plugins/types.js.map +1 -0
  106. package/dist/cli/bundler/plugins/utils/compilation-assets.d.ts +4 -0
  107. package/dist/cli/bundler/plugins/utils/compilation-assets.js +12 -0
  108. package/dist/cli/bundler/plugins/utils/compilation-assets.js.map +1 -0
  109. package/dist/cli/bundler/plugins/utils/index.d.ts +5 -0
  110. package/dist/cli/bundler/plugins/utils/index.js +14 -0
  111. package/dist/cli/bundler/plugins/utils/index.js.map +1 -0
  112. package/dist/cli/bundler/plugins/utils/manifest-hooks.d.ts +13 -0
  113. package/dist/cli/bundler/plugins/utils/manifest-hooks.js +17 -0
  114. package/dist/cli/bundler/plugins/utils/manifest-hooks.js.map +1 -0
  115. package/dist/cli/bundler/plugins/utils/runtime-module.d.ts +3 -0
  116. package/dist/cli/bundler/plugins/utils/runtime-module.js +11 -0
  117. package/dist/cli/bundler/plugins/utils/runtime-module.js.map +1 -0
  118. package/dist/cli/bundler/plugins/utils/runtime-template.d.ts +1 -0
  119. package/dist/cli/bundler/plugins/utils/runtime-template.js +18 -0
  120. package/dist/cli/bundler/plugins/utils/runtime-template.js.map +1 -0
  121. package/dist/cli/bundler/plugins/utils/watch-compilation.d.ts +3 -0
  122. package/dist/cli/bundler/plugins/utils/watch-compilation.js +18 -0
  123. package/dist/cli/bundler/plugins/utils/watch-compilation.js.map +1 -0
  124. package/dist/cli/bundler/plugins/watch/WatchPlugin.js +16 -0
  125. package/dist/cli/bundler/plugins/watch/WatchPlugin.js.map +1 -0
  126. package/dist/cli/bundler/plugins/watch/index.d.ts +1 -0
  127. package/dist/cli/bundler/plugins/watch/index.js +5 -0
  128. package/dist/cli/bundler/plugins/watch/index.js.map +1 -0
  129. package/dist/cli/bundler/utils/app-filename.d.ts +2 -0
  130. package/dist/cli/bundler/utils/app-filename.js +19 -0
  131. package/dist/cli/bundler/utils/app-filename.js.map +1 -0
  132. package/dist/cli/bundler/utils/assets.d.ts +3 -0
  133. package/dist/cli/bundler/utils/assets.js +162 -0
  134. package/dist/cli/bundler/utils/assets.js.map +1 -0
  135. package/dist/cli/bundler/utils/chunk-filename.d.ts +6 -0
  136. package/dist/cli/bundler/utils/chunk-filename.js +93 -0
  137. package/dist/cli/bundler/utils/chunk-filename.js.map +1 -0
  138. package/dist/cli/bundler/utils/index.d.ts +2 -1
  139. package/dist/cli/bundler/utils/index.js +2 -1
  140. package/dist/cli/bundler/utils/index.js.map +1 -1
  141. package/dist/cli/entrypoint/file/ExpressionFile.d.ts +4 -1
  142. package/dist/cli/entrypoint/file/ExpressionFile.js +11 -0
  143. package/dist/cli/entrypoint/file/ExpressionFile.js.map +1 -1
  144. package/dist/cli/entrypoint/file/OptionFile.d.ts +4 -2
  145. package/dist/cli/entrypoint/file/OptionFile.js +35 -31
  146. package/dist/cli/entrypoint/file/OptionFile.js.map +1 -1
  147. package/dist/cli/entrypoint/file/SourceFile.d.ts +18 -7
  148. package/dist/cli/entrypoint/file/SourceFile.js +260 -156
  149. package/dist/cli/entrypoint/file/SourceFile.js.map +1 -1
  150. package/dist/cli/entrypoint/file/index.d.ts +2 -0
  151. package/dist/cli/entrypoint/file/index.js +2 -0
  152. package/dist/cli/entrypoint/file/index.js.map +1 -1
  153. package/dist/cli/entrypoint/file/injectors/core.js +22 -1
  154. package/dist/cli/entrypoint/file/injectors/core.js.map +1 -1
  155. package/dist/cli/entrypoint/file/parsers/ExportParser.d.ts +14 -0
  156. package/dist/cli/entrypoint/file/parsers/ExportParser.js +71 -0
  157. package/dist/cli/entrypoint/file/parsers/ExportParser.js.map +1 -0
  158. package/dist/cli/entrypoint/file/parsers/NodeFinder.d.ts +2 -0
  159. package/dist/cli/entrypoint/file/parsers/NodeFinder.js +9 -0
  160. package/dist/cli/entrypoint/file/parsers/NodeFinder.js.map +1 -1
  161. package/dist/cli/entrypoint/file/parsers/ObjectParser.js +5 -1
  162. package/dist/cli/entrypoint/file/parsers/ObjectParser.js.map +1 -1
  163. package/dist/cli/entrypoint/file/parsers/index.d.ts +1 -0
  164. package/dist/cli/entrypoint/file/parsers/index.js +2 -0
  165. package/dist/cli/entrypoint/file/parsers/index.js.map +1 -1
  166. package/dist/cli/entrypoint/file/parsers/types.d.ts +16 -0
  167. package/dist/cli/entrypoint/file/parsers/types.js +13 -0
  168. package/dist/cli/entrypoint/file/parsers/types.js.map +1 -1
  169. package/dist/cli/entrypoint/file/resolvers/ImportResolver.d.ts +1 -0
  170. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js +3 -0
  171. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js.map +1 -1
  172. package/dist/cli/entrypoint/file/types.d.ts +26 -1
  173. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.js.map +1 -1
  174. package/dist/cli/entrypoint/finder/ContentFinder.d.ts +1 -1
  175. package/dist/cli/entrypoint/parser/AbstractParser.d.ts +3 -2
  176. package/dist/cli/entrypoint/parser/AbstractParser.js +6 -3
  177. package/dist/cli/entrypoint/parser/AbstractParser.js.map +1 -1
  178. package/dist/cli/entrypoint/parser/CommandParser.js +1 -1
  179. package/dist/cli/entrypoint/parser/CommandParser.js.map +1 -1
  180. package/dist/cli/entrypoint/parser/ContentParser.d.ts +7 -3
  181. package/dist/cli/entrypoint/parser/ContentParser.js +42 -6
  182. package/dist/cli/entrypoint/parser/ContentParser.js.map +1 -1
  183. package/dist/cli/entrypoint/parser/RelayParser.d.ts +21 -2
  184. package/dist/cli/entrypoint/parser/RelayParser.js +5 -1
  185. package/dist/cli/entrypoint/parser/RelayParser.js.map +1 -1
  186. package/dist/cli/entrypoint/parser/utils/content/default-render.d.ts +3 -0
  187. package/dist/cli/entrypoint/parser/utils/content/default-render.js +21 -0
  188. package/dist/cli/entrypoint/parser/utils/content/default-render.js.map +1 -0
  189. package/dist/cli/plugins/asset.js +9 -4
  190. package/dist/cli/plugins/asset.js.map +1 -1
  191. package/dist/cli/plugins/background/index.js +1 -1
  192. package/dist/cli/plugins/background/index.js.map +1 -1
  193. package/dist/cli/plugins/content/Content.d.ts +2 -2
  194. package/dist/cli/plugins/content/Content.js +3 -2
  195. package/dist/cli/plugins/content/Content.js.map +1 -1
  196. package/dist/cli/plugins/content/ContentDriver.d.ts +1 -1
  197. package/dist/cli/plugins/content/ContentManager.d.ts +8 -5
  198. package/dist/cli/plugins/content/ContentManager.js +79 -28
  199. package/dist/cli/plugins/content/ContentManager.js.map +1 -1
  200. package/dist/cli/plugins/content/ContentName.d.ts +2 -2
  201. package/dist/cli/plugins/content/ContentName.js +8 -7
  202. package/dist/cli/plugins/content/ContentName.js.map +1 -1
  203. package/dist/cli/plugins/content/Relay.d.ts +2 -2
  204. package/dist/cli/plugins/content/Relay.js +3 -2
  205. package/dist/cli/plugins/content/Relay.js.map +1 -1
  206. package/dist/cli/plugins/content/RelayDriver.d.ts +1 -1
  207. package/dist/cli/plugins/content/RelayDriver.js +1 -1
  208. package/dist/cli/plugins/content/bundler.d.ts +7 -0
  209. package/dist/cli/plugins/content/bundler.js +47 -0
  210. package/dist/cli/plugins/content/bundler.js.map +1 -0
  211. package/dist/cli/plugins/content/index.js +121 -62
  212. package/dist/cli/plugins/content/index.js.map +1 -1
  213. package/dist/cli/plugins/content/relay-module.d.ts +3 -0
  214. package/dist/cli/plugins/content/relay-module.js +11 -0
  215. package/dist/cli/plugins/content/relay-module.js.map +1 -0
  216. package/dist/cli/plugins/content/types.d.ts +2 -2
  217. package/dist/cli/plugins/content/utils.d.ts +3 -1
  218. package/dist/cli/plugins/content/utils.js +8 -1
  219. package/dist/cli/plugins/content/utils.js.map +1 -1
  220. package/dist/cli/plugins/icon/declaration/IconDeclaration.d.ts +1 -1
  221. package/dist/cli/plugins/icon/declaration/IconDeclaration.js +6 -6
  222. package/dist/cli/plugins/icon/declaration/IconDeclaration.js.map +1 -1
  223. package/dist/cli/plugins/icon/declaration/icon.d.ts +3 -5
  224. package/dist/cli/plugins/icon/icon-module.d.ts +2 -0
  225. package/dist/cli/plugins/icon/icon-module.js +11 -0
  226. package/dist/cli/plugins/icon/icon-module.js.map +1 -0
  227. package/dist/cli/plugins/icon/index.js +5 -3
  228. package/dist/cli/plugins/icon/index.js.map +1 -1
  229. package/dist/cli/plugins/index.d.ts +1 -1
  230. package/dist/cli/plugins/index.js +1 -1
  231. package/dist/cli/plugins/locale/Locale.d.ts +9 -2
  232. package/dist/cli/plugins/locale/Locale.js +37 -5
  233. package/dist/cli/plugins/locale/Locale.js.map +1 -1
  234. package/dist/cli/plugins/locale/declaration/locale.d.ts +1 -1
  235. package/dist/cli/plugins/locale/index.js +57 -22
  236. package/dist/cli/plugins/locale/index.js.map +1 -1
  237. package/dist/cli/plugins/locale/locale-module.d.ts +4 -0
  238. package/dist/cli/plugins/locale/locale-module.js +16 -0
  239. package/dist/cli/plugins/locale/locale-module.js.map +1 -0
  240. package/dist/cli/plugins/offscreen/Offscreen.d.ts +2 -3
  241. package/dist/cli/plugins/offscreen/Offscreen.js.map +1 -1
  242. package/dist/cli/plugins/offscreen/index.js +5 -4
  243. package/dist/cli/plugins/offscreen/index.js.map +1 -1
  244. package/dist/cli/plugins/offscreen/offscreen-module.d.ts +3 -0
  245. package/dist/cli/plugins/offscreen/offscreen-module.js +11 -0
  246. package/dist/cli/plugins/offscreen/offscreen-module.js.map +1 -0
  247. package/dist/cli/plugins/output/index.d.ts +2 -0
  248. package/dist/cli/plugins/output/index.js +60 -0
  249. package/dist/cli/plugins/output/index.js.map +1 -0
  250. package/dist/cli/plugins/output/runtime.d.ts +26 -0
  251. package/dist/cli/plugins/output/runtime.js +19 -0
  252. package/dist/cli/plugins/output/runtime.js.map +1 -0
  253. package/dist/cli/plugins/page/declaration/PageDeclaration.js +4 -4
  254. package/dist/cli/plugins/page/declaration/PageDeclaration.js.map +1 -1
  255. package/dist/cli/plugins/page/declaration/page.d.ts +3 -3
  256. package/dist/cli/plugins/page/index.js +14 -10
  257. package/dist/cli/plugins/page/index.js.map +1 -1
  258. package/dist/cli/plugins/page/page-module.d.ts +2 -0
  259. package/dist/cli/plugins/page/page-module.js +11 -0
  260. package/dist/cli/plugins/page/page-module.js.map +1 -0
  261. package/dist/cli/plugins/popup/Popup.d.ts +1 -1
  262. package/dist/cli/plugins/popup/Popup.js +2 -2
  263. package/dist/cli/plugins/popup/Popup.js.map +1 -1
  264. package/dist/cli/plugins/popup/declaration/PopupDeclaration.d.ts +1 -1
  265. package/dist/cli/plugins/popup/declaration/PopupDeclaration.js +6 -6
  266. package/dist/cli/plugins/popup/declaration/PopupDeclaration.js.map +1 -1
  267. package/dist/cli/plugins/popup/declaration/popup.d.ts +3 -3
  268. package/dist/cli/plugins/popup/index.js +6 -5
  269. package/dist/cli/plugins/popup/index.js.map +1 -1
  270. package/dist/cli/plugins/popup/popup-module.d.ts +3 -0
  271. package/dist/cli/plugins/popup/popup-module.js +11 -0
  272. package/dist/cli/plugins/popup/popup-module.js.map +1 -0
  273. package/dist/cli/plugins/sandbox/Sandbox.d.ts +1 -2
  274. package/dist/cli/plugins/sandbox/Sandbox.js.map +1 -1
  275. package/dist/cli/plugins/sandbox/index.js +5 -4
  276. package/dist/cli/plugins/sandbox/index.js.map +1 -1
  277. package/dist/cli/plugins/sandbox/sandbox-module.d.ts +3 -0
  278. package/dist/cli/plugins/sandbox/sandbox-module.js +11 -0
  279. package/dist/cli/plugins/sandbox/sandbox-module.js.map +1 -0
  280. package/dist/cli/plugins/sidebar/Sidebar.d.ts +1 -1
  281. package/dist/cli/plugins/sidebar/Sidebar.js +2 -2
  282. package/dist/cli/plugins/sidebar/Sidebar.js.map +1 -1
  283. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.d.ts +1 -1
  284. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.js +6 -6
  285. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.js.map +1 -1
  286. package/dist/cli/plugins/sidebar/declaration/sidebar.d.ts +3 -3
  287. package/dist/cli/plugins/sidebar/index.js +6 -5
  288. package/dist/cli/plugins/sidebar/index.js.map +1 -1
  289. package/dist/cli/plugins/sidebar/sidebar-module.d.ts +3 -0
  290. package/dist/cli/plugins/sidebar/sidebar-module.js +11 -0
  291. package/dist/cli/plugins/sidebar/sidebar-module.js.map +1 -0
  292. package/dist/cli/plugins/style/index.d.ts +2 -1
  293. package/dist/cli/plugins/style/index.js +52 -25
  294. package/dist/cli/plugins/style/index.js.map +1 -1
  295. package/dist/cli/plugins/style/types.d.ts +5 -0
  296. package/dist/cli/plugins/style/types.js +1 -0
  297. package/dist/cli/plugins/style/types.js.map +1 -0
  298. package/dist/cli/raw.d.ts +4 -0
  299. package/dist/cli/resolvers/bundler.js +9 -7
  300. package/dist/cli/resolvers/bundler.js.map +1 -1
  301. package/dist/cli/resolvers/config.js +2 -1
  302. package/dist/cli/resolvers/config.js.map +1 -1
  303. package/dist/cli/virtual/index.d.ts +2 -2
  304. package/dist/cli/virtual/index.js +11 -8
  305. package/dist/cli/virtual/virtual.d.ts +14 -11
  306. package/dist/content/index.d.ts +3 -0
  307. package/dist/content/index.js +8 -0
  308. package/dist/content/index.js.map +1 -0
  309. package/dist/entry/content/adapters/react/Builder.d.ts +5 -6
  310. package/dist/entry/content/adapters/react/Builder.js +8 -21
  311. package/dist/entry/content/adapters/react/Builder.js.map +1 -1
  312. package/dist/entry/content/adapters/react/Node.d.ts +6 -12
  313. package/dist/entry/content/adapters/react/Node.js +9 -25
  314. package/dist/entry/content/adapters/react/Node.js.map +1 -1
  315. package/dist/entry/content/adapters/react/index.d.ts +2 -1
  316. package/dist/entry/content/adapters/react/index.js +3 -1
  317. package/dist/entry/content/adapters/react/index.js.map +1 -1
  318. package/dist/entry/content/adapters/react/resolvers/definition.d.ts +2 -0
  319. package/dist/entry/content/adapters/react/resolvers/definition.js +12 -0
  320. package/dist/entry/content/adapters/react/resolvers/definition.js.map +1 -0
  321. package/dist/entry/content/adapters/react/resolvers/render.d.ts +2 -2
  322. package/dist/entry/content/adapters/react/resolvers/render.js +4 -6
  323. package/dist/entry/content/adapters/react/resolvers/render.js.map +1 -1
  324. package/dist/entry/content/adapters/vanilla/Builder.d.ts +5 -5
  325. package/dist/entry/content/adapters/vanilla/Builder.js +9 -15
  326. package/dist/entry/content/adapters/vanilla/Builder.js.map +1 -1
  327. package/dist/entry/content/adapters/vanilla/Node.d.ts +5 -10
  328. package/dist/entry/content/adapters/vanilla/Node.js +11 -34
  329. package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
  330. package/dist/entry/content/adapters/vanilla/index.d.ts +2 -1
  331. package/dist/entry/content/adapters/vanilla/index.js +3 -1
  332. package/dist/entry/content/adapters/vanilla/index.js.map +1 -1
  333. package/dist/entry/content/adapters/vanilla/resolvers/definition.d.ts +2 -0
  334. package/dist/entry/content/adapters/vanilla/resolvers/definition.js +9 -0
  335. package/dist/entry/content/adapters/vanilla/resolvers/definition.js.map +1 -0
  336. package/dist/entry/content/adapters/vanilla/resolvers/render.d.ts +3 -0
  337. package/dist/entry/content/adapters/vanilla/resolvers/render.js +15 -0
  338. package/dist/entry/content/adapters/vanilla/resolvers/render.js.map +1 -0
  339. package/dist/entry/content/index.d.ts +5 -1
  340. package/dist/entry/content/index.js +8 -1
  341. package/dist/entry/content/index.js.map +1 -1
  342. package/dist/entry/content/lifecycle/Builder.d.ts +26 -0
  343. package/dist/entry/content/lifecycle/Builder.js +212 -0
  344. package/dist/entry/content/lifecycle/Builder.js.map +1 -0
  345. package/dist/entry/content/lifecycle/IsolationSetup.d.ts +16 -0
  346. package/dist/entry/content/lifecycle/IsolationSetup.js +37 -0
  347. package/dist/entry/content/lifecycle/IsolationSetup.js.map +1 -0
  348. package/dist/entry/content/lifecycle/MountBuilder.d.ts +8 -0
  349. package/dist/entry/content/lifecycle/MountBuilder.js +57 -0
  350. package/dist/entry/content/lifecycle/MountBuilder.js.map +1 -0
  351. package/dist/entry/content/{core → lifecycle/context}/Context.d.ts +5 -2
  352. package/dist/entry/content/lifecycle/context/Context.js +73 -0
  353. package/dist/entry/content/lifecycle/context/Context.js.map +1 -0
  354. package/dist/entry/content/{core → lifecycle/context}/EventEmitter.d.ts +2 -2
  355. package/dist/entry/content/{core → lifecycle/context}/EventEmitter.js +3 -3
  356. package/dist/entry/content/lifecycle/context/EventEmitter.js.map +1 -0
  357. package/dist/entry/content/lifecycle/context/ManagedContext.d.ts +5 -0
  358. package/dist/entry/content/{core → lifecycle/context}/ManagedContext.js +2 -2
  359. package/dist/entry/content/lifecycle/context/ManagedContext.js.map +1 -0
  360. package/dist/entry/content/lifecycle/context/index.d.ts +3 -0
  361. package/dist/entry/content/lifecycle/context/index.js +9 -0
  362. package/dist/entry/content/lifecycle/context/index.js.map +1 -0
  363. package/dist/entry/content/{core → lifecycle/markers}/AbstractMarker.d.ts +2 -2
  364. package/dist/entry/content/{core → lifecycle/markers}/AbstractMarker.js +3 -3
  365. package/dist/entry/content/lifecycle/markers/AbstractMarker.js.map +1 -0
  366. package/dist/entry/content/{core → lifecycle/markers}/AttributeMarker.d.ts +2 -2
  367. package/dist/entry/content/{core → lifecycle/markers}/AttributeMarker.js +2 -2
  368. package/dist/entry/content/lifecycle/markers/AttributeMarker.js.map +1 -0
  369. package/dist/entry/content/{core → lifecycle/markers}/WeakMarker.d.ts +2 -2
  370. package/dist/entry/content/{core → lifecycle/markers}/WeakMarker.js +2 -2
  371. package/dist/entry/content/lifecycle/markers/WeakMarker.js.map +1 -0
  372. package/dist/entry/content/lifecycle/markers/index.d.ts +3 -0
  373. package/dist/entry/content/lifecycle/markers/index.js +9 -0
  374. package/dist/entry/content/lifecycle/markers/index.js.map +1 -0
  375. package/dist/entry/content/{core → lifecycle/nodes}/EventNode.d.ts +5 -2
  376. package/dist/entry/content/{core → lifecycle/nodes}/EventNode.js +14 -2
  377. package/dist/entry/content/lifecycle/nodes/EventNode.js.map +1 -0
  378. package/dist/entry/content/lifecycle/nodes/FrameNode.d.ts +29 -0
  379. package/dist/entry/content/lifecycle/nodes/FrameNode.js +187 -0
  380. package/dist/entry/content/lifecycle/nodes/FrameNode.js.map +1 -0
  381. package/dist/entry/content/{core → lifecycle/nodes}/MarkerNode.d.ts +4 -2
  382. package/dist/entry/content/{core → lifecycle/nodes}/MarkerNode.js +8 -2
  383. package/dist/entry/content/lifecycle/nodes/MarkerNode.js.map +1 -0
  384. package/dist/entry/content/{core → lifecycle/nodes}/MountNode.d.ts +4 -2
  385. package/dist/entry/content/{core → lifecycle/nodes}/MountNode.js +8 -2
  386. package/dist/entry/content/lifecycle/nodes/MountNode.js.map +1 -0
  387. package/dist/entry/content/{core → lifecycle/nodes}/Node.d.ts +3 -2
  388. package/dist/entry/content/{core → lifecycle/nodes}/Node.js +5 -2
  389. package/dist/entry/content/lifecycle/nodes/Node.js.map +1 -0
  390. package/dist/entry/content/lifecycle/nodes/RenderNode.d.ts +19 -0
  391. package/dist/entry/content/lifecycle/nodes/RenderNode.js +75 -0
  392. package/dist/entry/content/lifecycle/nodes/RenderNode.js.map +1 -0
  393. package/dist/entry/content/lifecycle/nodes/ShadowNode.d.ts +21 -0
  394. package/dist/entry/content/lifecycle/nodes/ShadowNode.js +121 -0
  395. package/dist/entry/content/lifecycle/nodes/ShadowNode.js.map +1 -0
  396. package/dist/entry/content/lifecycle/nodes/index.d.ts +7 -0
  397. package/dist/entry/content/lifecycle/nodes/index.js +17 -0
  398. package/dist/entry/content/lifecycle/nodes/index.js.map +1 -0
  399. package/dist/entry/content/lifecycle/nodes/isolated-styles.d.ts +2 -0
  400. package/dist/entry/content/lifecycle/nodes/isolated-styles.js +14 -0
  401. package/dist/entry/content/lifecycle/nodes/isolated-styles.js.map +1 -0
  402. package/dist/entry/content/resolvers/anchor.d.ts +2 -0
  403. package/dist/entry/content/{core/resolvers → resolvers}/anchor.js +2 -2
  404. package/dist/entry/content/resolvers/anchor.js.map +1 -0
  405. package/dist/entry/content/resolvers/container.d.ts +2 -0
  406. package/dist/entry/content/{core/resolvers → resolvers}/container.js +2 -2
  407. package/dist/entry/content/resolvers/container.js.map +1 -0
  408. package/dist/entry/content/resolvers/definition.d.ts +5 -0
  409. package/dist/entry/content/resolvers/definition.js +24 -0
  410. package/dist/entry/content/resolvers/definition.js.map +1 -0
  411. package/dist/entry/content/{core/resolvers → resolvers}/index.d.ts +1 -1
  412. package/dist/entry/content/{core/resolvers → resolvers}/index.js +1 -1
  413. package/dist/entry/content/resolvers/index.js.map +1 -0
  414. package/dist/entry/content/resolvers/mount.d.ts +2 -0
  415. package/dist/entry/content/{core/resolvers → resolvers}/mount.js +3 -3
  416. package/dist/entry/content/resolvers/mount.js.map +1 -0
  417. package/dist/entry/content/resolvers/target.d.ts +3 -0
  418. package/dist/entry/content/resolvers/target.js +34 -0
  419. package/dist/entry/content/resolvers/target.js.map +1 -0
  420. package/dist/entry/content/resolvers/watch.d.ts +6 -0
  421. package/dist/entry/content/{core/resolvers → resolvers}/watch.js +15 -11
  422. package/dist/entry/content/resolvers/watch.js.map +1 -0
  423. package/dist/entry/relay/Builder.d.ts +8 -8
  424. package/dist/entry/relay/Builder.js +32 -19
  425. package/dist/entry/relay/Builder.js.map +1 -1
  426. package/dist/entry/relay/TransportBuilder.d.ts +3 -2
  427. package/dist/entry/relay/TransportBuilder.js +3 -3
  428. package/dist/entry/relay/TransportBuilder.js.map +1 -1
  429. package/dist/entry/relay/index.d.ts +5 -2
  430. package/dist/entry/relay/index.js +8 -2
  431. package/dist/entry/relay/index.js.map +1 -1
  432. package/dist/entry/relay/resolvers/definition.d.ts +4 -0
  433. package/dist/entry/relay/resolvers/definition.js +16 -0
  434. package/dist/entry/relay/resolvers/definition.js.map +1 -0
  435. package/dist/locale/adapters/react/ReactLocale.d.ts +18 -0
  436. package/dist/locale/adapters/react/ReactLocale.js +41 -0
  437. package/dist/locale/adapters/react/ReactLocale.js.map +1 -0
  438. package/dist/locale/adapters/react/hooks/use-locale-attributes.d.ts +7 -0
  439. package/dist/locale/adapters/react/hooks/use-locale-attributes.js +30 -0
  440. package/dist/locale/adapters/react/hooks/use-locale-attributes.js.map +1 -0
  441. package/dist/locale/adapters/react/hooks/use-locale.d.ts +3 -0
  442. package/dist/locale/adapters/react/hooks/use-locale.js +17 -0
  443. package/dist/locale/adapters/react/hooks/use-locale.js.map +1 -0
  444. package/dist/locale/adapters/react/hooks/use-native-locale.d.ts +3 -0
  445. package/dist/locale/adapters/react/hooks/use-native-locale.js +10 -0
  446. package/dist/locale/adapters/react/hooks/use-native-locale.js.map +1 -0
  447. package/dist/locale/adapters/react/index.d.ts +4 -2
  448. package/dist/locale/adapters/react/index.js +6 -4
  449. package/dist/locale/adapters/react/index.js.map +1 -1
  450. package/dist/locale/adapters/react/types.d.ts +22 -0
  451. package/dist/locale/adapters/react/types.js +1 -0
  452. package/dist/locale/adapters/react/types.js.map +1 -0
  453. package/dist/locale/helpers.d.ts +4 -5
  454. package/dist/locale/helpers.js +1 -1
  455. package/dist/locale/helpers.js.map +1 -1
  456. package/dist/locale/index.d.ts +2 -1
  457. package/dist/locale/index.js +1 -0
  458. package/dist/locale/index.js.map +1 -1
  459. package/dist/locale/providers/AbstractLocale.d.ts +4 -4
  460. package/dist/locale/providers/AbstractLocale.js +13 -94
  461. package/dist/locale/providers/AbstractLocale.js.map +1 -1
  462. package/dist/locale/providers/CustomLocale.d.ts +3 -3
  463. package/dist/locale/providers/CustomLocale.js +6 -5
  464. package/dist/locale/providers/CustomLocale.js.map +1 -1
  465. package/dist/locale/providers/DynamicLocale.d.ts +18 -11
  466. package/dist/locale/providers/DynamicLocale.js +60 -47
  467. package/dist/locale/providers/DynamicLocale.js.map +1 -1
  468. package/dist/locale/providers/NativeLocale.d.ts +4 -7
  469. package/dist/locale/providers/NativeLocale.js +5 -14
  470. package/dist/locale/providers/NativeLocale.js.map +1 -1
  471. package/dist/locale/providers/ObservableLocale.d.ts +35 -0
  472. package/dist/locale/providers/ObservableLocale.js +179 -0
  473. package/dist/locale/providers/ObservableLocale.js.map +1 -0
  474. package/dist/locale/providers/index.d.ts +2 -1
  475. package/dist/locale/providers/index.js +3 -1
  476. package/dist/locale/providers/index.js.map +1 -1
  477. package/dist/locale/storage/LocaleStorage.d.ts +11 -0
  478. package/dist/locale/storage/LocaleStorage.js +40 -0
  479. package/dist/locale/storage/LocaleStorage.js.map +1 -0
  480. package/dist/locale/storage/index.d.ts +1 -0
  481. package/dist/locale/storage/index.js +5 -0
  482. package/dist/locale/storage/index.js.map +1 -0
  483. package/dist/main/content.d.ts +4 -6
  484. package/dist/main/content.js +3 -16
  485. package/dist/main/content.js.map +1 -1
  486. package/dist/main/entrypoint.d.ts +4 -0
  487. package/dist/main/entrypoint.js +20 -0
  488. package/dist/main/entrypoint.js.map +1 -0
  489. package/dist/main/icon.d.ts +2 -3
  490. package/dist/main/icon.js +2 -1
  491. package/dist/main/icon.js.map +1 -1
  492. package/dist/main/index.d.ts +1 -0
  493. package/dist/main/index.js +1 -0
  494. package/dist/main/index.js.map +1 -1
  495. package/dist/main/offscreen.d.ts +2 -5
  496. package/dist/main/offscreen.js +5 -2
  497. package/dist/main/offscreen.js.map +1 -1
  498. package/dist/main/page.d.ts +2 -4
  499. package/dist/main/page.js +2 -1
  500. package/dist/main/page.js.map +1 -1
  501. package/dist/main/popup.d.ts +2 -5
  502. package/dist/main/popup.js +3 -3
  503. package/dist/main/popup.js.map +1 -1
  504. package/dist/main/relay.d.ts +3 -3
  505. package/dist/main/relay.js +2 -1
  506. package/dist/main/relay.js.map +1 -1
  507. package/dist/main/sandbox.d.ts +1 -4
  508. package/dist/main/sandbox.js +2 -1
  509. package/dist/main/sandbox.js.map +1 -1
  510. package/dist/main/service.d.ts +1 -2
  511. package/dist/main/service.js.map +1 -1
  512. package/dist/main/sidebar.d.ts +2 -5
  513. package/dist/main/sidebar.js +3 -3
  514. package/dist/main/sidebar.js.map +1 -1
  515. package/dist/message/index.d.ts +2 -4
  516. package/dist/message/index.js.map +1 -1
  517. package/dist/offscreen/index.d.ts +2 -6
  518. package/dist/offscreen/index.js.map +1 -1
  519. package/dist/relay/RelayPermission.js +1 -1
  520. package/dist/relay/index.d.ts +2 -5
  521. package/dist/relay/index.js.map +1 -1
  522. package/dist/sandbox/index.d.ts +1 -5
  523. package/dist/sandbox/index.js.map +1 -1
  524. package/dist/service/index.d.ts +2 -6
  525. package/dist/service/index.js.map +1 -1
  526. package/dist/shared/content/index.d.ts +1 -0
  527. package/dist/shared/content/index.js +6 -0
  528. package/dist/shared/content/index.js.map +1 -0
  529. package/dist/shared/content/isolation.d.ts +4 -0
  530. package/dist/shared/content/isolation.js +63 -0
  531. package/dist/shared/content/isolation.js.map +1 -0
  532. package/dist/shared/locale/index.d.ts +5 -0
  533. package/dist/shared/locale/index.js +21 -0
  534. package/dist/shared/locale/index.js.map +1 -0
  535. package/dist/shared/locale/keys.d.ts +5 -0
  536. package/dist/shared/locale/keys.js +33 -0
  537. package/dist/shared/locale/keys.js.map +1 -0
  538. package/dist/shared/locale/language.d.ts +4 -0
  539. package/dist/shared/locale/language.js +23 -0
  540. package/dist/shared/locale/language.js.map +1 -0
  541. package/dist/shared/locale/messages.d.ts +3 -0
  542. package/dist/shared/locale/messages.js +9 -0
  543. package/dist/shared/locale/messages.js.map +1 -0
  544. package/dist/shared/locale/plural.d.ts +2 -0
  545. package/dist/shared/locale/plural.js +81 -0
  546. package/dist/shared/locale/plural.js.map +1 -0
  547. package/dist/shared/locale/substitutions.d.ts +10 -0
  548. package/dist/shared/locale/substitutions.js +32 -0
  549. package/dist/shared/locale/substitutions.js.map +1 -0
  550. package/dist/types/background.d.ts +1 -1
  551. package/dist/types/background.js.map +1 -1
  552. package/dist/types/command.d.ts +1 -1
  553. package/dist/types/command.js.map +1 -1
  554. package/dist/types/content/adapters/index.d.ts +2 -0
  555. package/dist/types/content/adapters/index.js +1 -0
  556. package/dist/types/content/adapters/index.js.map +1 -0
  557. package/dist/types/content/adapters/react.d.ts +4 -0
  558. package/dist/types/content/adapters/react.js +1 -0
  559. package/dist/types/content/adapters/react.js.map +1 -0
  560. package/dist/types/content/adapters/vanilla.d.ts +1 -0
  561. package/dist/types/content/adapters/vanilla.js +1 -0
  562. package/dist/types/content/adapters/vanilla.js.map +1 -0
  563. package/dist/types/content/boundary.d.ts +17 -0
  564. package/dist/types/content/boundary.js +1 -0
  565. package/dist/types/content/boundary.js.map +1 -0
  566. package/dist/types/{content.d.ts → content/common.d.ts} +119 -59
  567. package/dist/types/{content.js → content/common.js} +23 -2
  568. package/dist/types/content/common.js.map +1 -0
  569. package/dist/types/content/definition.d.ts +61 -0
  570. package/dist/types/content/definition.js +1 -0
  571. package/dist/types/content/definition.js.map +1 -0
  572. package/dist/types/content/index.d.ts +7 -0
  573. package/dist/types/content/index.js +2 -0
  574. package/dist/types/content/index.js.map +1 -0
  575. package/dist/types/content/prepare.d.ts +9 -0
  576. package/dist/types/content/prepare.js +1 -0
  577. package/dist/types/content/prepare.js.map +1 -0
  578. package/dist/types/content/render.d.ts +6 -0
  579. package/dist/types/content/render.js +1 -0
  580. package/dist/types/content/render.js.map +1 -0
  581. package/dist/types/content/target.d.ts +13 -0
  582. package/dist/types/content/target.js +1 -0
  583. package/dist/types/content/target.js.map +1 -0
  584. package/dist/types/entrypoint.d.ts +20 -0
  585. package/dist/types/entrypoint.js +4 -0
  586. package/dist/types/entrypoint.js.map +1 -1
  587. package/dist/types/icon.d.ts +8 -0
  588. package/dist/types/icon.js.map +1 -1
  589. package/dist/types/language.d.ts +57 -0
  590. package/dist/types/language.js +62 -0
  591. package/dist/types/language.js.map +1 -0
  592. package/dist/types/locale.d.ts +34 -63
  593. package/dist/types/locale.js +62 -119
  594. package/dist/types/locale.js.map +1 -1
  595. package/dist/types/manifest.d.ts +11 -8
  596. package/dist/types/manifest.js.map +1 -1
  597. package/dist/types/message.d.ts +7 -0
  598. package/dist/types/message.js.map +1 -1
  599. package/dist/types/offscreen.d.ts +14 -1
  600. package/dist/types/offscreen.js.map +1 -1
  601. package/dist/types/page.d.ts +8 -0
  602. package/dist/types/popup.d.ts +9 -0
  603. package/dist/types/relay.d.ts +15 -7
  604. package/dist/types/relay.js.map +1 -1
  605. package/dist/types/sandbox.d.ts +12 -0
  606. package/dist/types/sandbox.js.map +1 -1
  607. package/dist/types/service.d.ts +10 -1
  608. package/dist/types/service.js.map +1 -1
  609. package/dist/types/sidebar.d.ts +9 -0
  610. package/dist/types/sidebar.js.map +1 -1
  611. package/dist/types/transport.d.ts +4 -0
  612. package/dist/virtual/icon.d.ts +2 -0
  613. package/dist/virtual/icon.js +5 -0
  614. package/dist/virtual/icon.js.map +1 -0
  615. package/dist/virtual/locale.d.ts +7 -0
  616. package/dist/virtual/locale.js +13 -0
  617. package/dist/virtual/locale.js.map +1 -0
  618. package/dist/virtual/modules.d.ts +41 -0
  619. package/dist/virtual/offscreen.d.ts +3 -0
  620. package/dist/virtual/offscreen.js +5 -0
  621. package/dist/virtual/offscreen.js.map +1 -0
  622. package/dist/virtual/page.d.ts +2 -0
  623. package/dist/virtual/page.js +5 -0
  624. package/dist/virtual/page.js.map +1 -0
  625. package/dist/virtual/popup.d.ts +3 -0
  626. package/dist/virtual/popup.js +5 -0
  627. package/dist/virtual/popup.js.map +1 -0
  628. package/dist/virtual/relay.d.ts +3 -0
  629. package/dist/virtual/relay.js +5 -0
  630. package/dist/virtual/relay.js.map +1 -0
  631. package/dist/virtual/runtime.d.ts +8 -0
  632. package/dist/virtual/runtime.js +9 -0
  633. package/dist/virtual/runtime.js.map +1 -0
  634. package/dist/virtual/sandbox.d.ts +3 -0
  635. package/dist/virtual/sandbox.js +5 -0
  636. package/dist/virtual/sandbox.js.map +1 -0
  637. package/dist/virtual/sidebar.d.ts +3 -0
  638. package/dist/virtual/sidebar.js +5 -0
  639. package/dist/virtual/sidebar.js.map +1 -0
  640. package/package.json +53 -23
  641. package/scripts/clean-dist.js +7 -0
  642. package/scripts/copy-dts.js +11 -1
  643. package/scripts/merge-coverage.mjs +12 -0
  644. package/scripts/pre-commit.mjs +22 -0
  645. package/scripts/test-inventory.mjs +38 -0
  646. package/scripts/test-run.mjs +25 -0
  647. package/types/client.d.ts +15 -0
  648. package/dist/cli/builders/manifest/utils.d.ts +0 -32
  649. package/dist/cli/builders/manifest/utils.js +0 -209
  650. package/dist/cli/builders/manifest/utils.js.map +0 -1
  651. package/dist/cli/bundler/plugins/EntrypointPlugin.js.map +0 -1
  652. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js +0 -40
  653. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js.map +0 -1
  654. package/dist/cli/bundler/plugins/ManifestPlugin.d.ts +0 -10
  655. package/dist/cli/bundler/plugins/ManifestPlugin.js +0 -78
  656. package/dist/cli/bundler/plugins/ManifestPlugin.js.map +0 -1
  657. package/dist/cli/bundler/plugins/ReplacePlugin.js.map +0 -1
  658. package/dist/cli/bundler/plugins/WatchPlugin.js +0 -21
  659. package/dist/cli/bundler/plugins/WatchPlugin.js.map +0 -1
  660. package/dist/cli/bundler/utils/output.d.ts +0 -2
  661. package/dist/cli/bundler/utils/output.js +0 -15
  662. package/dist/cli/bundler/utils/output.js.map +0 -1
  663. package/dist/cli/entrypoint/finder/tests/fixtures/options/discovery/account.options.d.ts +0 -1
  664. package/dist/cli/entrypoint/finder/tests/fixtures/options/discovery/advanced.options/index.d.ts +0 -1
  665. package/dist/cli/plugins/output.d.ts +0 -2
  666. package/dist/cli/plugins/output.js +0 -32
  667. package/dist/cli/plugins/output.js.map +0 -1
  668. package/dist/entry/content/adapters/react/resolvers/index.d.ts +0 -1
  669. package/dist/entry/content/adapters/react/resolvers/index.js +0 -2
  670. package/dist/entry/content/adapters/react/resolvers/index.js.map +0 -1
  671. package/dist/entry/content/core/AbstractMarker.js.map +0 -1
  672. package/dist/entry/content/core/AttributeMarker.js.map +0 -1
  673. package/dist/entry/content/core/Builder.d.ts +0 -27
  674. package/dist/entry/content/core/Builder.js +0 -124
  675. package/dist/entry/content/core/Builder.js.map +0 -1
  676. package/dist/entry/content/core/Context.js +0 -43
  677. package/dist/entry/content/core/Context.js.map +0 -1
  678. package/dist/entry/content/core/EventEmitter.js.map +0 -1
  679. package/dist/entry/content/core/EventNode.js.map +0 -1
  680. package/dist/entry/content/core/ManagedContext.d.ts +0 -5
  681. package/dist/entry/content/core/ManagedContext.js.map +0 -1
  682. package/dist/entry/content/core/MarkerNode.js.map +0 -1
  683. package/dist/entry/content/core/MountBuilder.d.ts +0 -10
  684. package/dist/entry/content/core/MountBuilder.js +0 -40
  685. package/dist/entry/content/core/MountBuilder.js.map +0 -1
  686. package/dist/entry/content/core/MountNode.js.map +0 -1
  687. package/dist/entry/content/core/Node.js.map +0 -1
  688. package/dist/entry/content/core/WeakMarker.js.map +0 -1
  689. package/dist/entry/content/core/resolvers/anchor.d.ts +0 -2
  690. package/dist/entry/content/core/resolvers/anchor.js.map +0 -1
  691. package/dist/entry/content/core/resolvers/container.d.ts +0 -2
  692. package/dist/entry/content/core/resolvers/container.js.map +0 -1
  693. package/dist/entry/content/core/resolvers/definition.d.ts +0 -3
  694. package/dist/entry/content/core/resolvers/definition.js +0 -12
  695. package/dist/entry/content/core/resolvers/definition.js.map +0 -1
  696. package/dist/entry/content/core/resolvers/index.js.map +0 -1
  697. package/dist/entry/content/core/resolvers/mount.d.ts +0 -2
  698. package/dist/entry/content/core/resolvers/mount.js.map +0 -1
  699. package/dist/entry/content/core/resolvers/render.d.ts +0 -3
  700. package/dist/entry/content/core/resolvers/render.js +0 -18
  701. package/dist/entry/content/core/resolvers/render.js.map +0 -1
  702. package/dist/entry/content/core/resolvers/watch.d.ts +0 -4
  703. package/dist/entry/content/core/resolvers/watch.js.map +0 -1
  704. package/dist/locale/adapters/react/LocaleProvider.d.ts +0 -7
  705. package/dist/locale/adapters/react/LocaleProvider.js +0 -58
  706. package/dist/locale/adapters/react/LocaleProvider.js.map +0 -1
  707. package/dist/locale/adapters/react/context.d.ts +0 -14
  708. package/dist/locale/adapters/react/context.js +0 -25
  709. package/dist/locale/adapters/react/context.js.map +0 -1
  710. package/dist/locale/utils.d.ts +0 -11
  711. package/dist/locale/utils.js +0 -67
  712. package/dist/locale/utils.js.map +0 -1
  713. package/dist/types/content.js.map +0 -1
  714. /package/dist/cli/bundler/plugins/{ReplacePlugin.d.ts → replace/ReplacePlugin.d.ts} +0 -0
  715. /package/dist/cli/bundler/plugins/{ReplacePlugin.js → replace/ReplacePlugin.js} +0 -0
  716. /package/dist/cli/bundler/plugins/{WatchPlugin.d.ts → watch/WatchPlugin.d.ts} +0 -0
@@ -3,7 +3,7 @@ import fs from "fs";
3
3
  import path from "path";
4
4
  import { ImportResolver } from "./resolvers/index.js";
5
5
  import injectors from "./injectors/index.js";
6
- class EntryFile {
6
+ class SourceFile {
7
7
  constructor(file) {
8
8
  this.file = file;
9
9
  }
@@ -11,17 +11,17 @@ class EntryFile {
11
11
  sourceFile;
12
12
  variables;
13
13
  imports;
14
- enums;
14
+ sources = /* @__PURE__ */ new Map();
15
15
  importResolver;
16
16
  static make(file) {
17
17
  return new this(file);
18
18
  }
19
19
  getSourceFile() {
20
- if (this.sourceFile) {
21
- return this.sourceFile;
20
+ if (!this.sourceFile) {
21
+ const sourceCode = fs.readFileSync(this.file, "utf8");
22
+ this.sourceFile = ts.createSourceFile(this.file, sourceCode, ts.ScriptTarget.ESNext, true);
22
23
  }
23
- const sourceCode = fs.readFileSync(this.file, "utf8");
24
- return this.sourceFile = ts.createSourceFile(this.file, sourceCode, ts.ScriptTarget.ESNext, true);
24
+ return this.sourceFile;
25
25
  }
26
26
  getImports() {
27
27
  if (this.imports) {
@@ -29,7 +29,7 @@ class EntryFile {
29
29
  }
30
30
  this.imports = /* @__PURE__ */ new Map();
31
31
  const parse = (node) => {
32
- var _a, _b, _c;
32
+ var _a, _b, _c, _d;
33
33
  if (ts.isImportDeclaration(node) && node.moduleSpecifier) {
34
34
  const importPath = node.moduleSpecifier.text;
35
35
  if (node.importClause) {
@@ -42,196 +42,300 @@ class EntryFile {
42
42
  (_a2 = this.imports) == null ? void 0 : _a2.set(el.name.text, this.getInputResolver().get(importPath));
43
43
  });
44
44
  }
45
+ if (node.importClause.namedBindings && ts.isNamespaceImport(node.importClause.namedBindings)) {
46
+ (_b = this.imports) == null ? void 0 : _b.set(
47
+ node.importClause.namedBindings.name.text,
48
+ this.getInputResolver().get(importPath)
49
+ );
50
+ }
45
51
  }
46
52
  } else if (ts.isImportEqualsDeclaration(node) && ts.isExternalModuleReference(node.moduleReference)) {
47
53
  if (node.moduleReference.expression && ts.isStringLiteral(node.moduleReference.expression)) {
48
54
  const importPath = node.moduleReference.expression.text;
49
- (_b = this.imports) == null ? void 0 : _b.set(node.name.text, this.getInputResolver().get(importPath));
55
+ (_c = this.imports) == null ? void 0 : _c.set(node.name.text, this.getInputResolver().get(importPath));
50
56
  }
51
57
  } else if (ts.isImportEqualsDeclaration(node)) {
52
58
  const qualifiedName = node.moduleReference.getText();
53
- (_c = this.imports) == null ? void 0 : _c.set(node.name.text, qualifiedName);
59
+ (_d = this.imports) == null ? void 0 : _d.set(node.name.text, qualifiedName);
54
60
  }
55
61
  ts.forEachChild(node, parse);
56
62
  };
57
63
  parse(this.getSourceFile());
58
64
  return this.imports;
59
65
  }
60
- getEnums() {
61
- if (this.enums) {
62
- return this.enums;
63
- }
64
- this.enums = /* @__PURE__ */ new Map();
65
- const parse = (node) => {
66
- var _a;
67
- if (ts.isEnumDeclaration(node)) {
68
- const enumName = node.name.text;
69
- const enumProperties = /* @__PURE__ */ new Map();
70
- node.members.forEach((member) => {
71
- const key = member.name.getText();
72
- const value = member.initializer ? member.initializer.getText().replace(/['"]/g, "") : key;
73
- enumProperties.set(key, value);
74
- });
75
- (_a = this.enums) == null ? void 0 : _a.set(enumName, enumProperties);
76
- }
77
- ts.forEachChild(node, parse);
78
- };
79
- parse(this.getSourceFile());
80
- return this.enums;
81
- }
82
- getVariables() {
83
- if (this.variables) {
84
- return this.variables;
85
- }
86
- this.variables = /* @__PURE__ */ new Map();
87
- const parse = (node) => {
88
- var _a, _b, _c, _d;
89
- if (ts.isVariableStatement(node)) {
90
- const isExported = (_a = node.modifiers) == null ? void 0 : _a.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword);
91
- node.declarationList.declarations.forEach((declaration) => {
92
- var _a2;
93
- if (ts.isIdentifier(declaration.name) && declaration.initializer) {
94
- const name = declaration.name.text;
95
- const value = this.parseNode(declaration.initializer);
96
- (_a2 = this.variables) == null ? void 0 : _a2.set(name, {
97
- name,
98
- value,
99
- exported: isExported || false
100
- });
66
+ /** Collect declarations without evaluating runtime functions or unrelated initializers. */
67
+ getBindings(exportedOnly = false) {
68
+ var _a, _b;
69
+ const bindings = /* @__PURE__ */ new Map();
70
+ const bind = (name, node) => bindings.set(name, { source: this, node });
71
+ for (const statement of this.getSourceFile().statements) {
72
+ const exported = ts.canHaveModifiers(statement) && ((_a = ts.getModifiers(statement)) == null ? void 0 : _a.some((item) => item.kind === ts.SyntaxKind.ExportKeyword));
73
+ if (ts.isVariableStatement(statement) && (!exportedOnly || exported)) {
74
+ for (const declaration of statement.declarationList.declarations) {
75
+ if (ts.isIdentifier(declaration.name)) bind(declaration.name.text, declaration);
76
+ else {
77
+ const collect = (node) => {
78
+ if (ts.isBindingElement(node) && ts.isIdentifier(node.name)) bind(node.name.text, node);
79
+ else ts.forEachChild(node, collect);
80
+ };
81
+ collect(declaration.name);
101
82
  }
102
- });
83
+ }
84
+ } else if ((ts.isEnumDeclaration(statement) || ts.isFunctionDeclaration(statement) || ts.isClassDeclaration(statement)) && (!exportedOnly || exported) && statement.name) {
85
+ const isDefault = (_b = ts.getModifiers(statement)) == null ? void 0 : _b.some((item) => item.kind === ts.SyntaxKind.DefaultKeyword);
86
+ bind(exportedOnly && isDefault ? "default" : statement.name.text, statement);
103
87
  }
104
- if (ts.isExportDeclaration(node) && node.exportClause && ts.isNamedExports(node.exportClause)) {
105
- node.exportClause.elements.forEach((el) => {
106
- var _a2, _b2, _c2;
107
- const name = el.name.text;
108
- if ((_a2 = this.variables) == null ? void 0 : _a2.has(name)) {
109
- const variable = (_b2 = this.variables) == null ? void 0 : _b2.get(name);
110
- (_c2 = this.variables) == null ? void 0 : _c2.set(name, {
111
- name,
112
- value: variable.value,
113
- exported: true
114
- });
115
- }
116
- });
88
+ if (exportedOnly && ts.isExportAssignment(statement) && !statement.isExportEquals) {
89
+ bind("default", statement.expression);
117
90
  }
118
- if (ts.isExportAssignment(node)) {
119
- const expr = node.expression;
120
- if (ts.isIdentifier(expr) && ((_b = this.variables) == null ? void 0 : _b.has(expr.text))) {
121
- const variable = (_c = this.variables) == null ? void 0 : _c.get(expr.text);
122
- const name = "default";
123
- (_d = this.variables) == null ? void 0 : _d.set(name, {
124
- name,
125
- value: variable.value,
126
- exported: true
127
- });
91
+ if (exportedOnly && ts.isExportDeclaration(statement) && !statement.isTypeOnly && statement.exportClause && ts.isNamedExports(statement.exportClause)) {
92
+ for (const item of statement.exportClause.elements) {
93
+ if (!item.isTypeOnly)
94
+ bind(item.name.text, statement.moduleSpecifier ? item : item.propertyName ?? item.name);
128
95
  }
129
96
  }
130
- ts.forEachChild(node, parse);
131
- };
132
- parse(this.getSourceFile());
97
+ }
98
+ return bindings;
99
+ }
100
+ getVariables() {
101
+ if (this.variables) return this.variables;
102
+ const locals = this.getBindings();
103
+ const exported = this.getBindings(true);
104
+ this.variables = /* @__PURE__ */ new Map();
105
+ for (const [name, binding] of new Map([...locals, ...exported])) {
106
+ const result = this.parseNode(binding.node, name);
107
+ this.variables.set(name, {
108
+ name,
109
+ value: result.resolved ? result.value : void 0,
110
+ exported: exported.has(name)
111
+ });
112
+ }
133
113
  return this.variables;
134
114
  }
135
115
  resolveValue(from, target, name) {
136
116
  return injectors([])(from, target, name);
137
117
  }
138
- findPropertyAccessValue(property) {
139
- if (ts.isPropertyAccessExpression(property)) {
140
- const objectName = property.expression.getText();
141
- const propertyName = property.name.getText();
142
- const varItem = this.getVariables().get(objectName);
143
- if (varItem) {
144
- return varItem.value;
118
+ getImportBinding(name) {
119
+ var _a;
120
+ for (const statement of this.getSourceFile().statements) {
121
+ if (!ts.isImportDeclaration(statement) || !ts.isStringLiteral(statement.moduleSpecifier)) continue;
122
+ const clause = statement.importClause;
123
+ const from = statement.moduleSpecifier.text;
124
+ if (((_a = clause == null ? void 0 : clause.name) == null ? void 0 : _a.text) === name) return { from, name: "default" };
125
+ if ((clause == null ? void 0 : clause.namedBindings) && ts.isNamedImports(clause.namedBindings)) {
126
+ const item = clause.namedBindings.elements.find((item2) => item2.name.text === name);
127
+ if (item) return { from, name: (item.propertyName ?? item.name).text };
145
128
  }
146
- const enumItem = this.getEnums().get(objectName);
147
- if (enumItem) {
148
- return enumItem.get(propertyName);
129
+ if ((clause == null ? void 0 : clause.namedBindings) && ts.isNamespaceImport(clause.namedBindings) && clause.namedBindings.name.text === name)
130
+ return { from, name: "*" };
131
+ }
132
+ }
133
+ getImportedSource(from) {
134
+ const filename = this.getInputResolver().get(from);
135
+ if (!filename || !path.isAbsolute(filename) || !/\.[cm]?[jt]sx?$/.test(filename) || !fs.existsSync(filename))
136
+ return;
137
+ let source = this.sources.get(filename);
138
+ if (!source) {
139
+ source = new SourceFile(filename);
140
+ source.setImportResolver(this.getInputResolver());
141
+ source.sources = this.sources;
142
+ this.sources.set(filename, source);
143
+ }
144
+ return source;
145
+ }
146
+ failure(context, reason) {
147
+ return { resolved: false, file: this.file, path: context.path, reason };
148
+ }
149
+ /** Follow static bindings, retaining their source module and detecting reference cycles. */
150
+ resolveNode(node, context) {
151
+ var _a;
152
+ if (!node) return this.failure(context, "missing initializer");
153
+ const key = `${this.file}:${node.pos}:${node.end}`;
154
+ if (context.seen.has(key)) return this.failure(context, "circular reference");
155
+ context = { ...context, seen: /* @__PURE__ */ new Set([...context.seen, key]) };
156
+ if (ts.isAsExpression(node) || ts.isTypeAssertionExpression(node) || ts.isSatisfiesExpression(node) || ts.isParenthesizedExpression(node) || ts.isNonNullExpression(node)) {
157
+ return this.resolveNode(node.expression, context);
158
+ }
159
+ if (ts.isVariableDeclaration(node)) {
160
+ if (!ts.isVariableDeclarationList(node.parent) || !(node.parent.flags & ts.NodeFlags.Const))
161
+ return this.failure(context, "use a const declaration for build options");
162
+ return this.resolveNode(node.initializer, context);
163
+ }
164
+ if (ts.isExportSpecifier(node) && ts.isExportDeclaration(node.parent.parent)) {
165
+ const from = node.parent.parent.moduleSpecifier;
166
+ const name = (node.propertyName ?? node.name).text;
167
+ const binding = from && ts.isStringLiteral(from) ? (_a = this.getImportedSource(from.text)) == null ? void 0 : _a.getBindings(true).get(name) : void 0;
168
+ if (binding) return binding.source.resolveNode(binding.node, context);
169
+ return this.failure(context, `cannot resolve re-exported value ${name}`);
170
+ }
171
+ if (ts.isIdentifier(node)) {
172
+ const local = this.getBindings().get(node.text);
173
+ if (local) return local.source.resolveNode(local.node, context);
174
+ const imported = this.getImportBinding(node.text);
175
+ if (imported) {
176
+ const source = this.getImportedSource(imported.from);
177
+ const binding = source == null ? void 0 : source.getBindings(true).get(imported.name);
178
+ if (binding) return binding.source.resolveNode(binding.node, context);
179
+ return this.failure(context, `cannot resolve imported value ${node.text}`);
149
180
  }
150
- const importItem = this.getImports().get(objectName);
151
- if (importItem) {
152
- const resolverItem = this.resolveValue(importItem, objectName, propertyName);
153
- if (resolverItem) {
154
- return resolverItem;
155
- }
156
- return EntryFile.make(importItem).findPropertyAccessValue(property);
181
+ if (node.text !== "undefined") return this.failure(context, `unresolved identifier ${node.text}`);
182
+ }
183
+ return { resolved: true, value: { source: this, node, context } };
184
+ }
185
+ parseNode(node, property = "") {
186
+ return this.readValue(node, { path: property, seen: /* @__PURE__ */ new Set() });
187
+ }
188
+ /** Read an object's shape first so callers can select build fields before evaluating values. */
189
+ getProperties(node, property = "") {
190
+ return this.readProperties(node, { path: property, seen: /* @__PURE__ */ new Set() });
191
+ }
192
+ readProperties(node, context) {
193
+ const result = this.resolveNode(node, context);
194
+ if (!result.resolved) return result;
195
+ const binding = result.value;
196
+ if (!ts.isObjectLiteralExpression(binding.node))
197
+ return binding.source.failure(binding.context, "expected a static object");
198
+ return binding.source.objectProperties(binding.node, binding.context);
199
+ }
200
+ objectProperties(node, context) {
201
+ const properties = /* @__PURE__ */ new Map();
202
+ for (const property of node.properties) {
203
+ if (ts.isSpreadAssignment(property)) {
204
+ const spread = this.readProperties(property.expression, context);
205
+ if (!spread.resolved) return spread;
206
+ for (const [key2, binding] of spread.value) properties.set(key2, binding);
207
+ continue;
208
+ }
209
+ let key;
210
+ if (ts.isComputedPropertyName(property.name)) {
211
+ const result = this.readValue(property.name.expression, context);
212
+ if (!result.resolved) return result;
213
+ if (typeof result.value !== "string" && typeof result.value !== "number")
214
+ return this.failure(context, "object keys must be strings or numbers");
215
+ key = String(result.value);
216
+ } else {
217
+ key = property.name.text;
157
218
  }
158
- return `${objectName}.${propertyName}`;
219
+ properties.set(key, {
220
+ source: this,
221
+ node: ts.isPropertyAssignment(property) ? property.initializer : ts.isShorthandPropertyAssignment(property) ? property.name : property
222
+ });
159
223
  }
160
- return void 0;
224
+ return { resolved: true, value: properties };
161
225
  }
162
- parseNode(node) {
226
+ readValue(node, context) {
227
+ const resolved = this.resolveNode(node, context);
228
+ if (!resolved.resolved) return resolved;
229
+ const binding = resolved.value;
230
+ return binding.source.readResolvedValue(binding.node, binding.context);
231
+ }
232
+ readResolvedValue(node, context) {
163
233
  var _a;
164
- if (!node) {
165
- return void 0;
166
- }
167
- switch (node.kind) {
168
- case ts.SyntaxKind.StringLiteral:
169
- return node.text;
170
- case ts.SyntaxKind.TrueKeyword:
171
- return true;
172
- case ts.SyntaxKind.FalseKeyword:
173
- return false;
174
- case ts.SyntaxKind.NullKeyword:
175
- return null;
176
- case ts.SyntaxKind.NumericLiteral:
177
- return parseFloat(node.text);
178
- case ts.SyntaxKind.Identifier: {
179
- const id = node;
180
- const name = id.text;
181
- const local = (_a = this.variables) == null ? void 0 : _a.get(name);
182
- if (local && local.value !== void 0) {
183
- return local.value;
184
- }
185
- const importPath = this.getImports().get(name);
186
- if (importPath) {
187
- const parser = EntryFile.make(importPath);
188
- const imported = parser.getVariables().get(name);
189
- if (imported && imported.value !== void 0) {
190
- return imported.value;
234
+ const success = (value) => ({ resolved: true, value });
235
+ if (ts.isStringLiteral(node) || ts.isNoSubstitutionTemplateLiteral(node)) return success(node.text);
236
+ if (ts.isNumericLiteral(node)) return success(Number(node.text));
237
+ if (node.kind === ts.SyntaxKind.TrueKeyword) return success(true);
238
+ if (node.kind === ts.SyntaxKind.FalseKeyword) return success(false);
239
+ if (node.kind === ts.SyntaxKind.NullKeyword) return success(null);
240
+ if (ts.isIdentifier(node) && node.text === "undefined") return success(void 0);
241
+ if (ts.isPrefixUnaryExpression(node)) {
242
+ const operand = this.readValue(node.operand, context);
243
+ if (!operand.resolved) return operand;
244
+ if (typeof operand.value === "number" && (node.operator === ts.SyntaxKind.MinusToken || node.operator === ts.SyntaxKind.PlusToken))
245
+ return success(node.operator === ts.SyntaxKind.MinusToken ? -operand.value : operand.value);
246
+ return this.failure(context, "unsupported unary expression");
247
+ }
248
+ if (ts.isArrayLiteralExpression(node)) {
249
+ const values = [];
250
+ for (const [index, element] of node.elements.entries()) {
251
+ const result = this.readValue(ts.isSpreadElement(element) ? element.expression : element, {
252
+ ...context,
253
+ path: `${context.path}[${index}]`
254
+ });
255
+ if (!result.resolved) return result;
256
+ if (ts.isSpreadElement(element)) {
257
+ if (!Array.isArray(result.value))
258
+ return this.failure(context, "array spread must reference a static array");
259
+ values.push(...result.value);
260
+ } else values.push(result.value);
261
+ }
262
+ return success(values);
263
+ }
264
+ if (ts.isObjectLiteralExpression(node)) {
265
+ const properties = this.objectProperties(node, context);
266
+ if (!properties.resolved) return properties;
267
+ const values = [];
268
+ for (const [key, binding] of properties.value) {
269
+ const result = binding.source.readValue(binding.node, {
270
+ ...context,
271
+ path: context.path ? `${context.path}.${key}` : key
272
+ });
273
+ if (!result.resolved) return result;
274
+ values.push([key, result.value]);
275
+ }
276
+ return success(Object.fromEntries(values));
277
+ }
278
+ if (ts.isPropertyAccessExpression(node) || ts.isElementAccessExpression(node)) {
279
+ const property = ts.isPropertyAccessExpression(node) ? success(node.name.text) : this.readValue(node.argumentExpression, context);
280
+ if (!property.resolved) return property;
281
+ if (typeof property.value !== "string" && typeof property.value !== "number")
282
+ return this.failure(context, "member name must be a string or number");
283
+ const name = String(property.value);
284
+ if (ts.isIdentifier(node.expression) && !this.getBindings().has(node.expression.text)) {
285
+ const imported = this.getImportBinding(node.expression.text);
286
+ if (imported) {
287
+ const value = this.resolveValue(imported.from, imported.name, name);
288
+ if (value !== void 0) return success(value);
289
+ if (imported.name === "*") {
290
+ const binding2 = (_a = this.getImportedSource(imported.from)) == null ? void 0 : _a.getBindings(true).get(name);
291
+ if (binding2) return binding2.source.readValue(binding2.node, context);
191
292
  }
192
293
  }
193
- return name;
194
294
  }
195
- case ts.SyntaxKind.ArrayLiteralExpression:
196
- return node.elements.map((element) => this.parseNode(element));
197
- case ts.SyntaxKind.ObjectLiteralExpression:
198
- return node.properties.filter(
199
- (property) => ts.isPropertyAssignment(property) || ts.isShorthandPropertyAssignment(property)
200
- ).reduce(
201
- (acc, property) => {
202
- var _a2, _b, _c;
203
- if (ts.isComputedPropertyName(property.name)) {
204
- return acc;
205
- }
206
- const key = property.name.text;
207
- const initNode = ts.isShorthandPropertyAssignment(property) ? property.name : property.initializer;
208
- let value = this.parseNode(initNode);
209
- if (typeof value === "string" && ((_a2 = this.variables) == null ? void 0 : _a2.has(value))) {
210
- value = (_c = (_b = this.variables) == null ? void 0 : _b.get(value)) == null ? void 0 : _c.value;
211
- }
212
- acc[key] = value;
213
- return acc;
214
- },
215
- {}
216
- );
217
- case ts.SyntaxKind.PropertyAccessExpression: {
218
- return this.findPropertyAccessValue(node);
295
+ const resolved = this.resolveNode(node.expression, context);
296
+ if (!resolved.resolved) return resolved;
297
+ const binding = resolved.value;
298
+ if (ts.isObjectLiteralExpression(binding.node)) {
299
+ const properties = binding.source.objectProperties(binding.node, binding.context);
300
+ if (!properties.resolved) return properties;
301
+ const member = properties.value.get(name);
302
+ if (member) return member.source.readValue(member.node, binding.context);
303
+ return this.failure(context, `unknown member ${name}`);
219
304
  }
220
- default:
221
- return void 0;
305
+ const object = binding.source.readResolvedValue(binding.node, binding.context);
306
+ if (!object.resolved) return object;
307
+ if (object.value !== null && typeof object.value === "object" && Object.hasOwn(object.value, name))
308
+ return success(object.value[name]);
309
+ return this.failure(context, `unknown member ${name}`);
222
310
  }
311
+ if (ts.isEnumDeclaration(node)) {
312
+ const values = {};
313
+ let previous = -1;
314
+ for (const member of node.members) {
315
+ const result = member.initializer ? this.readValue(member.initializer, context) : typeof previous === "number" ? success(previous + 1) : this.failure(context, "enum member needs a static initializer");
316
+ if (!result.resolved) return result;
317
+ if (typeof result.value !== "string" && typeof result.value !== "number")
318
+ return this.failure(context, "enum values must be strings or numbers");
319
+ if (ts.isComputedPropertyName(member.name))
320
+ return this.failure(context, "computed enum names are not supported");
321
+ values[member.name.text] = previous = result.value;
322
+ }
323
+ return success(values);
324
+ }
325
+ return this.failure(
326
+ context,
327
+ `unsupported ${ts.SyntaxKind[node.kind]}; use literals, constants or supported enum members`
328
+ );
223
329
  }
224
330
  getInputResolver() {
225
- if (this.importResolver) {
226
- return this.importResolver;
227
- }
228
- return this.setImportResolver(new ImportResolver());
331
+ if (!this.importResolver) this.importResolver = new ImportResolver();
332
+ return this.importResolver.setBaseDir(path.dirname(this.file));
229
333
  }
230
334
  setImportResolver(resolver) {
231
335
  return this.importResolver = resolver.setBaseDir(path.dirname(this.file));
232
336
  }
233
337
  }
234
338
  export {
235
- EntryFile as default
339
+ SourceFile as default
236
340
  };
237
341
  //# sourceMappingURL=SourceFile.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/entrypoint/file/SourceFile.ts"],"sourcesContent":["import ts from \"typescript\";\nimport fs from \"fs\";\nimport path from \"path\";\n\nimport {ImportResolver} from \"./resolvers\";\n\nimport injectors from \"./injectors\";\n\nimport {EnumMap, ImportMap, Variable, VariableMap} from \"./types\";\n\nexport default class EntryFile {\n private sourceFile?: ts.SourceFile;\n\n private variables?: VariableMap;\n\n private imports?: ImportMap;\n\n private enums?: EnumMap;\n\n protected importResolver?: ImportResolver;\n\n static make<T extends EntryFile>(this: new (file: string) => T, file: string): T {\n return new this(file);\n }\n\n constructor(protected readonly file: string) {}\n\n public getSourceFile(): ts.SourceFile {\n if (this.sourceFile) {\n return this.sourceFile;\n }\n\n const sourceCode = fs.readFileSync(this.file, \"utf8\");\n\n return (this.sourceFile = ts.createSourceFile(this.file, sourceCode, ts.ScriptTarget.ESNext, true));\n }\n\n public getImports(): ImportMap {\n if (this.imports) {\n return this.imports;\n }\n\n this.imports = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isImportDeclaration(node) && node.moduleSpecifier) {\n const importPath = (node.moduleSpecifier as ts.StringLiteral).text;\n if (node.importClause) {\n // default import: import X from '...'\n if (node.importClause.name) {\n this.imports?.set(node.importClause.name.text, this.getInputResolver().get(importPath));\n }\n // named imports: import { A, B } from '...'\n if (node.importClause.namedBindings && ts.isNamedImports(node.importClause.namedBindings)) {\n node.importClause.namedBindings.elements.forEach(el => {\n this.imports?.set(el.name.text, this.getInputResolver().get(importPath));\n });\n }\n }\n }\n // import equals: import X = Y.Z\n else if (ts.isImportEqualsDeclaration(node) && ts.isExternalModuleReference(node.moduleReference)) {\n if (node.moduleReference.expression && ts.isStringLiteral(node.moduleReference.expression)) {\n const importPath = node.moduleReference.expression.text;\n this.imports?.set(node.name.text, this.getInputResolver().get(importPath));\n }\n }\n // import equals with qualified name: import X = Y.Z\n else if (ts.isImportEqualsDeclaration(node)) {\n // For qualified names like chrome.tabs.Tab, we don't need to resolve a path\n // Just store the full qualified name as the \"import path\"\n const qualifiedName = node.moduleReference.getText();\n this.imports?.set(node.name.text, qualifiedName);\n }\n\n ts.forEachChild(node, parse);\n };\n\n parse(this.getSourceFile());\n\n return this.imports;\n }\n\n public getEnums(): EnumMap {\n if (this.enums) {\n return this.enums;\n }\n\n this.enums = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isEnumDeclaration(node)) {\n const enumName = node.name.text;\n const enumProperties: Map<string, string | number> = new Map();\n\n node.members.forEach(member => {\n const key = member.name.getText();\n const value = member.initializer ? member.initializer.getText().replace(/['\"]/g, \"\") : key;\n\n enumProperties.set(key, value);\n });\n\n this.enums?.set(enumName, enumProperties);\n }\n\n ts.forEachChild(node, parse);\n };\n\n parse(this.getSourceFile());\n\n return this.enums;\n }\n\n public getVariables(): VariableMap {\n if (this.variables) {\n return this.variables;\n }\n\n this.variables = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isVariableStatement(node)) {\n const isExported = node.modifiers?.some(modifier => modifier.kind === ts.SyntaxKind.ExportKeyword);\n\n node.declarationList.declarations.forEach(declaration => {\n if (ts.isIdentifier(declaration.name) && declaration.initializer) {\n const name = declaration.name.text;\n const value = this.parseNode(declaration.initializer);\n\n this.variables?.set(name, {\n name,\n value,\n exported: isExported || false,\n });\n }\n });\n }\n\n if (ts.isExportDeclaration(node) && node.exportClause && ts.isNamedExports(node.exportClause)) {\n node.exportClause.elements.forEach(el => {\n const name = el.name.text;\n\n if (this.variables?.has(name)) {\n const variable = this.variables?.get(name) as Variable;\n\n this.variables?.set(name, {\n name,\n value: variable.value,\n exported: true,\n });\n }\n });\n }\n\n if (ts.isExportAssignment(node)) {\n const expr = node.expression;\n if (ts.isIdentifier(expr) && this.variables?.has(expr.text)) {\n const variable = this.variables?.get(expr.text) as Variable;\n const name = \"default\";\n\n this.variables?.set(name, {\n name,\n value: variable.value,\n exported: true,\n });\n }\n }\n\n ts.forEachChild(node, parse);\n };\n\n parse(this.getSourceFile());\n\n return this.variables;\n }\n\n protected resolveValue(from: string, target: string, name: string): any {\n return injectors([])(from, target, name);\n }\n\n protected findPropertyAccessValue(property: ts.Node): any {\n if (ts.isPropertyAccessExpression(property)) {\n const objectName = property.expression.getText();\n const propertyName = property.name.getText();\n\n const varItem = this.getVariables().get(objectName);\n\n if (varItem) {\n return varItem.value;\n }\n\n const enumItem = this.getEnums().get(objectName);\n\n if (enumItem) {\n return enumItem.get(propertyName);\n }\n\n const importItem = this.getImports().get(objectName);\n\n if (importItem) {\n const resolverItem = this.resolveValue(importItem, objectName, propertyName);\n\n if (resolverItem) {\n return resolverItem;\n }\n\n return EntryFile.make(importItem).findPropertyAccessValue(property);\n }\n\n return `${objectName}.${propertyName}`;\n }\n\n return undefined;\n }\n\n public parseNode(node?: ts.Node): any {\n if (!node) {\n return undefined;\n }\n\n switch (node.kind) {\n case ts.SyntaxKind.StringLiteral:\n return (node as ts.StringLiteral).text;\n case ts.SyntaxKind.TrueKeyword:\n return true;\n case ts.SyntaxKind.FalseKeyword:\n return false;\n case ts.SyntaxKind.NullKeyword:\n return null;\n case ts.SyntaxKind.NumericLiteral:\n return parseFloat((node as ts.NumericLiteral).text);\n case ts.SyntaxKind.Identifier: {\n const id = node as ts.Identifier;\n const name = id.text;\n // local variable\n const local = this.variables?.get(name);\n if (local && local.value !== undefined) {\n return local.value;\n }\n // imported constant: try to resolve its value from source file\n const importPath = this.getImports().get(name);\n if (importPath) {\n // load imported file and check its variables\n const parser = EntryFile.make(importPath);\n const imported = parser.getVariables().get(name);\n if (imported && imported.value !== undefined) {\n return imported.value;\n }\n }\n return name;\n }\n case ts.SyntaxKind.ArrayLiteralExpression:\n return (node as ts.ArrayLiteralExpression).elements.map(element => this.parseNode(element));\n case ts.SyntaxKind.ObjectLiteralExpression:\n return (node as ts.ObjectLiteralExpression).properties\n .filter(\n (property): property is ts.PropertyAssignment | ts.ShorthandPropertyAssignment =>\n ts.isPropertyAssignment(property) || ts.isShorthandPropertyAssignment(property)\n )\n .reduce(\n (acc, property) => {\n if (ts.isComputedPropertyName(property.name)) {\n return acc;\n }\n\n const key = (property.name as ts.Identifier | ts.StringLiteral).text;\n\n // Determine the initializer node: for shorthand, use the identifier itself\n const initNode = ts.isShorthandPropertyAssignment(property)\n ? (property.name as ts.Identifier)\n : (property.initializer as ts.Expression | undefined);\n\n let value = this.parseNode(initNode);\n\n // If value is still just an identifier name, resolve from collected variables\n if (typeof value === \"string\" && this.variables?.has(value)) {\n value = this.variables?.get(value)?.value;\n }\n\n acc[key] = value;\n\n return acc;\n },\n {} as Record<string, any>\n );\n case ts.SyntaxKind.PropertyAccessExpression: {\n return this.findPropertyAccessValue(node);\n }\n default:\n return undefined;\n }\n }\n\n protected getInputResolver(): ImportResolver {\n if (this.importResolver) {\n return this.importResolver;\n }\n\n return this.setImportResolver(new ImportResolver());\n }\n\n public setImportResolver(resolver: ImportResolver): ImportResolver {\n return (this.importResolver = resolver.setBaseDir(path.dirname(this.file)));\n }\n}\n"],"mappings":"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","names":["_a","_b","_c"]}
1
+ {"version":3,"sources":["../../../../src/cli/entrypoint/file/SourceFile.ts"],"sourcesContent":["import ts from \"typescript\";\nimport fs from \"fs\";\nimport path from \"path\";\n\nimport {ImportResolver} from \"./resolvers\";\nimport injectors from \"./injectors\";\nimport type {\n ImportMap,\n VariableMap,\n SourceValue,\n SourceReadResult,\n SourceBinding,\n SourceReadContext,\n SourceResolvedBinding,\n} from \"./types\";\n\nexport default class SourceFile {\n private sourceFile?: ts.SourceFile;\n private variables?: VariableMap;\n private imports?: ImportMap;\n private sources = new Map<string, SourceFile>();\n protected importResolver?: ImportResolver;\n\n static make<T extends SourceFile>(this: new (file: string) => T, file: string): T {\n return new this(file);\n }\n\n constructor(protected readonly file: string) {}\n\n public getSourceFile(): ts.SourceFile {\n if (!this.sourceFile) {\n const sourceCode = fs.readFileSync(this.file, \"utf8\");\n this.sourceFile = ts.createSourceFile(this.file, sourceCode, ts.ScriptTarget.ESNext, true);\n }\n return this.sourceFile;\n }\n\n public getImports(): ImportMap {\n if (this.imports) {\n return this.imports;\n }\n\n this.imports = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isImportDeclaration(node) && node.moduleSpecifier) {\n const importPath = (node.moduleSpecifier as ts.StringLiteral).text;\n if (node.importClause) {\n // default import: import X from '...'\n if (node.importClause.name) {\n this.imports?.set(node.importClause.name.text, this.getInputResolver().get(importPath));\n }\n // named imports: import { A, B } from '...'\n if (node.importClause.namedBindings && ts.isNamedImports(node.importClause.namedBindings)) {\n node.importClause.namedBindings.elements.forEach(el => {\n this.imports?.set(el.name.text, this.getInputResolver().get(importPath));\n });\n }\n if (node.importClause.namedBindings && ts.isNamespaceImport(node.importClause.namedBindings)) {\n this.imports?.set(\n node.importClause.namedBindings.name.text,\n this.getInputResolver().get(importPath)\n );\n }\n }\n }\n // import equals: import X = Y.Z\n else if (ts.isImportEqualsDeclaration(node) && ts.isExternalModuleReference(node.moduleReference)) {\n if (node.moduleReference.expression && ts.isStringLiteral(node.moduleReference.expression)) {\n const importPath = node.moduleReference.expression.text;\n this.imports?.set(node.name.text, this.getInputResolver().get(importPath));\n }\n }\n // import equals with qualified name: import X = Y.Z\n else if (ts.isImportEqualsDeclaration(node)) {\n // For qualified names like chrome.tabs.Tab, we don't need to resolve a path\n // Just store the full qualified name as the \"import path\"\n const qualifiedName = node.moduleReference.getText();\n this.imports?.set(node.name.text, qualifiedName);\n }\n\n ts.forEachChild(node, parse);\n };\n\n parse(this.getSourceFile());\n\n return this.imports;\n }\n\n /** Collect declarations without evaluating runtime functions or unrelated initializers. */\n protected getBindings(exportedOnly = false): Map<string, SourceBinding> {\n const bindings = new Map<string, SourceBinding>();\n const bind = (name: string, node: ts.Node) => bindings.set(name, {source: this, node});\n for (const statement of this.getSourceFile().statements) {\n const exported =\n ts.canHaveModifiers(statement) &&\n ts.getModifiers(statement)?.some(item => item.kind === ts.SyntaxKind.ExportKeyword);\n if (ts.isVariableStatement(statement) && (!exportedOnly || exported)) {\n for (const declaration of statement.declarationList.declarations) {\n if (ts.isIdentifier(declaration.name)) bind(declaration.name.text, declaration);\n else {\n const collect = (node: ts.Node) => {\n if (ts.isBindingElement(node) && ts.isIdentifier(node.name)) bind(node.name.text, node);\n else ts.forEachChild(node, collect);\n };\n collect(declaration.name);\n }\n }\n } else if (\n (ts.isEnumDeclaration(statement) ||\n ts.isFunctionDeclaration(statement) ||\n ts.isClassDeclaration(statement)) &&\n (!exportedOnly || exported) &&\n statement.name\n ) {\n const isDefault = ts.getModifiers(statement)?.some(item => item.kind === ts.SyntaxKind.DefaultKeyword);\n bind(exportedOnly && isDefault ? \"default\" : statement.name.text, statement);\n }\n if (exportedOnly && ts.isExportAssignment(statement) && !statement.isExportEquals) {\n bind(\"default\", statement.expression);\n }\n if (\n exportedOnly &&\n ts.isExportDeclaration(statement) &&\n !statement.isTypeOnly &&\n statement.exportClause &&\n ts.isNamedExports(statement.exportClause)\n ) {\n for (const item of statement.exportClause.elements) {\n if (!item.isTypeOnly)\n bind(item.name.text, statement.moduleSpecifier ? item : (item.propertyName ?? item.name));\n }\n }\n }\n return bindings;\n }\n\n public getVariables(): VariableMap {\n if (this.variables) return this.variables;\n const locals = this.getBindings();\n const exported = this.getBindings(true);\n this.variables = new Map();\n for (const [name, binding] of new Map([...locals, ...exported])) {\n const result = this.parseNode(binding.node, name);\n // Signature inference can use known values without requiring executable code to be static.\n this.variables.set(name, {\n name,\n value: result.resolved ? result.value : undefined,\n exported: exported.has(name),\n });\n }\n return this.variables;\n }\n\n protected resolveValue(from: string, target: string, name: string): any {\n return injectors([])(from, target, name);\n }\n\n private getImportBinding(name: string): {from: string; name: string} | undefined {\n for (const statement of this.getSourceFile().statements) {\n if (!ts.isImportDeclaration(statement) || !ts.isStringLiteral(statement.moduleSpecifier)) continue;\n const clause = statement.importClause;\n const from = statement.moduleSpecifier.text;\n if (clause?.name?.text === name) return {from, name: \"default\"};\n if (clause?.namedBindings && ts.isNamedImports(clause.namedBindings)) {\n const item = clause.namedBindings.elements.find(item => item.name.text === name);\n if (item) return {from, name: (item.propertyName ?? item.name).text};\n }\n if (\n clause?.namedBindings &&\n ts.isNamespaceImport(clause.namedBindings) &&\n clause.namedBindings.name.text === name\n )\n return {from, name: \"*\"};\n }\n }\n\n private getImportedSource(from: string): SourceFile | undefined {\n const filename = this.getInputResolver().get(from);\n if (!filename || !path.isAbsolute(filename) || !/\\.[cm]?[jt]sx?$/.test(filename) || !fs.existsSync(filename))\n return;\n let source = this.sources.get(filename);\n if (!source) {\n source = new SourceFile(filename);\n source.setImportResolver(this.getInputResolver());\n source.sources = this.sources;\n this.sources.set(filename, source);\n }\n return source;\n }\n\n private failure(context: SourceReadContext, reason: string): SourceReadResult<never> {\n return {resolved: false, file: this.file, path: context.path, reason};\n }\n\n /** Follow static bindings, retaining their source module and detecting reference cycles. */\n private resolveNode(\n node: ts.Node | undefined,\n context: SourceReadContext\n ): SourceReadResult<SourceResolvedBinding> {\n if (!node) return this.failure(context, \"missing initializer\");\n const key = `${this.file}:${node.pos}:${node.end}`;\n if (context.seen.has(key)) return this.failure(context, \"circular reference\");\n context = {...context, seen: new Set([...context.seen, key])};\n if (\n ts.isAsExpression(node) ||\n ts.isTypeAssertionExpression(node) ||\n ts.isSatisfiesExpression(node) ||\n ts.isParenthesizedExpression(node) ||\n ts.isNonNullExpression(node)\n ) {\n return this.resolveNode(node.expression, context);\n }\n if (ts.isVariableDeclaration(node)) {\n if (!ts.isVariableDeclarationList(node.parent) || !(node.parent.flags & ts.NodeFlags.Const))\n return this.failure(context, \"use a const declaration for build options\");\n return this.resolveNode(node.initializer, context);\n }\n if (ts.isExportSpecifier(node) && ts.isExportDeclaration(node.parent.parent)) {\n const from = node.parent.parent.moduleSpecifier;\n const name = (node.propertyName ?? node.name).text;\n const binding =\n from && ts.isStringLiteral(from)\n ? this.getImportedSource(from.text)?.getBindings(true).get(name)\n : undefined;\n if (binding) return binding.source.resolveNode(binding.node, context);\n return this.failure(context, `cannot resolve re-exported value ${name}`);\n }\n if (ts.isIdentifier(node)) {\n const local = this.getBindings().get(node.text);\n if (local) return local.source.resolveNode(local.node, context);\n const imported = this.getImportBinding(node.text);\n if (imported) {\n const source = this.getImportedSource(imported.from);\n const binding = source?.getBindings(true).get(imported.name);\n if (binding) return binding.source.resolveNode(binding.node, context);\n return this.failure(context, `cannot resolve imported value ${node.text}`);\n }\n if (node.text !== \"undefined\") return this.failure(context, `unresolved identifier ${node.text}`);\n }\n return {resolved: true, value: {source: this, node, context}};\n }\n\n public parseNode(node?: ts.Node, property = \"\"): SourceReadResult {\n return this.readValue(node, {path: property, seen: new Set()});\n }\n\n /** Read an object's shape first so callers can select build fields before evaluating values. */\n protected getProperties(node: ts.Node, property = \"\"): SourceReadResult<Map<string, SourceBinding>> {\n return this.readProperties(node, {path: property, seen: new Set()});\n }\n\n private readProperties(node: ts.Node, context: SourceReadContext): SourceReadResult<Map<string, SourceBinding>> {\n const result = this.resolveNode(node, context);\n if (!result.resolved) return result;\n const binding = result.value;\n if (!ts.isObjectLiteralExpression(binding.node))\n return binding.source.failure(binding.context, \"expected a static object\");\n return binding.source.objectProperties(binding.node, binding.context);\n }\n\n private objectProperties(\n node: ts.ObjectLiteralExpression,\n context: SourceReadContext\n ): SourceReadResult<Map<string, SourceBinding>> {\n const properties = new Map<string, SourceBinding>();\n for (const property of node.properties) {\n if (ts.isSpreadAssignment(property)) {\n const spread = this.readProperties(property.expression, context);\n if (!spread.resolved) return spread;\n for (const [key, binding] of spread.value) properties.set(key, binding);\n continue;\n }\n let key: string;\n if (ts.isComputedPropertyName(property.name)) {\n const result = this.readValue(property.name.expression, context);\n if (!result.resolved) return result;\n if (typeof result.value !== \"string\" && typeof result.value !== \"number\")\n return this.failure(context, \"object keys must be strings or numbers\");\n key = String(result.value);\n } else {\n key = property.name.text;\n }\n properties.set(key, {\n source: this,\n node: ts.isPropertyAssignment(property)\n ? property.initializer\n : ts.isShorthandPropertyAssignment(property)\n ? property.name\n : property,\n });\n }\n return {resolved: true, value: properties};\n }\n\n private readValue(node: ts.Node | undefined, context: SourceReadContext): SourceReadResult {\n const resolved = this.resolveNode(node, context);\n if (!resolved.resolved) return resolved;\n const binding = resolved.value;\n return binding.source.readResolvedValue(binding.node, binding.context);\n }\n\n private readResolvedValue(node: ts.Node, context: SourceReadContext): SourceReadResult {\n const success = (value: SourceValue): SourceReadResult => ({resolved: true, value});\n if (ts.isStringLiteral(node) || ts.isNoSubstitutionTemplateLiteral(node)) return success(node.text);\n if (ts.isNumericLiteral(node)) return success(Number(node.text));\n if (node.kind === ts.SyntaxKind.TrueKeyword) return success(true);\n if (node.kind === ts.SyntaxKind.FalseKeyword) return success(false);\n if (node.kind === ts.SyntaxKind.NullKeyword) return success(null);\n if (ts.isIdentifier(node) && node.text === \"undefined\") return success(undefined);\n if (ts.isPrefixUnaryExpression(node)) {\n const operand = this.readValue(node.operand, context);\n if (!operand.resolved) return operand;\n if (\n typeof operand.value === \"number\" &&\n (node.operator === ts.SyntaxKind.MinusToken || node.operator === ts.SyntaxKind.PlusToken)\n )\n return success(node.operator === ts.SyntaxKind.MinusToken ? -operand.value : operand.value);\n return this.failure(context, \"unsupported unary expression\");\n }\n if (ts.isArrayLiteralExpression(node)) {\n const values: SourceValue[] = [];\n for (const [index, element] of node.elements.entries()) {\n const result = this.readValue(ts.isSpreadElement(element) ? element.expression : element, {\n ...context,\n path: `${context.path}[${index}]`,\n });\n if (!result.resolved) return result;\n if (ts.isSpreadElement(element)) {\n if (!Array.isArray(result.value))\n return this.failure(context, \"array spread must reference a static array\");\n values.push(...result.value);\n } else values.push(result.value);\n }\n return success(values);\n }\n if (ts.isObjectLiteralExpression(node)) {\n const properties = this.objectProperties(node, context);\n if (!properties.resolved) return properties;\n const values: [string, SourceValue][] = [];\n for (const [key, binding] of properties.value) {\n const result = binding.source.readValue(binding.node, {\n ...context,\n path: context.path ? `${context.path}.${key}` : key,\n });\n if (!result.resolved) return result;\n values.push([key, result.value]);\n }\n return success(Object.fromEntries(values));\n }\n if (ts.isPropertyAccessExpression(node) || ts.isElementAccessExpression(node)) {\n const property = ts.isPropertyAccessExpression(node)\n ? success(node.name.text)\n : this.readValue(node.argumentExpression, context);\n if (!property.resolved) return property;\n if (typeof property.value !== \"string\" && typeof property.value !== \"number\")\n return this.failure(context, \"member name must be a string or number\");\n const name = String(property.value);\n if (ts.isIdentifier(node.expression) && !this.getBindings().has(node.expression.text)) {\n const imported = this.getImportBinding(node.expression.text);\n if (imported) {\n const value = this.resolveValue(imported.from, imported.name, name);\n if (value !== undefined) return success(value);\n if (imported.name === \"*\") {\n const binding = this.getImportedSource(imported.from)?.getBindings(true).get(name);\n if (binding) return binding.source.readValue(binding.node, context);\n }\n }\n }\n const resolved = this.resolveNode(node.expression, context);\n if (!resolved.resolved) return resolved;\n const binding = resolved.value;\n if (ts.isObjectLiteralExpression(binding.node)) {\n const properties = binding.source.objectProperties(binding.node, binding.context);\n if (!properties.resolved) return properties;\n const member = properties.value.get(name);\n if (member) return member.source.readValue(member.node, binding.context);\n return this.failure(context, `unknown member ${name}`);\n }\n const object = binding.source.readResolvedValue(binding.node, binding.context);\n if (!object.resolved) return object;\n if (object.value !== null && typeof object.value === \"object\" && Object.hasOwn(object.value, name))\n return success((object.value as Record<string, SourceValue>)[name]);\n return this.failure(context, `unknown member ${name}`);\n }\n if (ts.isEnumDeclaration(node)) {\n const values: Record<string, SourceValue> = {};\n let previous: SourceValue = -1;\n for (const member of node.members) {\n const result = member.initializer\n ? this.readValue(member.initializer, context)\n : typeof previous === \"number\"\n ? success(previous + 1)\n : this.failure(context, \"enum member needs a static initializer\");\n if (!result.resolved) return result;\n if (typeof result.value !== \"string\" && typeof result.value !== \"number\")\n return this.failure(context, \"enum values must be strings or numbers\");\n if (ts.isComputedPropertyName(member.name))\n return this.failure(context, \"computed enum names are not supported\");\n values[member.name.text] = previous = result.value;\n }\n return success(values);\n }\n return this.failure(\n context,\n `unsupported ${ts.SyntaxKind[node.kind]}; use literals, constants or supported enum members`\n );\n }\n\n protected getInputResolver(): ImportResolver {\n if (!this.importResolver) this.importResolver = new ImportResolver();\n return this.importResolver.setBaseDir(path.dirname(this.file));\n }\n\n public setImportResolver(resolver: ImportResolver): ImportResolver {\n return (this.importResolver = resolver.setBaseDir(path.dirname(this.file)));\n }\n}\n"],"mappings":"AAAA,OAAO,QAAQ;AACf,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,SAAQ,sBAAqB;AAC7B,OAAO,eAAe;AAWtB,MAAO,WAAyB;AAAA,EAW5B,YAA+B,MAAc;AAAd;AAAA,EAAe;AAAA,EAAf;AAAA,EAVvB;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU,oBAAI,IAAwB;AAAA,EACpC;AAAA,EAEV,OAAO,KAA0D,MAAiB;AAC9E,WAAO,IAAI,KAAK,IAAI;AAAA,EACxB;AAAA,EAIO,gBAA+B;AAClC,QAAI,CAAC,KAAK,YAAY;AAClB,YAAM,aAAa,GAAG,aAAa,KAAK,MAAM,MAAM;AACpD,WAAK,aAAa,GAAG,iBAAiB,KAAK,MAAM,YAAY,GAAG,aAAa,QAAQ,IAAI;AAAA,IAC7F;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,aAAwB;AAC3B,QAAI,KAAK,SAAS;AACd,aAAO,KAAK;AAAA,IAChB;AAEA,SAAK,UAAU,oBAAI,IAAI;AAEvB,UAAM,QAAQ,CAAC,SAAkB;AA5CzC;AA6CY,UAAI,GAAG,oBAAoB,IAAI,KAAK,KAAK,iBAAiB;AACtD,cAAM,aAAc,KAAK,gBAAqC;AAC9D,YAAI,KAAK,cAAc;AAEnB,cAAI,KAAK,aAAa,MAAM;AACxB,uBAAK,YAAL,mBAAc,IAAI,KAAK,aAAa,KAAK,MAAM,KAAK,iBAAiB,EAAE,IAAI,UAAU;AAAA,UACzF;AAEA,cAAI,KAAK,aAAa,iBAAiB,GAAG,eAAe,KAAK,aAAa,aAAa,GAAG;AACvF,iBAAK,aAAa,cAAc,SAAS,QAAQ,QAAM;AAtD/E,kBAAAA;AAuD4B,eAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,IAAI,GAAG,KAAK,MAAM,KAAK,iBAAiB,EAAE,IAAI,UAAU;AAAA,YAC1E,CAAC;AAAA,UACL;AACA,cAAI,KAAK,aAAa,iBAAiB,GAAG,kBAAkB,KAAK,aAAa,aAAa,GAAG;AAC1F,uBAAK,YAAL,mBAAc;AAAA,cACV,KAAK,aAAa,cAAc,KAAK;AAAA,cACrC,KAAK,iBAAiB,EAAE,IAAI,UAAU;AAAA;AAAA,UAE9C;AAAA,QACJ;AAAA,MACJ,WAES,GAAG,0BAA0B,IAAI,KAAK,GAAG,0BAA0B,KAAK,eAAe,GAAG;AAC/F,YAAI,KAAK,gBAAgB,cAAc,GAAG,gBAAgB,KAAK,gBAAgB,UAAU,GAAG;AACxF,gBAAM,aAAa,KAAK,gBAAgB,WAAW;AACnD,qBAAK,YAAL,mBAAc,IAAI,KAAK,KAAK,MAAM,KAAK,iBAAiB,EAAE,IAAI,UAAU;AAAA,QAC5E;AAAA,MACJ,WAES,GAAG,0BAA0B,IAAI,GAAG;AAGzC,cAAM,gBAAgB,KAAK,gBAAgB,QAAQ;AACnD,mBAAK,YAAL,mBAAc,IAAI,KAAK,KAAK,MAAM;AAAA,MACtC;AAEA,SAAG,aAAa,MAAM,KAAK;AAAA,IAC/B;AAEA,UAAM,KAAK,cAAc,CAAC;AAE1B,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGU,YAAY,eAAe,OAAmC;AA1F5E;AA2FQ,UAAM,WAAW,oBAAI,IAA2B;AAChD,UAAM,OAAO,CAAC,MAAc,SAAkB,SAAS,IAAI,MAAM,EAAC,QAAQ,MAAM,KAAI,CAAC;AACrF,eAAW,aAAa,KAAK,cAAc,EAAE,YAAY;AACrD,YAAM,WACF,GAAG,iBAAiB,SAAS,OAC7B,QAAG,aAAa,SAAS,MAAzB,mBAA4B,KAAK,UAAQ,KAAK,SAAS,GAAG,WAAW;AACzE,UAAI,GAAG,oBAAoB,SAAS,MAAM,CAAC,gBAAgB,WAAW;AAClE,mBAAW,eAAe,UAAU,gBAAgB,cAAc;AAC9D,cAAI,GAAG,aAAa,YAAY,IAAI,EAAG,MAAK,YAAY,KAAK,MAAM,WAAW;AAAA,eACzE;AACD,kBAAM,UAAU,CAAC,SAAkB;AAC/B,kBAAI,GAAG,iBAAiB,IAAI,KAAK,GAAG,aAAa,KAAK,IAAI,EAAG,MAAK,KAAK,KAAK,MAAM,IAAI;AAAA,kBACjF,IAAG,aAAa,MAAM,OAAO;AAAA,YACtC;AACA,oBAAQ,YAAY,IAAI;AAAA,UAC5B;AAAA,QACJ;AAAA,MACJ,YACK,GAAG,kBAAkB,SAAS,KAC3B,GAAG,sBAAsB,SAAS,KAClC,GAAG,mBAAmB,SAAS,OAClC,CAAC,gBAAgB,aAClB,UAAU,MACZ;AACE,cAAM,aAAY,QAAG,aAAa,SAAS,MAAzB,mBAA4B,KAAK,UAAQ,KAAK,SAAS,GAAG,WAAW;AACvF,aAAK,gBAAgB,YAAY,YAAY,UAAU,KAAK,MAAM,SAAS;AAAA,MAC/E;AACA,UAAI,gBAAgB,GAAG,mBAAmB,SAAS,KAAK,CAAC,UAAU,gBAAgB;AAC/E,aAAK,WAAW,UAAU,UAAU;AAAA,MACxC;AACA,UACI,gBACA,GAAG,oBAAoB,SAAS,KAChC,CAAC,UAAU,cACX,UAAU,gBACV,GAAG,eAAe,UAAU,YAAY,GAC1C;AACE,mBAAW,QAAQ,UAAU,aAAa,UAAU;AAChD,cAAI,CAAC,KAAK;AACN,iBAAK,KAAK,KAAK,MAAM,UAAU,kBAAkB,OAAQ,KAAK,gBAAgB,KAAK,IAAK;AAAA,QAChG;AAAA,MACJ;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEO,eAA4B;AAC/B,QAAI,KAAK,UAAW,QAAO,KAAK;AAChC,UAAM,SAAS,KAAK,YAAY;AAChC,UAAM,WAAW,KAAK,YAAY,IAAI;AACtC,SAAK,YAAY,oBAAI,IAAI;AACzB,eAAW,CAAC,MAAM,OAAO,KAAK,IAAI,IAAI,CAAC,GAAG,QAAQ,GAAG,QAAQ,CAAC,GAAG;AAC7D,YAAM,SAAS,KAAK,UAAU,QAAQ,MAAM,IAAI;AAEhD,WAAK,UAAU,IAAI,MAAM;AAAA,QACrB;AAAA,QACA,OAAO,OAAO,WAAW,OAAO,QAAQ;AAAA,QACxC,UAAU,SAAS,IAAI,IAAI;AAAA,MAC/B,CAAC;AAAA,IACL;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEU,aAAa,MAAc,QAAgB,MAAmB;AACpE,WAAO,UAAU,CAAC,CAAC,EAAE,MAAM,QAAQ,IAAI;AAAA,EAC3C;AAAA,EAEQ,iBAAiB,MAAwD;AA9JrF;AA+JQ,eAAW,aAAa,KAAK,cAAc,EAAE,YAAY;AACrD,UAAI,CAAC,GAAG,oBAAoB,SAAS,KAAK,CAAC,GAAG,gBAAgB,UAAU,eAAe,EAAG;AAC1F,YAAM,SAAS,UAAU;AACzB,YAAM,OAAO,UAAU,gBAAgB;AACvC,YAAI,sCAAQ,SAAR,mBAAc,UAAS,KAAM,QAAO,EAAC,MAAM,MAAM,UAAS;AAC9D,WAAI,iCAAQ,kBAAiB,GAAG,eAAe,OAAO,aAAa,GAAG;AAClE,cAAM,OAAO,OAAO,cAAc,SAAS,KAAK,CAAAC,UAAQA,MAAK,KAAK,SAAS,IAAI;AAC/E,YAAI,KAAM,QAAO,EAAC,MAAM,OAAO,KAAK,gBAAgB,KAAK,MAAM,KAAI;AAAA,MACvE;AACA,WACI,iCAAQ,kBACR,GAAG,kBAAkB,OAAO,aAAa,KACzC,OAAO,cAAc,KAAK,SAAS;AAEnC,eAAO,EAAC,MAAM,MAAM,IAAG;AAAA,IAC/B;AAAA,EACJ;AAAA,EAEQ,kBAAkB,MAAsC;AAC5D,UAAM,WAAW,KAAK,iBAAiB,EAAE,IAAI,IAAI;AACjD,QAAI,CAAC,YAAY,CAAC,KAAK,WAAW,QAAQ,KAAK,CAAC,kBAAkB,KAAK,QAAQ,KAAK,CAAC,GAAG,WAAW,QAAQ;AACvG;AACJ,QAAI,SAAS,KAAK,QAAQ,IAAI,QAAQ;AACtC,QAAI,CAAC,QAAQ;AACT,eAAS,IAAI,WAAW,QAAQ;AAChC,aAAO,kBAAkB,KAAK,iBAAiB,CAAC;AAChD,aAAO,UAAU,KAAK;AACtB,WAAK,QAAQ,IAAI,UAAU,MAAM;AAAA,IACrC;AACA,WAAO;AAAA,EACX;AAAA,EAEQ,QAAQ,SAA4B,QAAyC;AACjF,WAAO,EAAC,UAAU,OAAO,MAAM,KAAK,MAAM,MAAM,QAAQ,MAAM,OAAM;AAAA,EACxE;AAAA;AAAA,EAGQ,YACJ,MACA,SACuC;AAvM/C;AAwMQ,QAAI,CAAC,KAAM,QAAO,KAAK,QAAQ,SAAS,qBAAqB;AAC7D,UAAM,MAAM,GAAG,KAAK,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,GAAG;AAChD,QAAI,QAAQ,KAAK,IAAI,GAAG,EAAG,QAAO,KAAK,QAAQ,SAAS,oBAAoB;AAC5E,cAAU,EAAC,GAAG,SAAS,MAAM,oBAAI,IAAI,CAAC,GAAG,QAAQ,MAAM,GAAG,CAAC,EAAC;AAC5D,QACI,GAAG,eAAe,IAAI,KACtB,GAAG,0BAA0B,IAAI,KACjC,GAAG,sBAAsB,IAAI,KAC7B,GAAG,0BAA0B,IAAI,KACjC,GAAG,oBAAoB,IAAI,GAC7B;AACE,aAAO,KAAK,YAAY,KAAK,YAAY,OAAO;AAAA,IACpD;AACA,QAAI,GAAG,sBAAsB,IAAI,GAAG;AAChC,UAAI,CAAC,GAAG,0BAA0B,KAAK,MAAM,KAAK,EAAE,KAAK,OAAO,QAAQ,GAAG,UAAU;AACjF,eAAO,KAAK,QAAQ,SAAS,2CAA2C;AAC5E,aAAO,KAAK,YAAY,KAAK,aAAa,OAAO;AAAA,IACrD;AACA,QAAI,GAAG,kBAAkB,IAAI,KAAK,GAAG,oBAAoB,KAAK,OAAO,MAAM,GAAG;AAC1E,YAAM,OAAO,KAAK,OAAO,OAAO;AAChC,YAAM,QAAQ,KAAK,gBAAgB,KAAK,MAAM;AAC9C,YAAM,UACF,QAAQ,GAAG,gBAAgB,IAAI,KACzB,UAAK,kBAAkB,KAAK,IAAI,MAAhC,mBAAmC,YAAY,MAAM,IAAI,QACzD;AACV,UAAI,QAAS,QAAO,QAAQ,OAAO,YAAY,QAAQ,MAAM,OAAO;AACpE,aAAO,KAAK,QAAQ,SAAS,oCAAoC,IAAI,EAAE;AAAA,IAC3E;AACA,QAAI,GAAG,aAAa,IAAI,GAAG;AACvB,YAAM,QAAQ,KAAK,YAAY,EAAE,IAAI,KAAK,IAAI;AAC9C,UAAI,MAAO,QAAO,MAAM,OAAO,YAAY,MAAM,MAAM,OAAO;AAC9D,YAAM,WAAW,KAAK,iBAAiB,KAAK,IAAI;AAChD,UAAI,UAAU;AACV,cAAM,SAAS,KAAK,kBAAkB,SAAS,IAAI;AACnD,cAAM,UAAU,iCAAQ,YAAY,MAAM,IAAI,SAAS;AACvD,YAAI,QAAS,QAAO,QAAQ,OAAO,YAAY,QAAQ,MAAM,OAAO;AACpE,eAAO,KAAK,QAAQ,SAAS,iCAAiC,KAAK,IAAI,EAAE;AAAA,MAC7E;AACA,UAAI,KAAK,SAAS,YAAa,QAAO,KAAK,QAAQ,SAAS,yBAAyB,KAAK,IAAI,EAAE;AAAA,IACpG;AACA,WAAO,EAAC,UAAU,MAAM,OAAO,EAAC,QAAQ,MAAM,MAAM,QAAO,EAAC;AAAA,EAChE;AAAA,EAEO,UAAU,MAAgB,WAAW,IAAsB;AAC9D,WAAO,KAAK,UAAU,MAAM,EAAC,MAAM,UAAU,MAAM,oBAAI,IAAI,EAAC,CAAC;AAAA,EACjE;AAAA;AAAA,EAGU,cAAc,MAAe,WAAW,IAAkD;AAChG,WAAO,KAAK,eAAe,MAAM,EAAC,MAAM,UAAU,MAAM,oBAAI,IAAI,EAAC,CAAC;AAAA,EACtE;AAAA,EAEQ,eAAe,MAAe,SAA0E;AAC5G,UAAM,SAAS,KAAK,YAAY,MAAM,OAAO;AAC7C,QAAI,CAAC,OAAO,SAAU,QAAO;AAC7B,UAAM,UAAU,OAAO;AACvB,QAAI,CAAC,GAAG,0BAA0B,QAAQ,IAAI;AAC1C,aAAO,QAAQ,OAAO,QAAQ,QAAQ,SAAS,0BAA0B;AAC7E,WAAO,QAAQ,OAAO,iBAAiB,QAAQ,MAAM,QAAQ,OAAO;AAAA,EACxE;AAAA,EAEQ,iBACJ,MACA,SAC4C;AAC5C,UAAM,aAAa,oBAAI,IAA2B;AAClD,eAAW,YAAY,KAAK,YAAY;AACpC,UAAI,GAAG,mBAAmB,QAAQ,GAAG;AACjC,cAAM,SAAS,KAAK,eAAe,SAAS,YAAY,OAAO;AAC/D,YAAI,CAAC,OAAO,SAAU,QAAO;AAC7B,mBAAW,CAACC,MAAK,OAAO,KAAK,OAAO,MAAO,YAAW,IAAIA,MAAK,OAAO;AACtE;AAAA,MACJ;AACA,UAAI;AACJ,UAAI,GAAG,uBAAuB,SAAS,IAAI,GAAG;AAC1C,cAAM,SAAS,KAAK,UAAU,SAAS,KAAK,YAAY,OAAO;AAC/D,YAAI,CAAC,OAAO,SAAU,QAAO;AAC7B,YAAI,OAAO,OAAO,UAAU,YAAY,OAAO,OAAO,UAAU;AAC5D,iBAAO,KAAK,QAAQ,SAAS,wCAAwC;AACzE,cAAM,OAAO,OAAO,KAAK;AAAA,MAC7B,OAAO;AACH,cAAM,SAAS,KAAK;AAAA,MACxB;AACA,iBAAW,IAAI,KAAK;AAAA,QAChB,QAAQ;AAAA,QACR,MAAM,GAAG,qBAAqB,QAAQ,IAChC,SAAS,cACT,GAAG,8BAA8B,QAAQ,IACvC,SAAS,OACT;AAAA,MACZ,CAAC;AAAA,IACL;AACA,WAAO,EAAC,UAAU,MAAM,OAAO,WAAU;AAAA,EAC7C;AAAA,EAEQ,UAAU,MAA2B,SAA8C;AACvF,UAAM,WAAW,KAAK,YAAY,MAAM,OAAO;AAC/C,QAAI,CAAC,SAAS,SAAU,QAAO;AAC/B,UAAM,UAAU,SAAS;AACzB,WAAO,QAAQ,OAAO,kBAAkB,QAAQ,MAAM,QAAQ,OAAO;AAAA,EACzE;AAAA,EAEQ,kBAAkB,MAAe,SAA8C;AA9S3F;AA+SQ,UAAM,UAAU,CAAC,WAA0C,EAAC,UAAU,MAAM,MAAK;AACjF,QAAI,GAAG,gBAAgB,IAAI,KAAK,GAAG,gCAAgC,IAAI,EAAG,QAAO,QAAQ,KAAK,IAAI;AAClG,QAAI,GAAG,iBAAiB,IAAI,EAAG,QAAO,QAAQ,OAAO,KAAK,IAAI,CAAC;AAC/D,QAAI,KAAK,SAAS,GAAG,WAAW,YAAa,QAAO,QAAQ,IAAI;AAChE,QAAI,KAAK,SAAS,GAAG,WAAW,aAAc,QAAO,QAAQ,KAAK;AAClE,QAAI,KAAK,SAAS,GAAG,WAAW,YAAa,QAAO,QAAQ,IAAI;AAChE,QAAI,GAAG,aAAa,IAAI,KAAK,KAAK,SAAS,YAAa,QAAO,QAAQ,MAAS;AAChF,QAAI,GAAG,wBAAwB,IAAI,GAAG;AAClC,YAAM,UAAU,KAAK,UAAU,KAAK,SAAS,OAAO;AACpD,UAAI,CAAC,QAAQ,SAAU,QAAO;AAC9B,UACI,OAAO,QAAQ,UAAU,aACxB,KAAK,aAAa,GAAG,WAAW,cAAc,KAAK,aAAa,GAAG,WAAW;AAE/E,eAAO,QAAQ,KAAK,aAAa,GAAG,WAAW,aAAa,CAAC,QAAQ,QAAQ,QAAQ,KAAK;AAC9F,aAAO,KAAK,QAAQ,SAAS,8BAA8B;AAAA,IAC/D;AACA,QAAI,GAAG,yBAAyB,IAAI,GAAG;AACnC,YAAM,SAAwB,CAAC;AAC/B,iBAAW,CAAC,OAAO,OAAO,KAAK,KAAK,SAAS,QAAQ,GAAG;AACpD,cAAM,SAAS,KAAK,UAAU,GAAG,gBAAgB,OAAO,IAAI,QAAQ,aAAa,SAAS;AAAA,UACtF,GAAG;AAAA,UACH,MAAM,GAAG,QAAQ,IAAI,IAAI,KAAK;AAAA,QAClC,CAAC;AACD,YAAI,CAAC,OAAO,SAAU,QAAO;AAC7B,YAAI,GAAG,gBAAgB,OAAO,GAAG;AAC7B,cAAI,CAAC,MAAM,QAAQ,OAAO,KAAK;AAC3B,mBAAO,KAAK,QAAQ,SAAS,4CAA4C;AAC7E,iBAAO,KAAK,GAAG,OAAO,KAAK;AAAA,QAC/B,MAAO,QAAO,KAAK,OAAO,KAAK;AAAA,MACnC;AACA,aAAO,QAAQ,MAAM;AAAA,IACzB;AACA,QAAI,GAAG,0BAA0B,IAAI,GAAG;AACpC,YAAM,aAAa,KAAK,iBAAiB,MAAM,OAAO;AACtD,UAAI,CAAC,WAAW,SAAU,QAAO;AACjC,YAAM,SAAkC,CAAC;AACzC,iBAAW,CAAC,KAAK,OAAO,KAAK,WAAW,OAAO;AAC3C,cAAM,SAAS,QAAQ,OAAO,UAAU,QAAQ,MAAM;AAAA,UAClD,GAAG;AAAA,UACH,MAAM,QAAQ,OAAO,GAAG,QAAQ,IAAI,IAAI,GAAG,KAAK;AAAA,QACpD,CAAC;AACD,YAAI,CAAC,OAAO,SAAU,QAAO;AAC7B,eAAO,KAAK,CAAC,KAAK,OAAO,KAAK,CAAC;AAAA,MACnC;AACA,aAAO,QAAQ,OAAO,YAAY,MAAM,CAAC;AAAA,IAC7C;AACA,QAAI,GAAG,2BAA2B,IAAI,KAAK,GAAG,0BAA0B,IAAI,GAAG;AAC3E,YAAM,WAAW,GAAG,2BAA2B,IAAI,IAC7C,QAAQ,KAAK,KAAK,IAAI,IACtB,KAAK,UAAU,KAAK,oBAAoB,OAAO;AACrD,UAAI,CAAC,SAAS,SAAU,QAAO;AAC/B,UAAI,OAAO,SAAS,UAAU,YAAY,OAAO,SAAS,UAAU;AAChE,eAAO,KAAK,QAAQ,SAAS,wCAAwC;AACzE,YAAM,OAAO,OAAO,SAAS,KAAK;AAClC,UAAI,GAAG,aAAa,KAAK,UAAU,KAAK,CAAC,KAAK,YAAY,EAAE,IAAI,KAAK,WAAW,IAAI,GAAG;AACnF,cAAM,WAAW,KAAK,iBAAiB,KAAK,WAAW,IAAI;AAC3D,YAAI,UAAU;AACV,gBAAM,QAAQ,KAAK,aAAa,SAAS,MAAM,SAAS,MAAM,IAAI;AAClE,cAAI,UAAU,OAAW,QAAO,QAAQ,KAAK;AAC7C,cAAI,SAAS,SAAS,KAAK;AACvB,kBAAMC,YAAU,UAAK,kBAAkB,SAAS,IAAI,MAApC,mBAAuC,YAAY,MAAM,IAAI;AAC7E,gBAAIA,SAAS,QAAOA,SAAQ,OAAO,UAAUA,SAAQ,MAAM,OAAO;AAAA,UACtE;AAAA,QACJ;AAAA,MACJ;AACA,YAAM,WAAW,KAAK,YAAY,KAAK,YAAY,OAAO;AAC1D,UAAI,CAAC,SAAS,SAAU,QAAO;AAC/B,YAAM,UAAU,SAAS;AACzB,UAAI,GAAG,0BAA0B,QAAQ,IAAI,GAAG;AAC5C,cAAM,aAAa,QAAQ,OAAO,iBAAiB,QAAQ,MAAM,QAAQ,OAAO;AAChF,YAAI,CAAC,WAAW,SAAU,QAAO;AACjC,cAAM,SAAS,WAAW,MAAM,IAAI,IAAI;AACxC,YAAI,OAAQ,QAAO,OAAO,OAAO,UAAU,OAAO,MAAM,QAAQ,OAAO;AACvE,eAAO,KAAK,QAAQ,SAAS,kBAAkB,IAAI,EAAE;AAAA,MACzD;AACA,YAAM,SAAS,QAAQ,OAAO,kBAAkB,QAAQ,MAAM,QAAQ,OAAO;AAC7E,UAAI,CAAC,OAAO,SAAU,QAAO;AAC7B,UAAI,OAAO,UAAU,QAAQ,OAAO,OAAO,UAAU,YAAY,OAAO,OAAO,OAAO,OAAO,IAAI;AAC7F,eAAO,QAAS,OAAO,MAAsC,IAAI,CAAC;AACtE,aAAO,KAAK,QAAQ,SAAS,kBAAkB,IAAI,EAAE;AAAA,IACzD;AACA,QAAI,GAAG,kBAAkB,IAAI,GAAG;AAC5B,YAAM,SAAsC,CAAC;AAC7C,UAAI,WAAwB;AAC5B,iBAAW,UAAU,KAAK,SAAS;AAC/B,cAAM,SAAS,OAAO,cAChB,KAAK,UAAU,OAAO,aAAa,OAAO,IAC1C,OAAO,aAAa,WAClB,QAAQ,WAAW,CAAC,IACpB,KAAK,QAAQ,SAAS,wCAAwC;AACtE,YAAI,CAAC,OAAO,SAAU,QAAO;AAC7B,YAAI,OAAO,OAAO,UAAU,YAAY,OAAO,OAAO,UAAU;AAC5D,iBAAO,KAAK,QAAQ,SAAS,wCAAwC;AACzE,YAAI,GAAG,uBAAuB,OAAO,IAAI;AACrC,iBAAO,KAAK,QAAQ,SAAS,uCAAuC;AACxE,eAAO,OAAO,KAAK,IAAI,IAAI,WAAW,OAAO;AAAA,MACjD;AACA,aAAO,QAAQ,MAAM;AAAA,IACzB;AACA,WAAO,KAAK;AAAA,MACR;AAAA,MACA,eAAe,GAAG,WAAW,KAAK,IAAI,CAAC;AAAA,IAC3C;AAAA,EACJ;AAAA,EAEU,mBAAmC;AACzC,QAAI,CAAC,KAAK,eAAgB,MAAK,iBAAiB,IAAI,eAAe;AACnE,WAAO,KAAK,eAAe,WAAW,KAAK,QAAQ,KAAK,IAAI,CAAC;AAAA,EACjE;AAAA,EAEO,kBAAkB,UAA0C;AAC/D,WAAQ,KAAK,iBAAiB,SAAS,WAAW,KAAK,QAAQ,KAAK,IAAI,CAAC;AAAA,EAC7E;AACJ;","names":["_a","item","key","binding"]}
@@ -2,3 +2,5 @@ export { default as OptionFile } from "./OptionFile.js";
2
2
  export { default as SourceFile } from "./SourceFile.js";
3
3
  export { default as ExpressionFile } from "./ExpressionFile.js";
4
4
  export * from "./resolvers/index.js";
5
+ export { ExportValueKind } from "./parsers/types.js";
6
+ export type { ExportValue } from "./parsers/types.js";
@@ -2,7 +2,9 @@ import { default as default2 } from "./OptionFile.js";
2
2
  import { default as default3 } from "./SourceFile.js";
3
3
  import { default as default4 } from "./ExpressionFile.js";
4
4
  export * from "./resolvers/index.js";
5
+ import { ExportValueKind } from "./parsers/types.js";
5
6
  export {
7
+ ExportValueKind,
6
8
  default4 as ExpressionFile,
7
9
  default2 as OptionFile,
8
10
  default3 as SourceFile
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/entrypoint/file/index.ts"],"sourcesContent":["export {default as OptionFile} from \"./OptionFile\";\nexport {default as SourceFile} from \"./SourceFile\";\nexport {default as ExpressionFile} from \"./ExpressionFile\";\nexport * from \"./resolvers\";\n"],"mappings":"AAAA,SAAmB,WAAXA,gBAA4B;AACpC,SAAmB,WAAXA,gBAA4B;AACpC,SAAmB,WAAXA,gBAAgC;AACxC,cAAc;","names":["default"]}
1
+ {"version":3,"sources":["../../../../src/cli/entrypoint/file/index.ts"],"sourcesContent":["export {default as OptionFile} from \"./OptionFile\";\nexport {default as SourceFile} from \"./SourceFile\";\nexport {default as ExpressionFile} from \"./ExpressionFile\";\nexport * from \"./resolvers\";\nexport {ExportValueKind} from \"./parsers/types\";\nexport type {ExportValue} from \"./parsers/types\";\n"],"mappings":"AAAA,SAAmB,WAAXA,gBAA4B;AACpC,SAAmB,WAAXA,gBAA4B;AACpC,SAAmB,WAAXA,gBAAgC;AACxC,cAAc;AACd,SAAQ,uBAAsB;","names":["default"]}