extension-develop 4.0.11 → 4.0.12

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 (274) hide show
  1. package/dist/0~dev-server.mjs +1 -1
  2. package/dist/0~rspack-config.mjs +107 -3154
  3. package/dist/101.mjs +32 -4
  4. package/dist/266.mjs +1 -4
  5. package/dist/839.mjs +3156 -59
  6. package/dist/bridge-entry.d.ts +5 -0
  7. package/dist/command-build.d.ts +3 -0
  8. package/dist/command-dev.d.ts +5 -0
  9. package/dist/command-preview.d.ts +30 -0
  10. package/dist/dev-server/auto-exit.d.ts +1 -0
  11. package/dist/dev-server/cleanup.d.ts +11 -0
  12. package/dist/dev-server/compiler-hooks.d.ts +9 -0
  13. package/dist/dev-server/connectable-host.d.ts +2 -0
  14. package/dist/dev-server/control-bridge/actions-file.d.ts +38 -0
  15. package/dist/dev-server/control-bridge/broker.d.ts +122 -0
  16. package/dist/dev-server/control-bridge/consumer-client.d.ts +43 -0
  17. package/dist/dev-server/control-bridge/contracts.d.ts +164 -0
  18. package/dist/dev-server/control-bridge/control-port-store.d.ts +25 -0
  19. package/dist/dev-server/control-bridge/controller-client.d.ts +30 -0
  20. package/dist/dev-server/control-bridge/logs-file.d.ts +30 -0
  21. package/dist/dev-server/control-bridge/producer-runtime.d.ts +30 -0
  22. package/dist/dev-server/control-bridge/ring-buffer.d.ts +21 -0
  23. package/dist/dev-server/control-bridge/session-token.d.ts +18 -0
  24. package/dist/dev-server/control-bridge/ws-control-server.d.ts +13 -0
  25. package/dist/dev-server/frameworks.d.ts +2 -0
  26. package/dist/dev-server/index.d.ts +3 -0
  27. package/dist/dev-server/messages.d.ts +17 -0
  28. package/dist/dev-server/port-manager.d.ts +17 -0
  29. package/dist/extension-js-devtools/extension-js/chrome/events.ndjson +2 -6
  30. package/dist/extension-js-devtools/extension-js/chrome/ready.json +9 -6
  31. package/dist/extension-js-devtools/extension-js/chromium/events.ndjson +2 -6
  32. package/dist/extension-js-devtools/extension-js/chromium/ready.json +9 -6
  33. package/dist/extension-js-devtools/extension-js/edge/events.ndjson +2 -6
  34. package/dist/extension-js-devtools/extension-js/edge/ready.json +9 -6
  35. package/dist/extension-js-devtools/extension-js/firefox/events.ndjson +2 -6
  36. package/dist/extension-js-devtools/extension-js/firefox/ready.json +9 -6
  37. package/dist/extension-js-theme/extension-js/chrome/events.ndjson +2 -6
  38. package/dist/extension-js-theme/extension-js/chrome/ready.json +9 -6
  39. package/dist/extension-js-theme/extension-js/chromium/events.ndjson +2 -6
  40. package/dist/extension-js-theme/extension-js/chromium/ready.json +9 -6
  41. package/dist/extension-js-theme/extension-js/edge/events.ndjson +2 -6
  42. package/dist/extension-js-theme/extension-js/edge/ready.json +9 -6
  43. package/dist/extension-js-theme/extension-js/firefox/events.ndjson +2 -8
  44. package/dist/extension-js-theme/extension-js/firefox/ready.json +9 -6
  45. package/dist/lib/branding.d.ts +7 -0
  46. package/dist/lib/build-summary.d.ts +9 -0
  47. package/dist/lib/config-loader.d.ts +38 -0
  48. package/dist/lib/constants.d.ts +11 -0
  49. package/dist/lib/dark-mode.d.ts +9 -0
  50. package/dist/lib/dev-server-client-import.d.ts +4 -0
  51. package/dist/lib/develop-context.d.ts +3 -0
  52. package/dist/lib/ensure-develop-artifacts.d.ts +10 -0
  53. package/dist/lib/extensions-to-load.d.ts +1 -0
  54. package/dist/lib/generate-extension-types.d.ts +1 -0
  55. package/dist/lib/has-dependency.d.ts +6 -0
  56. package/dist/lib/manifest-utils.d.ts +2 -0
  57. package/dist/lib/messages.d.ts +55 -0
  58. package/dist/lib/optional-dependency-types.d.ts +14 -0
  59. package/dist/lib/optional-deps-contracts.d.ts +13 -0
  60. package/dist/lib/optional-deps-resolver.d.ts +41 -0
  61. package/dist/lib/package-json.d.ts +3 -0
  62. package/dist/lib/package-manager.d.ts +61 -0
  63. package/dist/lib/parse-json-safe.d.ts +13 -0
  64. package/dist/lib/paths.d.ts +19 -0
  65. package/dist/lib/project-manifest.d.ts +60 -0
  66. package/dist/lib/project.d.ts +7 -0
  67. package/dist/lib/resource-path.d.ts +4 -0
  68. package/dist/lib/rust-min-stack.d.ts +2 -0
  69. package/dist/lib/sanitize.d.ts +1 -0
  70. package/dist/lib/session-paths.d.ts +39 -0
  71. package/dist/lib/stats-handler.d.ts +1 -0
  72. package/dist/lib/transpile-packages.d.ts +7 -0
  73. package/dist/lib/validate-user-dependencies.d.ts +1 -0
  74. package/dist/lib/zip.d.ts +2 -0
  75. package/dist/module.d.ts +8 -0
  76. package/dist/plugin-browsers/index.d.ts +108 -0
  77. package/dist/plugin-browsers/safari-dev-plugin.d.ts +19 -0
  78. package/dist/plugin-compatibility/compatibility-lib/messages.d.ts +5 -0
  79. package/dist/plugin-compatibility/feature-polyfill.d.ts +11 -0
  80. package/dist/plugin-compatibility/index.d.ts +12 -0
  81. package/dist/plugin-compilation/boring.d.ts +11 -0
  82. package/dist/plugin-compilation/clean-dist.d.ts +8 -0
  83. package/dist/plugin-compilation/compilation-lib/messages.d.ts +11 -0
  84. package/dist/plugin-compilation/compilation-lib/shared-state.d.ts +7 -0
  85. package/dist/plugin-compilation/env.d.ts +17 -0
  86. package/dist/plugin-compilation/index.d.ts +22 -0
  87. package/dist/plugin-compilation/zip.d.ts +18 -0
  88. package/dist/plugin-css/common-style-loaders.d.ts +8 -0
  89. package/dist/plugin-css/css-in-content-script-loader.d.ts +4 -0
  90. package/dist/plugin-css/css-in-html-loader.d.ts +4 -0
  91. package/dist/plugin-css/css-lib/build-css-rules.d.ts +12 -0
  92. package/dist/plugin-css/css-lib/inject-css-link.d.ts +16 -0
  93. package/dist/plugin-css/css-lib/is-content-script.d.ts +1 -0
  94. package/dist/plugin-css/css-lib/messages.d.ts +9 -0
  95. package/dist/plugin-css/css-lib/resolve-css-asset.d.ts +21 -0
  96. package/dist/plugin-css/css-parse-guard-loader.d.ts +8 -0
  97. package/dist/plugin-css/css-tools/less.d.ts +7 -0
  98. package/dist/plugin-css/css-tools/postcss.d.ts +4 -0
  99. package/dist/plugin-css/css-tools/sass.d.ts +10 -0
  100. package/dist/plugin-css/css-tools/tailwind.d.ts +2 -0
  101. package/dist/plugin-css/index.d.ts +26 -0
  102. package/dist/plugin-css/preprocessor-passthrough-loader.d.ts +6 -0
  103. package/dist/plugin-js-frameworks/frameworks-lib/integrations.d.ts +4 -0
  104. package/dist/plugin-js-frameworks/index.d.ts +18 -0
  105. package/dist/plugin-js-frameworks/js-frameworks-lib/load-loader-options.d.ts +2 -0
  106. package/dist/plugin-js-frameworks/js-frameworks-lib/messages.d.ts +10 -0
  107. package/dist/plugin-js-frameworks/js-tools/preact.d.ts +3 -0
  108. package/dist/plugin-js-frameworks/js-tools/react.d.ts +8 -0
  109. package/dist/plugin-js-frameworks/js-tools/svelte.d.ts +4 -0
  110. package/dist/plugin-js-frameworks/js-tools/typescript.d.ts +37 -0
  111. package/dist/plugin-js-frameworks/js-tools/vue.d.ts +3 -0
  112. package/dist/plugin-perf-budgets/categorize.d.ts +3 -0
  113. package/dist/plugin-perf-budgets/index.d.ts +34 -0
  114. package/dist/plugin-perf-budgets/messages.d.ts +8 -0
  115. package/dist/plugin-playwright/index.d.ts +89 -0
  116. package/dist/plugin-reload/classify-reload.d.ts +86 -0
  117. package/dist/plugin-reload/index.d.ts +29 -0
  118. package/dist/plugin-reload/messages.d.ts +1 -0
  119. package/dist/plugin-reload/reload-dispatch.d.ts +46 -0
  120. package/dist/plugin-reload/reload-lib/minimum-files/minimum-background-file-chromium.d.ts +0 -0
  121. package/dist/plugin-reload/reload-lib/minimum-files/minimum-background-file-firefox.d.ts +0 -0
  122. package/dist/plugin-reload/reload-lib/scripts-replay-shim.d.ts +19 -0
  123. package/dist/plugin-reload/steps/inject-bridge-producer.d.ts +14 -0
  124. package/dist/plugin-reload/steps/inject-bridge-relay.d.ts +4 -0
  125. package/dist/plugin-reload/steps/inject-scripts-replay-shim.d.ts +10 -0
  126. package/dist/plugin-reload/steps/prune-stale-hot-updates.d.ts +20 -0
  127. package/dist/plugin-reload/steps/remove-content-script-dev-server-runtime.d.ts +2 -0
  128. package/dist/plugin-reload/steps/setup-reload-strategy/index.d.ts +9 -0
  129. package/dist/plugin-reload/steps/setup-reload-strategy/setup-background-entry.d.ts +13 -0
  130. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/index.d.ts +2 -0
  131. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/ChunkLoader.d.ts +9 -0
  132. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/HMRDevServer.d.ts +3 -0
  133. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/InitialChunkFile.d.ts +5 -0
  134. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/NoDangerNamePlugin.d.ts +3 -0
  135. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/RuntimeModules/AutoPublicPath.d.ts +2 -0
  136. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/RuntimeModules/BaseUri.d.ts +2 -0
  137. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/RuntimeModules/BrowserRuntime.d.ts +8 -0
  138. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/RuntimeModules/ChunkLoaderFallback.d.ts +1 -0
  139. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/RuntimeModules/EagerlyLoadChunks.d.ts +1 -0
  140. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/RuntimeModules/LoadScript.d.ts +4 -0
  141. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/RuntimeModules/PublicPath.d.ts +2 -0
  142. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/ServiceWorkerPlugin.d.ts +6 -0
  143. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/helper.d.ts +12 -0
  144. package/dist/plugin-reload/steps/setup-reload-strategy/webpack-target-webextension-fork/lib/webpack5/index.d.ts +5 -0
  145. package/dist/plugin-reload/steps/strip-content-script-dev-server-runtime.d.ts +4 -0
  146. package/dist/plugin-special-folders/check-manifest-in-public.d.ts +2 -0
  147. package/dist/plugin-special-folders/emit-root-absolute-refs.d.ts +2 -0
  148. package/dist/plugin-special-folders/folder-extensions/resolve-config.d.ts +6 -0
  149. package/dist/plugin-special-folders/folder-extensions/resolve-dirs.d.ts +5 -0
  150. package/dist/plugin-special-folders/folder-extensions/types.d.ts +17 -0
  151. package/dist/plugin-special-folders/folder-extensions/utils.d.ts +9 -0
  152. package/dist/plugin-special-folders/get-data.d.ts +12 -0
  153. package/dist/plugin-special-folders/index.d.ts +20 -0
  154. package/dist/plugin-special-folders/messages.d.ts +3 -0
  155. package/dist/plugin-special-folders/warn-upon-folder-changes.d.ts +13 -0
  156. package/dist/plugin-static-assets/index.d.ts +10 -0
  157. package/dist/plugin-static-assets/static-assets-lib/messages.d.ts +8 -0
  158. package/dist/plugin-wasm/index.d.ts +15 -0
  159. package/dist/plugin-web-extension/feature-html/html-lib/assets.d.ts +2 -0
  160. package/dist/plugin-web-extension/feature-html/html-lib/inject.d.ts +4 -0
  161. package/dist/plugin-web-extension/feature-html/html-lib/messages.d.ts +24 -0
  162. package/dist/plugin-web-extension/feature-html/html-lib/parse-html.d.ts +8 -0
  163. package/dist/plugin-web-extension/feature-html/html-lib/patch-html.d.ts +8 -0
  164. package/dist/plugin-web-extension/feature-html/html-lib/utils.d.ts +46 -0
  165. package/dist/plugin-web-extension/feature-html/index.d.ts +36 -0
  166. package/dist/plugin-web-extension/feature-html/steps/add-assets-to-compilation.d.ts +9 -0
  167. package/dist/plugin-web-extension/feature-html/steps/add-scripts-and-styles-to-compilation.d.ts +9 -0
  168. package/dist/plugin-web-extension/feature-html/steps/add-to-file-dependencies.d.ts +9 -0
  169. package/dist/plugin-web-extension/feature-html/steps/emit-html-file.d.ts +9 -0
  170. package/dist/plugin-web-extension/feature-html/steps/ensure-hmr-for-scripts.d.ts +2 -0
  171. package/dist/plugin-web-extension/feature-html/steps/handle-common-errors.d.ts +9 -0
  172. package/dist/plugin-web-extension/feature-html/steps/minimum-script-file.d.ts +1 -0
  173. package/dist/plugin-web-extension/feature-html/steps/preact-refresh-shim.d.ts +1 -0
  174. package/dist/plugin-web-extension/feature-html/steps/throw-if-recompile-is-needed.d.ts +12 -0
  175. package/dist/plugin-web-extension/feature-html/steps/update-html-file.d.ts +9 -0
  176. package/dist/plugin-web-extension/feature-icons/index.d.ts +22 -0
  177. package/dist/plugin-web-extension/feature-icons/messages.d.ts +12 -0
  178. package/dist/plugin-web-extension/feature-icons/normalize-keys.d.ts +3 -0
  179. package/dist/plugin-web-extension/feature-icons/steps/add-to-file-dependencies.d.ts +8 -0
  180. package/dist/plugin-web-extension/feature-icons/steps/emit-file.d.ts +8 -0
  181. package/dist/plugin-web-extension/feature-json/index.d.ts +18 -0
  182. package/dist/plugin-web-extension/feature-json/json-validation.d.ts +3 -0
  183. package/dist/plugin-web-extension/feature-json/messages.d.ts +17 -0
  184. package/dist/plugin-web-extension/feature-json/process-assets.d.ts +2 -0
  185. package/dist/plugin-web-extension/feature-json/track-dependencies.d.ts +2 -0
  186. package/dist/plugin-web-extension/feature-locales/compilation-error.d.ts +2 -0
  187. package/dist/plugin-web-extension/feature-locales/get-locales.d.ts +2 -0
  188. package/dist/plugin-web-extension/feature-locales/index.d.ts +12 -0
  189. package/dist/plugin-web-extension/feature-locales/messages.d.ts +13 -0
  190. package/dist/plugin-web-extension/feature-locales/process-assets.d.ts +2 -0
  191. package/dist/plugin-web-extension/feature-locales/track-dependencies.d.ts +2 -0
  192. package/dist/plugin-web-extension/feature-locales/validation.d.ts +2 -0
  193. package/dist/plugin-web-extension/feature-manifest/index.d.ts +21 -0
  194. package/dist/plugin-web-extension/feature-manifest/manifest-lib/manifest.d.ts +10 -0
  195. package/dist/plugin-web-extension/feature-manifest/manifest-lib/sanitize-fatal-shapes.d.ts +45 -0
  196. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/background.d.ts +6 -0
  197. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/chrome_url_overrides.d.ts +8 -0
  198. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/commands.d.ts +16 -0
  199. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/content_scripts.d.ts +4 -0
  200. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/content_security_policy.d.ts +4 -0
  201. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/devtools_page.d.ts +4 -0
  202. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/icons.d.ts +6 -0
  203. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/index.d.ts +2 -0
  204. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/omnibox.d.ts +9 -0
  205. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/options_page.d.ts +4 -0
  206. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/options_ui.d.ts +8 -0
  207. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/page_action.d.ts +8 -0
  208. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/permissions.d.ts +4 -0
  209. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/sandbox.d.ts +7 -0
  210. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/sidebar_action.d.ts +2 -0
  211. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/storage.d.ts +6 -0
  212. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/theme.d.ts +2 -0
  213. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/user_scripts.d.ts +2 -0
  214. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/common/web_accessible_resources.d.ts +4 -0
  215. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/index.d.ts +2 -0
  216. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/mv2/background.d.ts +6 -0
  217. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/mv2/browser_action.d.ts +12 -0
  218. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/mv2/chrome_settings_overrides.d.ts +24 -0
  219. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/mv2/index.d.ts +2 -0
  220. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/mv2/theme_experiment.d.ts +7 -0
  221. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/mv3/action.d.ts +8 -0
  222. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/mv3/background.d.ts +6 -0
  223. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/mv3/declarative_net_request.d.ts +2 -0
  224. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/mv3/host_permissions.d.ts +4 -0
  225. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/mv3/index.d.ts +2 -0
  226. package/dist/plugin-web-extension/feature-manifest/manifest-overrides/mv3/side_panel.d.ts +2 -0
  227. package/dist/plugin-web-extension/feature-manifest/messages.d.ts +9 -0
  228. package/dist/plugin-web-extension/feature-manifest/normalize-manifest-path.d.ts +3 -0
  229. package/dist/plugin-web-extension/feature-manifest/steps/add-dependencies.d.ts +6 -0
  230. package/dist/plugin-web-extension/feature-manifest/steps/apply-dev-defaults-lib/patch-background.d.ts +10 -0
  231. package/dist/plugin-web-extension/feature-manifest/steps/apply-dev-defaults-lib/patch-csp.d.ts +5 -0
  232. package/dist/plugin-web-extension/feature-manifest/steps/apply-dev-defaults-lib/patch-externally-connectable.d.ts +10 -0
  233. package/dist/plugin-web-extension/feature-manifest/steps/apply-dev-defaults-lib/patch-web-resources.d.ts +19 -0
  234. package/dist/plugin-web-extension/feature-manifest/steps/apply-dev-defaults.d.ts +12 -0
  235. package/dist/plugin-web-extension/feature-manifest/steps/emit-manifest.d.ts +7 -0
  236. package/dist/plugin-web-extension/feature-manifest/steps/legacy-warnings.d.ts +5 -0
  237. package/dist/plugin-web-extension/feature-manifest/steps/patch-chromium-background.d.ts +15 -0
  238. package/dist/plugin-web-extension/feature-manifest/steps/patch-dev-content-script-manifest-paths.d.ts +11 -0
  239. package/dist/plugin-web-extension/feature-manifest/steps/patch-gecko-background.d.ts +15 -0
  240. package/dist/plugin-web-extension/feature-manifest/steps/patch-war.d.ts +15 -0
  241. package/dist/plugin-web-extension/feature-manifest/steps/persist-manifest.d.ts +4 -0
  242. package/dist/plugin-web-extension/feature-manifest/steps/update-manifest.d.ts +9 -0
  243. package/dist/plugin-web-extension/feature-scripts/contracts.d.ts +12 -0
  244. package/dist/plugin-web-extension/feature-scripts/index.d.ts +19 -0
  245. package/dist/plugin-web-extension/feature-scripts/messages.d.ts +7 -0
  246. package/dist/plugin-web-extension/feature-scripts/scripts-lib/utils.d.ts +2 -0
  247. package/dist/plugin-web-extension/feature-scripts/steps/add-content-script-wrapper/classic-concat-loader.d.ts +8 -0
  248. package/dist/plugin-web-extension/feature-scripts/steps/add-content-script-wrapper/content-script-wrapper.d.ts +13 -0
  249. package/dist/plugin-web-extension/feature-scripts/steps/add-content-script-wrapper/get-bridge-scripts.d.ts +6 -0
  250. package/dist/plugin-web-extension/feature-scripts/steps/add-content-script-wrapper/index.d.ts +11 -0
  251. package/dist/plugin-web-extension/feature-scripts/steps/add-public-path-runtime-module.d.ts +4 -0
  252. package/dist/plugin-web-extension/feature-scripts/steps/add-scripts.d.ts +9 -0
  253. package/dist/plugin-web-extension/feature-scripts/steps/keep-geturl-imports-native.d.ts +15 -0
  254. package/dist/plugin-web-extension/feature-scripts/steps/native-geturl-import-loader.d.ts +3 -0
  255. package/dist/plugin-web-extension/feature-scripts/steps/trace-runtime-loaded-files.d.ts +41 -0
  256. package/dist/plugin-web-extension/feature-scripts/steps/validate-content-script-syntax.d.ts +18 -0
  257. package/dist/plugin-web-extension/feature-web-resources/collect-entry-imports.d.ts +3 -0
  258. package/dist/plugin-web-extension/feature-web-resources/index.d.ts +19 -0
  259. package/dist/plugin-web-extension/feature-web-resources/steps/collect-content-entry-imports.d.ts +10 -0
  260. package/dist/plugin-web-extension/feature-web-resources/web-resources-lib/clean-matches.d.ts +7 -0
  261. package/dist/plugin-web-extension/feature-web-resources/web-resources-lib/generate-manifest.d.ts +11 -0
  262. package/dist/plugin-web-extension/feature-web-resources/web-resources-lib/messages.d.ts +10 -0
  263. package/dist/plugin-web-extension/feature-web-resources/web-resources-lib/resolve-war.d.ts +9 -0
  264. package/dist/plugin-web-extension/feature-web-resources/web-resources-lib/shared.d.ts +4 -0
  265. package/dist/plugin-web-extension/index.d.ts +9 -0
  266. package/dist/plugin-web-extension/shared/classic-concat.d.ts +18 -0
  267. package/dist/plugin-web-extension/shared/compilation-issues.d.ts +6 -0
  268. package/dist/plugin-web-extension/shared/manifest-fields-change-detector.d.ts +12 -0
  269. package/dist/plugin-web-extension/shared/paths.d.ts +26 -0
  270. package/dist/preview-entry.d.ts +3 -0
  271. package/dist/rslib.config.d.ts +3 -0
  272. package/dist/rspack-config.d.ts +4 -0
  273. package/dist/types.d.ts +406 -0
  274. package/package.json +3 -3
