extension 3.12.0 → 3.12.2

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 (101) hide show
  1. package/README.md +1 -1
  2. package/dist/728.cjs +1890 -0
  3. package/dist/browsers.cjs +4962 -0
  4. package/dist/cli.cjs +6621 -1684
  5. package/dist/extension/browsers/browsers-lib/banner.d.ts +37 -0
  6. package/dist/extension/browsers/browsers-lib/constants.d.ts +14 -0
  7. package/dist/extension/browsers/browsers-lib/content-script-contracts.d.ts +2 -0
  8. package/dist/extension/browsers/browsers-lib/content-script-targets.d.ts +33 -0
  9. package/dist/extension/browsers/browsers-lib/html-merge.d.ts +1 -0
  10. package/dist/extension/browsers/browsers-lib/instance-registry.d.ts +8 -0
  11. package/dist/extension/browsers/browsers-lib/messages.d.ts +208 -0
  12. package/dist/extension/browsers/browsers-lib/normalize-options.d.ts +12 -0
  13. package/dist/extension/browsers/browsers-lib/output-binaries-resolver.d.ts +5 -0
  14. package/dist/extension/browsers/browsers-lib/ready-message.d.ts +1 -0
  15. package/dist/extension/browsers/browsers-lib/runtime-options.d.ts +12 -0
  16. package/dist/extension/browsers/browsers-lib/shared-utils.d.ts +11 -0
  17. package/dist/extension/browsers/browsers-lib/source-output.d.ts +86 -0
  18. package/dist/extension/browsers/browsers-types.d.ts +270 -0
  19. package/dist/extension/browsers/index.d.ts +74 -0
  20. package/dist/extension/browsers/run-chromium/chromium-context/index.d.ts +20 -0
  21. package/dist/extension/browsers/run-chromium/chromium-launch/browser-config.d.ts +4 -0
  22. package/dist/extension/browsers/run-chromium/chromium-launch/dry-run.d.ts +1 -0
  23. package/dist/extension/browsers/run-chromium/chromium-launch/extension-output-path.d.ts +8 -0
  24. package/dist/extension/browsers/run-chromium/chromium-launch/index.d.ts +31 -0
  25. package/dist/extension/browsers/run-chromium/chromium-launch/master-preferences.d.ts +163 -0
  26. package/dist/extension/browsers/run-chromium/chromium-launch/process-handlers.d.ts +3 -0
  27. package/dist/extension/browsers/run-chromium/chromium-launch/setup-cdp-after-launch.d.ts +3 -0
  28. package/dist/extension/browsers/run-chromium/chromium-launch/wsl-support.d.ts +15 -0
  29. package/dist/extension/browsers/run-chromium/chromium-source-inspection/cdp-client.d.ts +60 -0
  30. package/dist/extension/browsers/run-chromium/chromium-source-inspection/cdp-extension-controller/connect.d.ts +2 -0
  31. package/dist/extension/browsers/run-chromium/chromium-source-inspection/cdp-extension-controller/derive-id.d.ts +2 -0
  32. package/dist/extension/browsers/run-chromium/chromium-source-inspection/cdp-extension-controller/ensure.d.ts +6 -0
  33. package/dist/extension/browsers/run-chromium/chromium-source-inspection/cdp-extension-controller/index.d.ts +58 -0
  34. package/dist/extension/browsers/run-chromium/chromium-source-inspection/cdp-extension-controller/logging.d.ts +7 -0
  35. package/dist/extension/browsers/run-chromium/chromium-source-inspection/deterministic-hmr-harness.d.ts +21 -0
  36. package/dist/extension/browsers/run-chromium/chromium-source-inspection/discovery.d.ts +2 -0
  37. package/dist/extension/browsers/run-chromium/chromium-source-inspection/extensions.d.ts +9 -0
  38. package/dist/extension/browsers/run-chromium/chromium-source-inspection/extract.d.ts +2 -0
  39. package/dist/extension/browsers/run-chromium/chromium-source-inspection/index.d.ts +79 -0
  40. package/dist/extension/browsers/run-chromium/chromium-source-inspection/page.d.ts +45 -0
  41. package/dist/extension/browsers/run-chromium/chromium-source-inspection/readiness.d.ts +1 -0
  42. package/dist/extension/browsers/run-chromium/chromium-source-inspection/sessions.d.ts +2 -0
  43. package/dist/extension/browsers/run-chromium/chromium-source-inspection/targets.d.ts +7 -0
  44. package/dist/extension/browsers/run-chromium/chromium-source-inspection/ws.d.ts +2 -0
  45. package/dist/extension/browsers/run-chromium/chromium-types.d.ts +65 -0
  46. package/dist/extension/browsers/run-chromium/chromium-unified-logger/index.d.ts +22 -0
  47. package/dist/extension/browsers/run-chromium/chromium-unified-logger/unified-logging.d.ts +2 -0
  48. package/dist/extension/browsers/run-chromium/manifest-readiness.d.ts +15 -0
  49. package/dist/extension/browsers/run-firefox/firefox-context/index.d.ts +24 -0
  50. package/dist/extension/browsers/run-firefox/firefox-launch/binary-detector.d.ts +10 -0
  51. package/dist/extension/browsers/run-firefox/firefox-launch/browser-config.d.ts +19 -0
  52. package/dist/extension/browsers/run-firefox/firefox-launch/dry-run.d.ts +1 -0
  53. package/dist/extension/browsers/run-firefox/firefox-launch/index.d.ts +37 -0
  54. package/dist/extension/browsers/run-firefox/firefox-launch/master-preferences.d.ts +137 -0
  55. package/dist/extension/browsers/run-firefox/firefox-launch/process-handlers.d.ts +2 -0
  56. package/dist/extension/browsers/run-firefox/firefox-launch/setup-rdp-after-launch.d.ts +6 -0
  57. package/dist/extension/browsers/run-firefox/firefox-launch/wsl-support.d.ts +15 -0
  58. package/dist/extension/browsers/run-firefox/firefox-source-inspection/index.d.ts +52 -0
  59. package/dist/extension/browsers/run-firefox/firefox-source-inspection/rdp-extension-controller/index.d.ts +38 -0
  60. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/addons-install.d.ts +10 -0
  61. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/addons.d.ts +1 -0
  62. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/evaluate.d.ts +18 -0
  63. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/firefox-utils.d.ts +17 -0
  64. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/index.d.ts +38 -0
  65. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/logging.d.ts +11 -0
  66. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/message-utils.d.ts +2 -0
  67. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/messaging-client.d.ts +42 -0
  68. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/moz-id.d.ts +2 -0
  69. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/rdp-api.d.ts +29 -0
  70. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/rdp-wire.d.ts +8 -0
  71. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/setup-firefox-inspection-actors.d.ts +5 -0
  72. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/setup-firefox-inspection-navigation.d.ts +2 -0
  73. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/source-inspect.d.ts +9 -0
  74. package/dist/extension/browsers/run-firefox/firefox-source-inspection/remote-firefox/transport.d.ts +20 -0
  75. package/dist/extension/browsers/run-firefox/firefox-types.d.ts +16 -0
  76. package/dist/extension/browsers/run-firefox/firefox-unified-logger/index.d.ts +14 -0
  77. package/dist/extension/browsers/run-only.d.ts +22 -0
  78. package/dist/extension/helpers/extension-develop-runtime.d.ts +9 -0
  79. package/dist/{utils.d.ts → extension/helpers/vendors.d.ts} +0 -1
  80. package/dist/extension/vitest.config.d.ts +2 -0
  81. package/package.json +19 -9
  82. package/dist/cli-lib/extension-develop-runtime.d.ts +0 -3
  83. /package/dist/{vitest.config.d.ts → extension/browsers/vitest.config.d.ts} +0 -0
  84. /package/dist/{commands → extension/commands}/build.d.ts +0 -0
  85. /package/dist/{commands → extension/commands}/create.d.ts +0 -0
  86. /package/dist/{commands → extension/commands}/dev-wait.d.ts +0 -0
  87. /package/dist/{commands → extension/commands}/dev.d.ts +0 -0
  88. /package/dist/{commands → extension/commands}/install.d.ts +0 -0
  89. /package/dist/{commands → extension/commands}/preview.d.ts +0 -0
  90. /package/dist/{commands → extension/commands}/start.d.ts +0 -0
  91. /package/dist/{check-updates.d.ts → extension/helpers/check-updates.d.ts} +0 -0
  92. /package/dist/{cli-package-json.d.ts → extension/helpers/cli-package-json.d.ts} +0 -0
  93. /package/dist/{cli-lib → extension/helpers}/manifest-summary.d.ts +0 -0
  94. /package/dist/{cli-lib → extension/helpers}/messages.d.ts +0 -0
  95. /package/dist/{utils → extension/helpers}/normalize-options.d.ts +0 -0
  96. /package/dist/{cli-lib → extension/helpers}/project-profile.d.ts +0 -0
  97. /package/dist/{cli-lib → extension/helpers}/telemetry-cli.d.ts +0 -0
  98. /package/dist/{cli-lib → extension/helpers}/telemetry.d.ts +0 -0
  99. /package/dist/{cli-lib → extension/helpers}/workflow-profile.d.ts +0 -0
  100. /package/dist/{index.d.ts → extension/index.d.ts} +0 -0
  101. /package/dist/{rslib.config.d.ts → extension/rslib.config.d.ts} +0 -0