@@ -0,0 +1,5 @@
1
+ export { BridgeConsumer, readReadyContract, type ConsumerOptions, type ReadyContractInfo } from './dev-server/control-bridge/consumer-client';
2
+ export { BridgeController, type ControllerOptions, type CommandInput } from './dev-server/control-bridge/controller-client';
3
+ export { readControlToken, controlTokenPath } from './dev-server/control-bridge/session-token';
4
+ export { readPersistedControlPort, controlPortFilePath } from './dev-server/control-bridge/control-port-store';
5
+ export type { LogEvent, LogLevel, LogContext, GapFrame, ReadyFrame, ResultFrame, BridgeTarget, CommandOp } from './dev-server/control-bridge/contracts';
@@ -0,0 +1,3 @@
1
+ import { type BuildSummary } from './lib/build-summary';
2
+ import type { BuildOptions } from './types';
3
+ export declare function extensionBuild(pathOrRemoteUrl: string | undefined, buildOptions?: BuildOptions): Promise<BuildSummary>;
@@ -0,0 +1,5 @@
1
+ import { BuildEmitter, type BrowserLauncherFn } from './plugin-browsers';
2
+ import type { DevOptions } from './types';
3
+ export declare function extensionDev(pathOrRemoteUrl: string | undefined, devOptions: DevOptions & {
4
+ launcher?: BrowserLauncherFn;
5
+ }): Promise<BuildEmitter>;
@@ -0,0 +1,30 @@
1
+ import type { PreviewOptions } from './types';
2
+ /**
3
+ * Resolved browser launch options returned by extensionPreview.
4
+ * The caller is responsible for actually launching the browser.
5
+ */
6
+ export interface ResolvedPreviewOptions {
7
+ browser: string;
8
+ outPath: string;
9
+ contextDir: string;
10
+ readyPath: string;
11
+ extensionsToLoad: string[];
12
+ noOpen?: boolean;
13
+ profile?: string | false;
14
+ persistProfile?: boolean;
15
+ preferences?: Record<string, unknown>;
16
+ browserFlags?: string[];
17
+ excludeBrowserFlags?: string[];
18
+ startingUrl?: string;
19
+ chromiumBinary?: string;
20
+ geckoBinary?: string;
21
+ instanceId?: string;
22
+ port?: number | string;
23
+ dryRun?: boolean;
24
+ }
25
+ /**
26
+ * Browser launcher callback. When provided, extensionPreview calls it
27
+ * instead of requiring plugin-browsers internally.
28
+ */
29
+ export type PreviewLauncherFn = (opts: ResolvedPreviewOptions) => Promise<void>;
30
+ export declare function extensionPreview(pathOrRemoteUrl: string | undefined, previewOptions: PreviewOptions, browserLauncher?: PreviewLauncherFn): Promise<void>;
@@ -0,0 +1 @@
1
+ export declare function setupAutoExit(autoExitMsRaw: string | number | undefined, forceKillMsRaw: string | number | undefined, onCleanup: () => Promise<void>): () => void;
@@ -0,0 +1,11 @@
1
+ import { RspackDevServer } from '@rspack/dev-server';
2
+ import { PortManager } from './port-manager';
3
+ /**
4
+ * Creates cleanup handlers for process termination and uncaught errors.
5
+ * Registers signal handlers for graceful shutdown.
6
+ *
7
+ * @param devServer - The RspackDevServer instance
8
+ * @param portManager - The PortManager instance
9
+ * @returns A cleanup function and a cancel function for auto-exit
10
+ */
11
+ export declare function setupCleanupHandlers(devServer: RspackDevServer, portManager: PortManager): () => void;
@@ -0,0 +1,9 @@
1
+ import { type Compiler } from '@rspack/core';
2
+ export declare function setupCompilerLifecycleHooks(compiler: Compiler): void;
3
+ export declare function setupNoBrowserBannerOnFirstDone(opts: {
4
+ compiler: Compiler;
5
+ browser: string;
6
+ manifestPath: string;
7
+ readyPath: string;
8
+ }): void;
9
+ export declare function setupCompilerDoneDiagnostics(compiler: Compiler, port?: number): void;
@@ -0,0 +1,2 @@
1
+ export declare function isWildcardHost(host: string | undefined | null): boolean;
2
+ export declare function resolveConnectableHost(bindHost: string | undefined | null, publicHost?: string | undefined | null): string;
@@ -0,0 +1,38 @@
1
+ import type { BridgeTarget, CommandOp } from './contracts';
2
+ export declare const ACTION_RECORD_VERSION: 1;
3
+ export interface ActionRecord {
4
+ v: typeof ACTION_RECORD_VERSION;
5
+ ts: string;
6
+ cmdId: string;
7
+ op: CommandOp;
8
+ target: BridgeTarget;
9
+ ok: boolean;
10
+ durationMs?: number;
11
+ principal: string;
12
+ exprHash?: string;
13
+ expr?: string;
14
+ errorName?: string;
15
+ }
16
+ export interface ActionsSink {
17
+ write(record: ActionRecord): void;
18
+ }
19
+ export interface ActionsFileOptions {
20
+ filePath: string;
21
+ maxBytes?: number;
22
+ maxLines?: number;
23
+ generations?: number;
24
+ }
25
+ export declare class ActionsFileWriter implements ActionsSink {
26
+ private readonly opts;
27
+ private bytes;
28
+ private lines;
29
+ private started;
30
+ constructor(options: ActionsFileOptions);
31
+ /** Rotate any prior file so a new run starts clean. No header is written. */
32
+ start(): void;
33
+ write(record: ActionRecord): void;
34
+ close(): void;
35
+ private rotatedName;
36
+ private rotate;
37
+ }
38
+ export declare function fnv1aHex(input: string): string;
@@ -0,0 +1,122 @@
1
+ import { LogRingBuffer } from './ring-buffer';
2
+ import type { LogsFileWriter } from './logs-file';
3
+ import { type ActionsSink } from './actions-file';
4
+ import { type AnyFrame, type CommandFrame, type IncomingLogEvent, type DevReloadKind, type ServerFrame } from './contracts';
5
+ export interface BridgeConnection {
6
+ readonly id: string;
7
+ send(frame: ServerFrame | CommandFrame): void;
8
+ close(code?: number, reason?: string): void;
9
+ }
10
+ export interface BridgeBrokerOptions {
11
+ instanceId: string;
12
+ runId: string;
13
+ engine?: 'chromium' | 'firefox';
14
+ ring?: LogRingBuffer;
15
+ file?: LogsFileWriter;
16
+ allowControl?: boolean;
17
+ allowEval?: boolean;
18
+ controlToken?: string;
19
+ actions?: ActionsSink;
20
+ authorMode?: boolean;
21
+ now?: () => number;
22
+ setTimer?: (fn: () => void, ms: number) => ReturnType<typeof setTimeout>;
23
+ clearTimer?: (handle: ReturnType<typeof setTimeout>) => void;
24
+ }
25
+ export declare const CLOSE_BAD_INSTANCE = 4001;
26
+ export declare const CLOSE_BAD_HELLO = 4002;
27
+ export declare const CLOSE_CONTROL_UNAVAILABLE = 4003;
28
+ export declare const DEFAULT_CMD_TIMEOUT_MS = 5000;
29
+ export declare const MAX_CMD_TIMEOUT_MS = 30000;
30
+ export declare class BridgeBroker {
31
+ private readonly instanceId;
32
+ private readonly runId;
33
+ private readonly engine?;
34
+ private readonly ring;
35
+ private readonly file?;
36
+ private readonly roles;
37
+ private readonly allowControl;
38
+ private readonly allowEval;
39
+ private readonly controlToken?;
40
+ private readonly actions?;
41
+ private readonly authorMode;
42
+ private readonly now;
43
+ private readonly setTimer;
44
+ private readonly clearTimer;
45
+ private readonly evalGate;
46
+ private readonly pending;
47
+ private staleResyncTimes;
48
+ /** True once any producer hello has been accepted this run. */
49
+ private producerEverConnected;
50
+ /** When the last accepted producer's socket closed (broker clock). */
51
+ private lastProducerDisconnectedAt;
52
+ /**
53
+ * When the last stale-instance producer hello arrived. Unlike
54
+ * staleResyncTimes (rate limiting, pruned to 60s) this is diagnosis state
55
+ * and is stamped even for rate-limited hellos.
56
+ */
57
+ private lastStaleHelloAt;
58
+ /**
59
+ * Latest reload broadcast not yet provably delivered. Latched when the
60
+ * broadcast reached zero producers (SW not started yet, or stopped after
61
+ * idling out) and, for content-scripts reloads, until a producer confirms
62
+ * reinjection ran with a `reload-ack` — a successful socket write proves
63
+ * nothing when the SW is wedged-but-connected (bug 27). Delivered once to
64
+ * the next producer that says hello, so an edit made while the SW was away
65
+ * (or dead at the pump) still applies instead of silently reloading nothing.
66
+ */
67
+ private pendingReload?;
68
+ constructor(options: BridgeBrokerOptions);
69
+ get consumerCount(): number;
70
+ get producerCount(): number;
71
+ get controllerCount(): number;
72
+ get pendingCount(): number;
73
+ onFrame(conn: BridgeConnection, frame: AnyFrame): void;
74
+ onClose(conn: BridgeConnection): void;
75
+ /**
76
+ * Dev-loop reload broadcast for the controller-less path. On a compile under
77
+ * `--no-browser` (no CDP controller to drive granular reinjection), the dev
78
+ * server calls this to push a typed {@link ReloadFrame} to every connected
79
+ * producer (the service worker), which performs the actual reload.
80
+ *
81
+ * NOT gated on `allowControl`: this is the dev loop reloading the developer's
82
+ * own extension on save, not an arbitrary controller-issued command. The
83
+ * launched-browser path never calls this — the controller owns reload there —
84
+ * so the two paths converge on one decision without double-reloading.
85
+ *
86
+ * Returns the number of producers notified (0 when the SW hasn't connected
87
+ * yet, e.g. before the first compile finishes writing the background bundle).
88
+ */
89
+ broadcastReload(instruction: {
90
+ type: DevReloadKind;
91
+ changedContentScriptEntries?: string[];
92
+ label?: string;
93
+ changedFiles?: string[];
94
+ }): number;
95
+ /**
96
+ * Keepalive for the dev extension's MV3 service worker: receiving any
97
+ * WebSocket message resets its ~30s idle timer, so the dev server pings
98
+ * all producers on an interval shorter than that. Without this, a quiet
99
+ * extension's SW stops between edits and reload broadcasts reach nothing.
100
+ */
101
+ pingProducers(): number;
102
+ ingestLog(incoming: IncomingLogEvent): void;
103
+ /** At most 3 stale-producer resync reloads per rolling minute. */
104
+ private allowStaleProducerResync;
105
+ private onHello;
106
+ /**
107
+ * Name WHY no producer is connected right now. Priority: a fresh
108
+ * stale-instance hello (resync in flight — strictly more actionable than
109
+ * either other cause) > nothing ever connected this run > a producer was
110
+ * here and left.
111
+ */
112
+ private diagnoseExecutorAbsence;
113
+ private gateEval;
114
+ private controllerReady;
115
+ private onCommand;
116
+ private onResult;
117
+ private onTimeout;
118
+ private firstExecutor;
119
+ private audit;
120
+ private fanOut;
121
+ private countRole;
122
+ }
@@ -0,0 +1,43 @@
1
+ import { type GapFrame, type LogEvent, type ReadyFrame } from './contracts';
2
+ export interface ReadyContractInfo {
3
+ controlPort: number;
4
+ instanceId: string;
5
+ runId: string;
6
+ logsPath?: string;
7
+ status?: string;
8
+ /** Dev-server pid; absent in pre-4.1 contracts. */
9
+ pid?: number;
10
+ /** Browser CDP port, stamped post-launch — may lag `status: 'ready'`. */
11
+ cdpPort?: number;
12
+ /** Stamped when the launched browser exits while the server keeps running. */
13
+ browserExitedAt?: string;
14
+ browserExitCode?: number;
15
+ /** Last contract write time (ISO). */
16
+ ts?: string;
17
+ }
18
+ export declare function readReadyContract(projectPath: string, browser?: string): ReadyContractInfo | null;
19
+ export interface ConsumerOptions {
20
+ controlPort: number;
21
+ instanceId: string;
22
+ host?: string;
23
+ path?: string;
24
+ reconnect?: boolean;
25
+ onReady?: (frame: ReadyFrame) => void;
26
+ onLog?: (event: LogEvent) => void;
27
+ onGap?: (frame: GapFrame) => void;
28
+ onClose?: () => void;
29
+ }
30
+ export declare class BridgeConsumer {
31
+ private readonly opts;
32
+ private socket;
33
+ private backoff;
34
+ private readonly maxBackoff;
35
+ private closed;
36
+ private timer;
37
+ constructor(options: ConsumerOptions);
38
+ start(): void;
39
+ close(): void;
40
+ private url;
41
+ private connect;
42
+ private scheduleReconnect;
43
+ }
@@ -0,0 +1,164 @@
1
+ export declare const LOG_EVENT_VERSION: 1;
2
+ export declare const CONTROL_ENVELOPE_VERSION: 1;
3
+ export type LogLevel = 'log' | 'info' | 'warn' | 'error' | 'debug' | 'trace';
4
+ export type LogContext = 'background' | 'content' | 'page' | 'sidebar' | 'popup' | 'options' | 'devtools';
5
+ export type LogEventType = 'log' | 'dx.signal';
6
+ export type DxSignalStatus = 'ok' | 'warn' | 'fail';
7
+ export interface LogEvent {
8
+ v: typeof LOG_EVENT_VERSION;
9
+ id: string;
10
+ seq: number;
11
+ timestamp: number;
12
+ level: LogLevel;
13
+ context: LogContext;
14
+ messageParts: unknown[];
15
+ eventType?: LogEventType;
16
+ code?: string;
17
+ status?: DxSignalStatus;
18
+ remediation?: string;
19
+ data?: Record<string, unknown>;
20
+ url?: string;
21
+ hostname?: string;
22
+ tabId?: number;
23
+ frameId?: number;
24
+ windowId?: number;
25
+ title?: string;
26
+ stack?: string;
27
+ errorName?: string;
28
+ sourceExtensionId?: string;
29
+ incognito?: boolean;
30
+ runId: string;
31
+ repeat?: number;
32
+ }
33
+ export type IncomingLogEvent = Omit<LogEvent, 'seq'> & {
34
+ seq?: number;
35
+ };
36
+ export type BridgeRole = 'producer' | 'consumer' | 'controller';
37
+ export interface BridgeTarget {
38
+ context: 'background' | 'popup' | 'options' | 'sidebar' | 'devtools' | 'content' | 'page';
39
+ url?: string;
40
+ tabId?: number;
41
+ }
42
+ export type CommandOp = 'eval' | 'storage.get' | 'storage.set' | 'reload' | 'open' | 'tabs.query' | 'inspect';
43
+ /**
44
+ * Granularity of a dev-loop reload. Mirrors `ReloadType` in
45
+ * plugin-reload/classify-reload.ts: the launched-browser path feeds this
46
+ * decision to the CDP controller; the `--no-browser` path feeds the same
47
+ * decision to the broker, which broadcasts a {@link ReloadFrame} to the SW
48
+ * producer.
49
+ */
50
+ export type ReloadType = 'full' | 'service-worker' | 'content-scripts';
51
+ /**
52
+ * Everything a {@link ReloadFrame} can carry in `reloadType`: the extension
53
+ * reload granularities plus `'page'` — a notify-only signal for page-only
54
+ * edits (popup/options/sidebar/devtools/newtab). For `'page'` the producer
55
+ * performs NO reload (livereload owns the refresh); it only forwards the
56
+ * announcement so the devtools pill mirrors the dev loop.
57
+ */
58
+ export type DevReloadKind = ReloadType | 'page';
59
+ export type GapReason = 'ring_overflow' | 'rate_limit' | 'disk_slow' | 'slow_consumer';
60
+ export interface HelloFrame {
61
+ type: 'hello';
62
+ v: typeof CONTROL_ENVELOPE_VERSION;
63
+ role: BridgeRole;
64
+ instanceId: string;
65
+ token?: string;
66
+ }
67
+ export interface ReadyFrame {
68
+ type: 'ready';
69
+ runId: string;
70
+ bufferedFrom?: number;
71
+ engine?: 'chromium' | 'firefox';
72
+ capabilities?: {
73
+ eval?: boolean;
74
+ storage?: boolean;
75
+ reload?: boolean;
76
+ open?: Array<'popup' | 'options' | 'sidebar' | 'action' | 'command'>;
77
+ deepDom?: boolean;
78
+ };
79
+ }
80
+ export interface LogFrame {
81
+ type: 'log';
82
+ event: LogEvent;
83
+ }
84
+ export interface GapFrame {
85
+ type: 'gap';
86
+ dropped: number;
87
+ reason: GapReason;
88
+ sinceSeq: number;
89
+ }
90
+ export interface CommandFrame {
91
+ type: 'command';
92
+ cmdId: string;
93
+ op: CommandOp;
94
+ target: BridgeTarget;
95
+ args?: Record<string, unknown>;
96
+ timeoutMs?: number;
97
+ }
98
+ export interface ResultFrame {
99
+ type: 'result';
100
+ cmdId: string;
101
+ ok: boolean;
102
+ value?: unknown;
103
+ truncated?: boolean;
104
+ durationMs?: number;
105
+ error?: {
106
+ name: string;
107
+ message: string;
108
+ stack?: string;
109
+ engine?: string;
110
+ };
111
+ }
112
+ /**
113
+ * Dev-loop reload broadcast, server → producer. Sent by the broker on a compile
114
+ * that completed without a CDP controller (`--no-browser`, headless/CI, remote)
115
+ * so the service-worker producer can self-reload. Unlike a `reload` CommandFrame
116
+ * (a controller-issued, `--allow-control`-gated act verb that expects a result),
117
+ * this is a fire-and-forget dev-server signal — no cmdId, no result.
118
+ */
119
+ export interface ReloadFrame {
120
+ type: 'reload';
121
+ reloadType: DevReloadKind;
122
+ changedContentScriptEntries?: string[];
123
+ /**
124
+ * Server-built human context label, e.g. "content_script (content/scripts.tsx)".
125
+ * Shown VERBATIM by every announcement surface (CLI stdout, the page's
126
+ * devtools console line, the devtools-extension pill) so the three can
127
+ * never disagree about what is reloading.
128
+ */
129
+ label?: string;
130
+ /** Project-relative source files that triggered this reload. */
131
+ changedFiles?: string[];
132
+ }
133
+ /**
134
+ * Producer → server receipt confirmation for a {@link ReloadFrame}: the SW's
135
+ * message pump actually processed the frame. A successful socket write proves
136
+ * nothing when the worker is wedged-but-connected (bug 27: the server printed
137
+ * "Reloading content_script…" while no scripting.executeScript ever left the
138
+ * producer). The broker latches a content-scripts reload until this ack
139
+ * arrives and replays the latch to the next producer hello, so an edit that
140
+ * landed on a dead pump still converges on the next SW start. Full/SW reloads
141
+ * are not latched-until-ack (replaying a restart would loop it); their
142
+ * convergence is the boot-time pending-reinject heal.
143
+ */
144
+ export interface ReloadAckFrame {
145
+ type: 'reload-ack';
146
+ reloadType: DevReloadKind;
147
+ label?: string;
148
+ }
149
+ /**
150
+ * Server → producer keepalive. An MV3 service worker idles out after ~30s
151
+ * without events, and a stopped SW holds no control socket — reload
152
+ * broadcasts would reach zero producers and silently apply to nothing
153
+ * (quiet extensions lost SW/manifest reloads once >30s passed between
154
+ * edits). Receiving any WebSocket message resets the SW idle timer
155
+ * (Chrome 116+), so a periodic ping keeps the dev extension's SW
156
+ * responsive for the whole dev session. Producers ignore the frame.
157
+ */
158
+ export interface PingFrame {
159
+ type: 'ping';
160
+ }
161
+ export type ClientFrame = HelloFrame | LogFrame | CommandFrame | ReloadAckFrame;
162
+ export type ServerFrame = ReadyFrame | LogFrame | GapFrame | ResultFrame | ReloadFrame | PingFrame;
163
+ export type AnyFrame = ClientFrame | ServerFrame;
164
+ export declare const CONTROL_WS_PATH = "/extjs-control";
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Control-port persistence — the reachability half of stale-SW self-healing.
3
+ *
4
+ * Chrome caches an extension's background service-worker script per profile:
5
+ * after a dev-server restart, a reused profile can keep running a SW whose
6
+ * baked control port belongs to the PREVIOUS session. With an ephemeral port
7
+ * per session that stale SW dials a dead port forever and no reload can reach
8
+ * it. Persisting the port per project+browser lets the stale producer reach
9
+ * the NEW server, whose broker then tells it to full-reload itself (see
10
+ * BridgeBroker.onHello).
11
+ *
12
+ * The file lives under the project's `.extension-js/` dir (with the control
13
+ * token), NOT under dist/: profiles can outlive dist/ — an explicit
14
+ * `--profile <path>` or a kept managed profile survives a dist wipe — and a
15
+ * port file that dies with dist strands the profile's cached SW on a dead
16
+ * port with no resync path (issue #484: permanent "no executor connected"
17
+ * against a live, awake SW). The port must live at least as long as any
18
+ * profile that may have it baked in.
19
+ *
20
+ * Paths are owned by lib/session-paths (re-exported here for the existing
21
+ * import surface); only the read/write logic lives in this file.
22
+ */
23
+ export { controlPortFilePath, legacyControlPortFilePath } from '../../lib/session-paths';
24
+ export declare function readPersistedControlPort(filePath: string): number | null;
25
+ export declare function writePersistedControlPort(filePath: string, port: number): void;
@@ -0,0 +1,30 @@
1
+ import { type BridgeTarget, type CommandOp, type ReadyFrame, type ResultFrame } from './contracts';
2
+ export interface ControllerOptions {
3
+ controlPort: number;
4
+ instanceId: string;
5
+ token?: string;
6
+ host?: string;
7
+ path?: string;
8
+ connectTimeoutMs?: number;
9
+ }
10
+ export interface CommandInput {
11
+ op: CommandOp;
12
+ target: BridgeTarget;
13
+ args?: Record<string, unknown>;
14
+ timeoutMs?: number;
15
+ }
16
+ export declare class BridgeController {
17
+ private readonly opts;
18
+ private socket;
19
+ private ready;
20
+ private connectPromise;
21
+ private readonly pending;
22
+ constructor(options: ControllerOptions);
23
+ get capabilities(): ReadyFrame['capabilities'] | undefined;
24
+ connect(): Promise<ReadyFrame>;
25
+ /** Issue a command and resolve with the broker-routed result. */
26
+ command(input: CommandInput): Promise<ResultFrame>;
27
+ close(): void;
28
+ private resolveResult;
29
+ private failAllPending;
30
+ }
@@ -0,0 +1,30 @@
1
+ import { type LogEvent } from './contracts';
2
+ export interface LogsFileOptions {
3
+ filePath: string;
4
+ runId: string;
5
+ maxBytes?: number;
6
+ maxLines?: number;
7
+ generations?: number;
8
+ flushIntervalMs?: number;
9
+ maxQueue?: number;
10
+ }
11
+ export declare class LogsFileWriter {
12
+ private readonly opts;
13
+ private queue;
14
+ private bytes;
15
+ private lines;
16
+ private droppedToDisk;
17
+ private timer;
18
+ private started;
19
+ constructor(options: LogsFileOptions);
20
+ start(): void;
21
+ write(event: LogEvent): void;
22
+ private enqueue;
23
+ flush(): void;
24
+ close(): void;
25
+ private maybeNoteDrops;
26
+ private writeHeader;
27
+ private rotatedName;
28
+ /** Shift generations: drop the oldest, age each, move current → .1 */
29
+ private rotate;
30
+ }