@@ -0,0 +1,52 @@
1
+ import type { FirefoxContext } from '../firefox-context';
2
+ export declare class FirefoxSourceInspectionPlugin {
3
+ private readonly host;
4
+ private readonly _ctx?;
5
+ private devOptions?;
6
+ private client;
7
+ private currentConsoleActor;
8
+ private currentTabActor;
9
+ private isWatching;
10
+ private debounceTimer;
11
+ private initialized;
12
+ private lastUrlToInspect;
13
+ private lastOutputHash?;
14
+ private lastByteLength?;
15
+ private lastSummary?;
16
+ private lastDomSnapshot?;
17
+ private consoleCounts;
18
+ private consoleTop;
19
+ private consoleCaptureReady;
20
+ constructor(host: any, ctx?: FirefoxContext);
21
+ private setDevOptions;
22
+ private getOutputConfig;
23
+ private buildPrettyTitle;
24
+ private getFrameContext;
25
+ private emitSourceOutput;
26
+ private setupConsoleCapture;
27
+ private recordConsoleEvent;
28
+ private emitExtraOutputs;
29
+ private evaluateJson;
30
+ private evaluateString;
31
+ private getShadowStyleSnapshot;
32
+ private getDomSnapshot;
33
+ private getExtensionRootMeta;
34
+ private emitEventPayload;
35
+ private getRdpPort;
36
+ private initialize;
37
+ private resolveUrlToInspect;
38
+ private selectActors;
39
+ private ensureNavigatedAndLoaded;
40
+ private ensureUrlAndReady;
41
+ private resolveConsoleActor;
42
+ private printHTML;
43
+ private waitForContentScriptInjection;
44
+ private hasVisibleShadowHostContentFirefox;
45
+ /** Align with Chromium: settle root meta / shadow styles before emitting injection telemetry. */
46
+ private shouldEmitFirefoxContentScriptInjected;
47
+ private reopenTabAndResolveActors;
48
+ private waitForContentScriptStyles;
49
+ private handleFileChange;
50
+ private registerContentReloadSnapshotHook;
51
+ apply(compiler: any): void;
52
+ }
@@ -0,0 +1,38 @@
1
+ import type { CompilationLike } from '../../../browsers-types';
2
+ import { RemoteFirefox } from '../remote-firefox';
3
+ import type { BrowserType } from '../../../browsers-types';
4
+ import type { ContentScriptTargetRule } from '../../../browsers-lib/content-script-targets';
5
+ type PluginLike = {
6
+ extension: string | string[];
7
+ browser: BrowserType;
8
+ browserFlags?: string[];
9
+ profile?: string | false;
10
+ preferences?: Record<string, unknown>;
11
+ startingUrl?: string;
12
+ geckoBinary?: string;
13
+ instanceId?: string;
14
+ source?: string | boolean;
15
+ watchSource?: boolean;
16
+ port?: number | string;
17
+ browserVersionLine?: string;
18
+ };
19
+ export declare class FirefoxRDPController {
20
+ private readonly remote;
21
+ private readonly debugPort;
22
+ constructor(plugin: PluginLike, debugPort: number);
23
+ getRemoteFirefox(): RemoteFirefox;
24
+ connect(): Promise<void>;
25
+ ensureLoaded(compilation: CompilationLike): Promise<void>;
26
+ hardReload(compilation: CompilationLike, changedAssets: string[]): Promise<void>;
27
+ reloadMatchingTabsForContentScripts(rules: ContentScriptTargetRule[]): Promise<number>;
28
+ enableUnifiedLogging(opts: {
29
+ level?: string;
30
+ contexts?: string[] | undefined;
31
+ urlFilter?: string | undefined;
32
+ tabFilter?: number | string | undefined;
33
+ format?: 'pretty' | 'json' | 'ndjson';
34
+ timestamps?: boolean;
35
+ color?: boolean;
36
+ }): Promise<void>;
37
+ }
38
+ export { FirefoxRDPController as RDPExtensionController };
@@ -0,0 +1,10 @@
1
+ import type { CompilationLike } from '../../../browsers-types';
2
+ import { MessagingClient } from './messaging-client';
3
+ export declare function getAddonsActorWithRetry(client: MessagingClient, cached: string | undefined, tries?: number, delayMs?: number): Promise<string | undefined>;
4
+ export declare function computeCandidateAddonPaths(compilation: CompilationLike, extensionsToLoad: string[], projectContext?: string): string[];
5
+ export declare function waitForManagerWelcome(client: MessagingClient): Promise<void>;
6
+ export declare function installTemporaryAddon(client: MessagingClient, addonsActor: string, addonPath: string, openDevTools: boolean): Promise<{
7
+ addon?: {
8
+ id?: string;
9
+ };
10
+ } | undefined>;
@@ -0,0 +1 @@
1
+ export declare function resolveAddonDirectory(baseDir: string, inputPath: string): string;
@@ -0,0 +1,18 @@
1
+ interface RdpClientLike {
2
+ request: (payload: unknown) => Promise<unknown>;
3
+ getTargetFromDescriptor?: (descriptorId: string) => Promise<unknown>;
4
+ on?: (event: string, listener: (message: unknown) => void) => unknown;
5
+ off?: (event: string, listener: (message: unknown) => void) => unknown;
6
+ removeListener?: (event: string, listener: (message: unknown) => void) => unknown;
7
+ }
8
+ export declare function evaluate(client: RdpClientLike, tabId: string, expression: string): Promise<any>;
9
+ export declare function evaluateRaw(client: RdpClientLike, tabId: string, expression: string): Promise<unknown>;
10
+ export declare function coerceResponseToString(client: RdpClientLike, tabId: string, response: unknown, opts?: {
11
+ fallbackToFullDocument?: boolean;
12
+ }): Promise<string>;
13
+ export declare function resolveActorForEvaluation(client: RdpClientLike, descriptorActor: string, consoleActorHint?: string): Promise<string>;
14
+ export declare function serializeDocument(client: RdpClientLike, actorToUse: string): Promise<string>;
15
+ export declare function extractShadowContent(client: RdpClientLike, actorToUse: string): Promise<string>;
16
+ export declare function mergeShadowIntoMain(mainHTML: string, shadowContent: string): string;
17
+ export declare function getPageHTML(client: RdpClientLike, descriptorActor: string, consoleActorHint?: string): Promise<string>;
18
+ export {};
@@ -0,0 +1,17 @@
1
+ export declare function printRunningInDevelopmentSummary(candidateAddonPaths: string[], browser: 'firefox', extensionId?: string, browserVersionLine?: string): Promise<boolean>;
2
+ export declare function printSourceInspection(html: string): void;
3
+ export declare function printLogEventPretty(event: {
4
+ id: string;
5
+ timestamp: number;
6
+ level: string;
7
+ context: string;
8
+ messageParts: string[];
9
+ url: string;
10
+ tabId: number | undefined;
11
+ }, color: boolean, colorFns: {
12
+ red: (s: string) => string;
13
+ yellow: (s: string) => string;
14
+ gray: (s: string) => string;
15
+ blue: (s: string) => string;
16
+ }, showTs: boolean): void;
17
+ export declare function printLogEventJson(event: unknown): void;
@@ -0,0 +1,38 @@
1
+ import type { CompilationLike } from '../../../browsers-types';
2
+ import { type PluginInterface } from '../../../browsers-types';
3
+ import { type ContentScriptTargetRule } from '../../../browsers-lib/content-script-targets';
4
+ export declare class RemoteFirefox {
5
+ private readonly options;
6
+ private needsReinstall;
7
+ private client;
8
+ private loggingAttached;
9
+ private cachedAddonsActor;
10
+ private cachedSupportsReload;
11
+ private lastInstalledAddonPath;
12
+ private derivedExtensionId;
13
+ private selectPrimaryAddonPath;
14
+ constructor(configOptions: PluginInterface & {
15
+ browserVersionLine?: string;
16
+ });
17
+ private resolveRdpPort;
18
+ private connectClient;
19
+ installAddons(compilation: CompilationLike): Promise<void>;
20
+ markNeedsReinstall(): void;
21
+ private ensureCapabilities;
22
+ private reloadAddonOrReinstall;
23
+ hardReloadIfNeeded(compilation: CompilationLike, changedAssets: string[]): Promise<void>;
24
+ reloadMatchingTabsForContentScripts(rules: ContentScriptTargetRule[]): Promise<number>;
25
+ inspectSource(compilation: CompilationLike, opts: {
26
+ startingUrl?: string;
27
+ source?: string | boolean;
28
+ }): Promise<void>;
29
+ enableUnifiedLogging(opts: {
30
+ level?: string;
31
+ contexts?: string[] | undefined;
32
+ urlFilter?: string | undefined;
33
+ tabFilter?: number | string | undefined;
34
+ format?: 'pretty' | 'json' | 'ndjson';
35
+ timestamps?: boolean;
36
+ color?: boolean;
37
+ }): Promise<void>;
38
+ }
@@ -0,0 +1,11 @@
1
+ import { MessagingClient } from './messaging-client';
2
+ export declare function attachConsoleListeners(client: MessagingClient): Promise<void>;
3
+ export declare function subscribeUnifiedLogging(client: MessagingClient, opts: {
4
+ level?: string;
5
+ contexts?: string[] | undefined;
6
+ urlFilter?: string | undefined;
7
+ tabFilter?: string;
8
+ format?: 'pretty' | 'json' | 'ndjson';
9
+ timestamps?: boolean;
10
+ color?: boolean;
11
+ }): void;
@@ -0,0 +1,2 @@
1
+ export declare function requestErrorToMessage(error: unknown): string;
2
+ export declare function isErrorWithCode(codeWanted: string | string[], error: unknown): boolean;
@@ -0,0 +1,42 @@
1
+ import EventEmitter from 'events';
2
+ export declare class MessagingClient extends EventEmitter {
3
+ private transport;
4
+ private forwardingSetup;
5
+ private lastPort;
6
+ private reconnecting;
7
+ private disconnectedByUser;
8
+ connect(port: number): Promise<void>;
9
+ disconnect(): void;
10
+ private attemptReconnect;
11
+ request(requestProps: unknown): Promise<unknown>;
12
+ onError(error: Error): void;
13
+ getTargets(): Promise<{
14
+ actor?: string;
15
+ url?: string;
16
+ consoleActor?: string;
17
+ webConsoleActor?: string;
18
+ }[]>;
19
+ navigate(tabId: string, url: string): Promise<void>;
20
+ attach(tabId: string): Promise<unknown>;
21
+ getTargetFromDescriptor(descriptorId: string): Promise<{
22
+ targetActor: string | undefined;
23
+ consoleActor: string | undefined;
24
+ } | {
25
+ targetActor?: undefined;
26
+ consoleActor?: undefined;
27
+ }>;
28
+ addTab(url: string): Promise<unknown>;
29
+ navigateViaScript(consoleActor: string, url: string): Promise<void>;
30
+ waitForPageReady(consoleActor: string, url: string, timeoutMs?: number): Promise<void>;
31
+ waitForLoadEvent(tabId: string): Promise<void>;
32
+ evaluate(tabId: string, expression: string): Promise<any>;
33
+ evaluateRaw(tabId: string, expression: string): Promise<unknown>;
34
+ private coerceResponseToString;
35
+ private resolveActorForEvaluation;
36
+ private serializeDocument;
37
+ private extractShadowContent;
38
+ private mergeShadowIntoMain;
39
+ private isDev;
40
+ getPageHTML(descriptorActor: string, consoleActorHint?: string): Promise<string>;
41
+ closeTab(tabId: string): Promise<void>;
42
+ }
@@ -0,0 +1,2 @@
1
+ import { MessagingClient } from './messaging-client';
2
+ export declare function deriveMozExtensionId(client: MessagingClient): Promise<string | undefined>;
@@ -0,0 +1,29 @@
1
+ import { RdpTransport } from './transport';
2
+ export declare function listTabs(transport: RdpTransport): Promise<{
3
+ actor?: string;
4
+ url?: string;
5
+ consoleActor?: string;
6
+ webConsoleActor?: string;
7
+ }[]>;
8
+ export declare function addTab(transport: RdpTransport, url: string): Promise<unknown>;
9
+ export declare function navigate(transport: RdpTransport, tabId: string, url: string): Promise<void>;
10
+ export declare function attach(transport: RdpTransport, tabId: string): Promise<unknown>;
11
+ export declare function getTargetFromDescriptor(transport: RdpTransport, descriptorId: string): Promise<{
12
+ frame?: {
13
+ actor?: string;
14
+ consoleActor?: string;
15
+ };
16
+ actor?: string;
17
+ target?: {
18
+ actor?: string;
19
+ consoleActor?: string;
20
+ };
21
+ tab?: {
22
+ actor?: string;
23
+ } | string;
24
+ webConsoleActor?: string;
25
+ consoleActor?: string;
26
+ }>;
27
+ export declare function navigateViaScript(transport: RdpTransport, consoleActor: string, url: string): Promise<void>;
28
+ export declare function waitForPageReady(transport: RdpTransport, consoleActor: string, url: string, timeoutMs?: number): Promise<void>;
29
+ export declare function waitForLoadEvent(transport: RdpTransport, tabId: string): Promise<void>;
@@ -0,0 +1,8 @@
1
+ export interface RdpFrameParseResult<T = unknown> {
2
+ remainingData: Buffer;
3
+ parsedMessage?: T;
4
+ error?: Error;
5
+ fatal?: boolean;
6
+ }
7
+ export declare function parseRdpFrame<T = unknown>(data: Buffer): RdpFrameParseResult<T>;
8
+ export declare function buildRdpFrame(obj: unknown): string;
@@ -0,0 +1,5 @@
1
+ import { MessagingClient } from './messaging-client';
2
+ export declare function selectActors(client: MessagingClient, urlToInspect: string): Promise<{
3
+ tabActor: string;
4
+ consoleActor: string;
5
+ }>;
@@ -0,0 +1,2 @@
1
+ import { MessagingClient } from './messaging-client';
2
+ export declare function ensureNavigatedAndLoaded(client: MessagingClient, urlToInspect: string, tabActor: string): Promise<void>;
@@ -0,0 +1,9 @@
1
+ import { MessagingClient } from './messaging-client';
2
+ export declare function ensureTabForUrl(client: MessagingClient, urlToInspect?: string): Promise<{
3
+ actor: string;
4
+ consoleActor?: string;
5
+ } | null>;
6
+ export declare function navigateTo(client: MessagingClient, tabActor: string, consoleActorHint: string | undefined, url: string): Promise<void>;
7
+ export declare function getPageHTML(client: MessagingClient, descriptorActor: string, consoleActorHint?: string): Promise<any>;
8
+ export declare function resolveConsoleActorMethod(client: MessagingClient, tabActor: string, urlToInspect: string): Promise<string>;
9
+ export declare function waitForContentScriptInjectionMethod(client: MessagingClient, consoleActor: string): Promise<boolean>;
@@ -0,0 +1,20 @@
1
+ import EventEmitter from 'events';
2
+ export declare class RdpTransport extends EventEmitter {
3
+ private conn?;
4
+ private incoming;
5
+ private active;
6
+ private pending;
7
+ connect(port: number): Promise<void>;
8
+ disconnect(): void;
9
+ private rejectAll;
10
+ request(payload: any & {
11
+ to?: string;
12
+ }): Promise<unknown>;
13
+ private flush;
14
+ private expectReply;
15
+ private onData;
16
+ private readMessage;
17
+ private handleMessage;
18
+ private onEnd;
19
+ private onTimeout;
20
+ }
@@ -0,0 +1,16 @@
1
+ import type { PluginInterface } from '../browsers-types';
2
+ import type { FirefoxRDPController } from './firefox-source-inspection/rdp-extension-controller';
3
+ /**
4
+ * Narrowed plugin options used through the Firefox flow.
5
+ */
6
+ export type FirefoxPluginLike = Pick<PluginInterface, 'extension' | 'browserFlags' | 'profile' | 'preferences' | 'startingUrl' | 'geckoBinary' | 'instanceId' | 'watchSource' | 'sourceFormat' | 'sourceSummary' | 'sourceMeta' | 'sourceProbe' | 'sourceTree' | 'sourceConsole' | 'sourceDom' | 'sourceMaxBytes' | 'sourceRedact' | 'sourceIncludeShadow' | 'sourceDiff' | 'port' | 'logLevel' | 'logContexts' | 'logFormat' | 'logTimestamps' | 'logColor' | 'logUrl' | 'logTab' | 'dryRun'> & {
7
+ browser: PluginInterface['browser'];
8
+ source?: string | boolean;
9
+ };
10
+ /**
11
+ * Runtime state in Firefox flow.
12
+ */
13
+ export interface FirefoxPluginRuntime extends FirefoxPluginLike {
14
+ rdpController?: FirefoxRDPController;
15
+ browserVersionLine?: string;
16
+ }
@@ -0,0 +1,14 @@
1
+ import type { FirefoxContext } from '../firefox-context';
2
+ /**
3
+ * FirefoxUnifiedLoggerPlugin
4
+ *
5
+ * Responsibilities:
6
+ * - Wait for RDP controller readiness; enable unified logging
7
+ * - Respect level/contexts/filters/format/timestamps/color
8
+ */
9
+ export declare class FirefoxUnifiedLoggerPlugin {
10
+ private readonly options;
11
+ private readonly ctx;
12
+ constructor(options: FirefoxUnifiedLoggerPlugin['options'], ctx: FirefoxContext);
13
+ apply(_compiler: any): void;
14
+ }
@@ -0,0 +1,22 @@
1
+ import type { BrowserType } from './browsers-types';
2
+ type PreviewRunOptions = {
3
+ browser: BrowserType;
4
+ outPath: string;
5
+ contextDir: string;
6
+ extensionsToLoad: string[];
7
+ noOpen?: boolean;
8
+ profile?: string | false;
9
+ persistProfile?: boolean;
10
+ preferences?: Record<string, unknown>;
11
+ browserFlags?: string[];
12
+ excludeBrowserFlags?: string[];
13
+ startingUrl?: string;
14
+ chromiumBinary?: string;
15
+ geckoBinary?: string;
16
+ instanceId?: string;
17
+ port?: number | string;
18
+ dryRun?: boolean;
19
+ readyPath?: string;
20
+ };
21
+ export declare function runOnlyPreviewBrowser(opts: PreviewRunOptions): Promise<void>;
22
+ export {};
@@ -0,0 +1,9 @@
1
+ export declare function resolveExtensionDevelopRoot(startDir?: string): string;
2
+ export declare function resolveExtensionDevelopVersion(startDir?: string, fallbackVersion?: string): string;
3
+ export declare function loadExtensionDevelopModule<T = any>(startDir?: string): T;
4
+ /**
5
+ * Load only the lightweight preview entry from extension-develop.
6
+ * This avoids pulling in rspack and the full build toolchain, making
7
+ * `extension preview` start significantly faster.
8
+ */
9
+ export declare function loadExtensionDevelopPreviewModule<T = any>(startDir?: string): T;
@@ -1,4 +1,3 @@
1
- export declare function resolveModuleEntry(modulePath: string, pkgJson: any): string | undefined;
2
1
  export type Browser = 'chrome' | 'edge' | 'firefox' | 'chromium' | 'chromium-based' | 'gecko-based' | 'firefox-based';
3
2
  export declare function parseOptionalBoolean(value?: string): boolean;
4
3
  export declare const vendors: (browser?: Browser | "all") => string[];
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/extension-js/extension.js.git",
7
- "directory": "programs/cli"
7
+ "directory": "programs/extension"
8
8
  },
9
9
  "engines": {
10
10
  "node": ">=18"
@@ -15,6 +15,11 @@
15
15
  "import": "./dist/cli.cjs",
16
16
  "require": "./dist/cli.cjs"
17
17
  },
18
+ "./browsers": {
19
+ "types": "./dist/browsers.d.ts",
20
+ "import": "./dist/browsers.cjs",
21
+ "require": "./dist/browsers.cjs"
22
+ },
18
23
  "./types": {
19
24
  "types": "./types/index.d.ts"
20
25
  },
@@ -33,7 +38,7 @@
33
38
  "extension": "./bin/extension.cjs"
34
39
  },
35
40
  "name": "extension",
36
- "version": "3.12.0",
41
+ "version": "3.12.2",
37
42
  "description": "Create cross-browser extensions with no build configuration.",
38
43
  "homepage": "https://extension.js.org/",
39
44
  "bugs": {
@@ -90,21 +95,26 @@
90
95
  "@types/chrome": "^0.1.33",
91
96
  "@types/node": "^25.2.0",
92
97
  "@types/webextension-polyfill": "0.12.4",
93
- "extension-create": "3.12.0",
94
- "extension-develop": "3.12.0",
95
- "extension-install": "3.12.0",
98
+ "chrome-location2": "4.0.0",
99
+ "chromium-location": "2.0.0",
100
+ "cross-spawn": "^7.0.6",
101
+ "edge-location": "2.2.0",
102
+ "firefox-location2": "3.0.0",
103
+ "extension-create": "3.12.2",
104
+ "extension-develop": "3.12.2",
105
+ "extension-install": "3.12.2",
96
106
  "commander": "^14.0.3",
97
107
  "pintor": "0.3.0",
98
108
  "semver": "^7.7.3",
109
+ "unique-names-generator": "^4.7.1",
110
+ "ws": "^8.19.0",
99
111
  "update-check": "^1.5.4"
100
112
  },
101
113
  "devDependencies": {
102
114
  "@rslib/core": "^0.19.4",
103
- "@types/react": "^19.2.8",
104
- "@types/react-dom": "^19.2.3",
105
- "@types/mock-fs": "^4.13.4",
115
+ "@types/cross-spawn": "^6.0.6",
106
116
  "@types/semver": "^7.7.1",
107
- "mock-fs": "^5.5.0",
117
+ "@types/ws": "^8.18.1",
108
118
  "webextension-polyfill": "^0.12.0",
109
119
  "tsconfig": "*",
110
120
  "typescript": "6.0.2",
@@ -1,3 +0,0 @@
1
- export declare function resolveExtensionDevelopRoot(startDir?: string): string;
2
- export declare function resolveExtensionDevelopVersion(startDir?: string, fallbackVersion?: string): string;
3
- export declare function loadExtensionDevelopModule<T = any>(startDir?: string): T;
File without changes
File without changes