adnbn 0.6.1 → 0.7.1
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.
- package/README.md +27 -47
- package/dist/cli/builders/csp/AbstractCsp.d.ts +9 -0
- package/dist/cli/builders/csp/AbstractCsp.js +26 -0
- package/dist/cli/builders/csp/AbstractCsp.js.map +1 -0
- package/dist/cli/builders/csp/Csp.d.ts +8 -0
- package/dist/cli/builders/csp/Csp.js +39 -0
- package/dist/cli/builders/csp/Csp.js.map +1 -0
- package/dist/cli/builders/csp/SandboxCsp.d.ts +11 -0
- package/dist/cli/builders/csp/SandboxCsp.js +62 -0
- package/dist/cli/builders/csp/SandboxCsp.js.map +1 -0
- package/dist/cli/builders/csp/index.d.ts +3 -0
- package/dist/cli/builders/csp/index.js +7 -0
- package/dist/cli/builders/csp/index.js.map +1 -0
- package/dist/cli/builders/csp/types.d.ts +4 -0
- package/dist/cli/builders/csp/types.js +1 -0
- package/dist/cli/builders/csp/types.js.map +1 -0
- package/dist/cli/builders/manifest/ManifestBase.d.ts +16 -1
- package/dist/cli/builders/manifest/ManifestBase.js +49 -0
- package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
- package/dist/cli/builders/manifest/ManifestV2.d.ts +2 -0
- package/dist/cli/builders/manifest/ManifestV2.js +31 -1
- package/dist/cli/builders/manifest/ManifestV2.js.map +1 -1
- package/dist/cli/builders/manifest/ManifestV3.d.ts +2 -0
- package/dist/cli/builders/manifest/ManifestV3.js +67 -0
- package/dist/cli/builders/manifest/ManifestV3.js.map +1 -1
- package/dist/cli/entrypoint/file/injectors/core.js +26 -0
- package/dist/cli/entrypoint/file/injectors/core.js.map +1 -1
- package/dist/cli/entrypoint/file/parsers/TypeResolver.d.ts +4 -0
- package/dist/cli/entrypoint/file/parsers/TypeResolver.js +7 -1
- package/dist/cli/entrypoint/file/parsers/TypeResolver.js.map +1 -1
- package/dist/cli/entrypoint/file/resolvers/ImportResolver.js +1 -1
- package/dist/cli/entrypoint/file/resolvers/ImportResolver.js.map +1 -1
- package/dist/cli/entrypoint/finder/OffscreenViewFinder.d.ts +2 -2
- package/dist/cli/entrypoint/finder/OffscreenViewFinder.js +2 -2
- package/dist/cli/entrypoint/finder/OffscreenViewFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/PageFinder.d.ts +2 -2
- package/dist/cli/entrypoint/finder/PageFinder.js +3 -3
- package/dist/cli/entrypoint/finder/PageFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/PopupFinder.d.ts +2 -2
- package/dist/cli/entrypoint/finder/PopupFinder.js +2 -2
- package/dist/cli/entrypoint/finder/PopupFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/SandboxFinder.d.ts +11 -0
- package/dist/cli/entrypoint/finder/SandboxFinder.js +25 -0
- package/dist/cli/entrypoint/finder/SandboxFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/SandboxViewFinder.d.ts +15 -0
- package/dist/cli/entrypoint/finder/SandboxViewFinder.js +33 -0
- package/dist/cli/entrypoint/finder/SandboxViewFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/SidebarFinder.d.ts +2 -2
- package/dist/cli/entrypoint/finder/SidebarFinder.js +2 -2
- package/dist/cli/entrypoint/finder/SidebarFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/ViewCspFinder.d.ts +11 -0
- package/dist/cli/entrypoint/finder/ViewCspFinder.js +24 -0
- package/dist/cli/entrypoint/finder/ViewCspFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/index.d.ts +3 -0
- package/dist/cli/entrypoint/finder/index.js +34 -28
- package/dist/cli/entrypoint/finder/index.js.map +1 -1
- package/dist/cli/entrypoint/parser/OffscreenParser.d.ts +2 -2
- package/dist/cli/entrypoint/parser/OffscreenParser.js +2 -2
- package/dist/cli/entrypoint/parser/OffscreenParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/PageParser.d.ts +2 -2
- package/dist/cli/entrypoint/parser/PageParser.js +2 -2
- package/dist/cli/entrypoint/parser/PageParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/PopupParser.d.ts +2 -2
- package/dist/cli/entrypoint/parser/PopupParser.js +2 -2
- package/dist/cli/entrypoint/parser/PopupParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/SandboxParser.d.ts +7 -0
- package/dist/cli/entrypoint/parser/SandboxParser.js +42 -0
- package/dist/cli/entrypoint/parser/SandboxParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/SidebarParser.d.ts +2 -2
- package/dist/cli/entrypoint/parser/SidebarParser.js +2 -2
- package/dist/cli/entrypoint/parser/SidebarParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/ViewCspParser.d.ts +9 -0
- package/dist/cli/entrypoint/parser/ViewCspParser.js +26 -0
- package/dist/cli/entrypoint/parser/ViewCspParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/ViewParser.d.ts +80 -80
- package/dist/cli/entrypoint/parser/index.d.ts +1 -0
- package/dist/cli/entrypoint/parser/index.js +8 -6
- package/dist/cli/entrypoint/parser/index.js.map +1 -1
- package/dist/cli/plugins/index.d.ts +2 -1
- package/dist/cli/plugins/index.js +14 -12
- package/dist/cli/plugins/index.js.map +1 -1
- package/dist/cli/plugins/offscreen/index.js +1 -0
- package/dist/cli/plugins/offscreen/index.js.map +1 -1
- package/dist/cli/plugins/page/index.js +1 -1
- package/dist/cli/plugins/page/index.js.map +1 -1
- package/dist/cli/plugins/popup/index.js +1 -1
- package/dist/cli/plugins/popup/index.js.map +1 -1
- package/dist/cli/plugins/sandbox/Sandbox.d.ts +15 -0
- package/dist/cli/plugins/sandbox/Sandbox.js +52 -0
- package/dist/cli/plugins/sandbox/Sandbox.js.map +1 -0
- package/dist/cli/plugins/sandbox/SandboxDeclaration.d.ts +5 -0
- package/dist/cli/plugins/sandbox/SandboxDeclaration.js +10 -0
- package/dist/cli/plugins/sandbox/SandboxDeclaration.js.map +1 -0
- package/dist/cli/plugins/sandbox/index.d.ts +2 -0
- package/dist/cli/plugins/sandbox/index.js +63 -0
- package/dist/cli/plugins/sandbox/index.js.map +1 -0
- package/dist/cli/plugins/sidebar/index.js +1 -0
- package/dist/cli/plugins/sidebar/index.js.map +1 -1
- package/dist/cli/plugins/style/index.d.ts +2 -0
- package/dist/cli/plugins/{style.js → style/index.js} +18 -21
- package/dist/cli/plugins/style/index.js.map +1 -0
- package/dist/cli/plugins/style/utils.d.ts +1 -0
- package/dist/cli/plugins/style/utils.js +86 -0
- package/dist/cli/plugins/style/utils.js.map +1 -0
- package/dist/cli/plugins/typescript/declaration/transport/TransportDeclaration.d.ts +2 -1
- package/dist/cli/plugins/typescript/declaration/transport/TransportDeclaration.js +1 -0
- package/dist/cli/plugins/typescript/declaration/transport/TransportDeclaration.js.map +1 -1
- package/dist/cli/resolvers/config.js +4 -0
- package/dist/cli/resolvers/config.js.map +1 -1
- package/dist/cli/virtual/index.d.ts +1 -0
- package/dist/cli/virtual/index.js +8 -1
- package/dist/cli/virtual/sandbox.d.ts +1 -0
- package/dist/cli/virtual/virtual.d.ts +27 -0
- package/dist/entry/sandbox/Builder.d.ts +15 -0
- package/dist/entry/sandbox/Builder.js +51 -0
- package/dist/entry/sandbox/Builder.js.map +1 -0
- package/dist/entry/sandbox/TransportBuilder.d.ts +8 -0
- package/dist/entry/sandbox/TransportBuilder.js +15 -0
- package/dist/entry/sandbox/TransportBuilder.js.map +1 -0
- package/dist/entry/sandbox/index.d.ts +2 -0
- package/dist/entry/sandbox/index.js +7 -0
- package/dist/entry/sandbox/index.js.map +1 -0
- package/dist/frame/ReadyFrame.d.ts +25 -0
- package/dist/frame/ReadyFrame.js +86 -0
- package/dist/frame/ReadyFrame.js.map +1 -0
- package/dist/frame/index.d.ts +2 -0
- package/dist/frame/index.js +5 -0
- package/dist/frame/index.js.map +1 -0
- package/dist/main/csp.d.ts +2 -0
- package/dist/main/csp.js +5 -0
- package/dist/main/csp.js.map +1 -0
- package/dist/main/index.d.ts +2 -0
- package/dist/main/index.js +2 -0
- package/dist/main/index.js.map +1 -1
- package/dist/main/sandbox.d.ts +9 -0
- package/dist/main/sandbox.js +29 -0
- package/dist/main/sandbox.js.map +1 -0
- package/dist/message/MessageManager.d.ts +0 -3
- package/dist/message/MessageManager.js +2 -24
- package/dist/message/MessageManager.js.map +1 -1
- package/dist/message/error.d.ts +12 -0
- package/dist/message/error.js +55 -0
- package/dist/message/error.js.map +1 -0
- package/dist/message/providers/Message.d.ts +0 -2
- package/dist/message/providers/Message.js +2 -28
- package/dist/message/providers/Message.js.map +1 -1
- package/dist/offscreen/OffscreenBridge.d.ts +1 -3
- package/dist/offscreen/OffscreenBridge.js +12 -56
- package/dist/offscreen/OffscreenBridge.js.map +1 -1
- package/dist/sandbox/SandboxFrame.d.ts +6 -0
- package/dist/sandbox/SandboxFrame.js +31 -0
- package/dist/sandbox/SandboxFrame.js.map +1 -0
- package/dist/sandbox/SandboxManager.d.ts +5 -0
- package/dist/sandbox/SandboxManager.js +12 -0
- package/dist/sandbox/SandboxManager.js.map +1 -0
- package/dist/sandbox/SandboxMessage.d.ts +30 -0
- package/dist/sandbox/SandboxMessage.js +127 -0
- package/dist/sandbox/SandboxMessage.js.map +1 -0
- package/dist/sandbox/index.d.ts +7 -0
- package/dist/sandbox/index.js +6 -0
- package/dist/sandbox/index.js.map +1 -0
- package/dist/sandbox/ports/SandboxHost.d.ts +21 -0
- package/dist/sandbox/ports/SandboxHost.js +58 -0
- package/dist/sandbox/ports/SandboxHost.js.map +1 -0
- package/dist/sandbox/ports/SandboxInner.d.ts +17 -0
- package/dist/sandbox/ports/SandboxInner.js +45 -0
- package/dist/sandbox/ports/SandboxInner.js.map +1 -0
- package/dist/sandbox/ports/SandboxMemory.d.ts +4 -0
- package/dist/sandbox/ports/SandboxMemory.js +42 -0
- package/dist/sandbox/ports/SandboxMemory.js.map +1 -0
- package/dist/sandbox/ports/index.d.ts +3 -0
- package/dist/sandbox/ports/index.js +9 -0
- package/dist/sandbox/ports/index.js.map +1 -0
- package/dist/sandbox/providers/ProxySandbox.d.ts +10 -0
- package/dist/sandbox/providers/ProxySandbox.js +20 -0
- package/dist/sandbox/providers/ProxySandbox.js.map +1 -0
- package/dist/sandbox/providers/RegisterSandbox.d.ts +9 -0
- package/dist/sandbox/providers/RegisterSandbox.js +28 -0
- package/dist/sandbox/providers/RegisterSandbox.js.map +1 -0
- package/dist/sandbox/providers/index.d.ts +2 -0
- package/dist/sandbox/providers/index.js +7 -0
- package/dist/sandbox/providers/index.js.map +1 -0
- package/dist/sandbox/utils.d.ts +4 -0
- package/dist/sandbox/utils.js +10 -0
- package/dist/sandbox/utils.js.map +1 -0
- package/dist/transport/RegisterTransport.d.ts +4 -2
- package/dist/transport/RegisterTransport.js +8 -1
- package/dist/transport/RegisterTransport.js.map +1 -1
- package/dist/transport/TransportMessage.d.ts +1 -1
- package/dist/transport/TransportMessage.js +1 -1
- package/dist/transport/TransportMessage.js.map +1 -1
- package/dist/types/config.d.ts +7 -0
- package/dist/types/csp.d.ts +34 -0
- package/dist/types/csp.js +12 -0
- package/dist/types/csp.js.map +1 -0
- package/dist/types/entrypoint.d.ts +2 -1
- package/dist/types/entrypoint.js +1 -0
- package/dist/types/entrypoint.js.map +1 -1
- package/dist/types/manifest.d.ts +10 -0
- package/dist/types/manifest.js.map +1 -1
- package/dist/types/offscreen.d.ts +2 -1
- package/dist/types/offscreen.js.map +1 -1
- package/dist/types/page.d.ts +2 -1
- package/dist/types/plugin.d.ts +2 -1
- package/dist/types/popup.d.ts +2 -1
- package/dist/types/sandbox.d.ts +97 -0
- package/dist/types/sandbox.js +34 -0
- package/dist/types/sandbox.js.map +1 -0
- package/dist/types/sidebar.d.ts +2 -1
- package/dist/types/sidebar.js.map +1 -1
- package/dist/types/transport.d.ts +6 -2
- package/package.json +15 -6
- package/dist/cli/plugins/style.d.ts +0 -2
- package/dist/cli/plugins/style.js.map +0 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { TransportConfig, TransportDefinition, TransportType } from "./transport.js";
|
|
2
|
+
import { ViewOptions } from "./view.js";
|
|
3
|
+
import { Awaiter } from "./helpers.js";
|
|
4
|
+
import { MessageError, MessageSender } from "./message.js";
|
|
5
|
+
export declare const SandboxGlobalKey = "adnbnSandbox";
|
|
6
|
+
export declare const SandboxGlobalAccess = "adnbnSandboxAccess";
|
|
7
|
+
export declare const SandboxNamespace = "adnbn:sandbox";
|
|
8
|
+
export declare const SandboxReadyMessageType = "adnbn:sandbox:ready";
|
|
9
|
+
export declare const SandboxRequestMessageType = "adnbn:sandbox:request";
|
|
10
|
+
export declare const SandboxResponseMessageType = "adnbn:sandbox:response";
|
|
11
|
+
export declare enum SandboxAllow {
|
|
12
|
+
Forms = "forms",
|
|
13
|
+
Popups = "popups",
|
|
14
|
+
Modals = "modals",
|
|
15
|
+
Downloads = "downloads",
|
|
16
|
+
PointerLock = "pointer-lock",
|
|
17
|
+
TopNavigationByUserActivation = "top-navigation-by-user-activation"
|
|
18
|
+
}
|
|
19
|
+
export declare enum SandboxSource {
|
|
20
|
+
Self = "'self'",
|
|
21
|
+
None = "'none'",
|
|
22
|
+
Data = "data:",
|
|
23
|
+
Blob = "blob:",
|
|
24
|
+
UnsafeInline = "'unsafe-inline'"
|
|
25
|
+
}
|
|
26
|
+
export interface SandboxCspSources {
|
|
27
|
+
connect?: Array<SandboxSource | `${SandboxSource}`>;
|
|
28
|
+
image?: Array<SandboxSource | `${SandboxSource}`>;
|
|
29
|
+
style?: Array<SandboxSource | `${SandboxSource}`>;
|
|
30
|
+
font?: Array<SandboxSource | `${SandboxSource}`>;
|
|
31
|
+
media?: Array<SandboxSource | `${SandboxSource}`>;
|
|
32
|
+
worker?: Array<SandboxSource | `${SandboxSource}`>;
|
|
33
|
+
child?: Array<SandboxSource | `${SandboxSource}`>;
|
|
34
|
+
}
|
|
35
|
+
export interface SandboxCspConfig {
|
|
36
|
+
eval?: boolean;
|
|
37
|
+
inline?: boolean;
|
|
38
|
+
allow?: Array<SandboxAllow | `${SandboxAllow}`>;
|
|
39
|
+
sources?: SandboxCspSources;
|
|
40
|
+
}
|
|
41
|
+
export interface SandboxCspOptions {
|
|
42
|
+
csp?: SandboxCspConfig;
|
|
43
|
+
}
|
|
44
|
+
export interface SandboxConfig extends TransportConfig {
|
|
45
|
+
readyTimeout?: number;
|
|
46
|
+
requestTimeout?: number;
|
|
47
|
+
removeOnRequestTimeout?: boolean;
|
|
48
|
+
}
|
|
49
|
+
export type SandboxOptions = SandboxConfig & SandboxCspOptions & ViewOptions;
|
|
50
|
+
export type SandboxEntrypointOptions = Partial<SandboxOptions>;
|
|
51
|
+
export type SandboxMainHandler<T extends TransportType> = (sandbox: T, options: SandboxEntrypointOptions) => Awaiter<void>;
|
|
52
|
+
export interface SandboxDefinition<T extends TransportType> extends TransportDefinition<SandboxOptions, T>, SandboxEntrypointOptions {
|
|
53
|
+
main?: SandboxMainHandler<T>;
|
|
54
|
+
}
|
|
55
|
+
export type SandboxUnresolvedDefinition<T extends TransportType> = Partial<SandboxDefinition<T>>;
|
|
56
|
+
export type SandboxParameters = {
|
|
57
|
+
url: string;
|
|
58
|
+
} & Pick<SandboxConfig, "readyTimeout" | "requestTimeout" | "removeOnRequestTimeout">;
|
|
59
|
+
export interface SandboxReadyMessage {
|
|
60
|
+
type: typeof SandboxReadyMessageType;
|
|
61
|
+
channel: string;
|
|
62
|
+
name: string;
|
|
63
|
+
}
|
|
64
|
+
export interface SandboxRequestMessage {
|
|
65
|
+
type: typeof SandboxRequestMessageType;
|
|
66
|
+
channel: string;
|
|
67
|
+
name: string;
|
|
68
|
+
requestId: string;
|
|
69
|
+
path?: string;
|
|
70
|
+
args: any[];
|
|
71
|
+
}
|
|
72
|
+
export interface SandboxResponseMessage {
|
|
73
|
+
type: typeof SandboxResponseMessageType;
|
|
74
|
+
channel: string;
|
|
75
|
+
name: string;
|
|
76
|
+
requestId: string;
|
|
77
|
+
ok: boolean;
|
|
78
|
+
payload?: any;
|
|
79
|
+
error?: MessageError;
|
|
80
|
+
}
|
|
81
|
+
export type SandboxEnvelope = SandboxRequestMessage | SandboxResponseMessage;
|
|
82
|
+
/**
|
|
83
|
+
* Internal seam for the sandbox wire. Lives below `SandboxMessage`, invisible to callers.
|
|
84
|
+
*
|
|
85
|
+
* - `connect` establishes the channel (host: create the iframe and await the ready
|
|
86
|
+
* handshake; sandbox/in-memory: resolves immediately). Must be idempotent — concurrent
|
|
87
|
+
* callers share one connection.
|
|
88
|
+
* - `post` sends one already-built envelope to the peer.
|
|
89
|
+
* - `subscribe` attaches exactly one underlying listener and returns its remover.
|
|
90
|
+
* - `dispose` tears the channel down (remove listener, drop the iframe).
|
|
91
|
+
*/
|
|
92
|
+
export interface SandboxPort {
|
|
93
|
+
connect(): Promise<void>;
|
|
94
|
+
post(message: SandboxEnvelope): void;
|
|
95
|
+
subscribe(onMessage: (message: SandboxEnvelope, sender: MessageSender) => void): () => void;
|
|
96
|
+
dispose(): void;
|
|
97
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const SandboxGlobalKey = "adnbnSandbox";
|
|
2
|
+
const SandboxGlobalAccess = "adnbnSandboxAccess";
|
|
3
|
+
const SandboxNamespace = "adnbn:sandbox";
|
|
4
|
+
const SandboxReadyMessageType = `${SandboxNamespace}:ready`;
|
|
5
|
+
const SandboxRequestMessageType = `${SandboxNamespace}:request`;
|
|
6
|
+
const SandboxResponseMessageType = `${SandboxNamespace}:response`;
|
|
7
|
+
var SandboxAllow = /* @__PURE__ */ ((SandboxAllow2) => {
|
|
8
|
+
SandboxAllow2["Forms"] = "forms";
|
|
9
|
+
SandboxAllow2["Popups"] = "popups";
|
|
10
|
+
SandboxAllow2["Modals"] = "modals";
|
|
11
|
+
SandboxAllow2["Downloads"] = "downloads";
|
|
12
|
+
SandboxAllow2["PointerLock"] = "pointer-lock";
|
|
13
|
+
SandboxAllow2["TopNavigationByUserActivation"] = "top-navigation-by-user-activation";
|
|
14
|
+
return SandboxAllow2;
|
|
15
|
+
})(SandboxAllow || {});
|
|
16
|
+
var SandboxSource = /* @__PURE__ */ ((SandboxSource2) => {
|
|
17
|
+
SandboxSource2["Self"] = "'self'";
|
|
18
|
+
SandboxSource2["None"] = "'none'";
|
|
19
|
+
SandboxSource2["Data"] = "data:";
|
|
20
|
+
SandboxSource2["Blob"] = "blob:";
|
|
21
|
+
SandboxSource2["UnsafeInline"] = "'unsafe-inline'";
|
|
22
|
+
return SandboxSource2;
|
|
23
|
+
})(SandboxSource || {});
|
|
24
|
+
export {
|
|
25
|
+
SandboxAllow,
|
|
26
|
+
SandboxGlobalAccess,
|
|
27
|
+
SandboxGlobalKey,
|
|
28
|
+
SandboxNamespace,
|
|
29
|
+
SandboxReadyMessageType,
|
|
30
|
+
SandboxRequestMessageType,
|
|
31
|
+
SandboxResponseMessageType,
|
|
32
|
+
SandboxSource
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=sandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/sandbox.ts"],"sourcesContent":["import {TransportConfig, TransportDefinition, TransportType} from \"@typing/transport\";\nimport {ViewOptions} from \"@typing/view\";\nimport {Awaiter} from \"@typing/helpers\";\nimport {MessageError, MessageSender} from \"@typing/message\";\n\nexport const SandboxGlobalKey = \"adnbnSandbox\";\nexport const SandboxGlobalAccess = \"adnbnSandboxAccess\";\nexport const SandboxNamespace = \"adnbn:sandbox\";\nexport const SandboxReadyMessageType = `${SandboxNamespace}:ready`;\nexport const SandboxRequestMessageType = `${SandboxNamespace}:request`;\nexport const SandboxResponseMessageType = `${SandboxNamespace}:response`;\n\nexport enum SandboxAllow {\n Forms = \"forms\",\n Popups = \"popups\",\n Modals = \"modals\",\n Downloads = \"downloads\",\n PointerLock = \"pointer-lock\",\n TopNavigationByUserActivation = \"top-navigation-by-user-activation\",\n}\n\nexport enum SandboxSource {\n Self = \"'self'\",\n None = \"'none'\",\n Data = \"data:\",\n Blob = \"blob:\",\n UnsafeInline = \"'unsafe-inline'\",\n}\n\nexport interface SandboxCspSources {\n connect?: Array<SandboxSource | `${SandboxSource}`>;\n image?: Array<SandboxSource | `${SandboxSource}`>;\n style?: Array<SandboxSource | `${SandboxSource}`>;\n font?: Array<SandboxSource | `${SandboxSource}`>;\n media?: Array<SandboxSource | `${SandboxSource}`>;\n worker?: Array<SandboxSource | `${SandboxSource}`>;\n child?: Array<SandboxSource | `${SandboxSource}`>;\n}\n\nexport interface SandboxCspConfig {\n eval?: boolean;\n inline?: boolean;\n allow?: Array<SandboxAllow | `${SandboxAllow}`>;\n sources?: SandboxCspSources;\n}\n\nexport interface SandboxCspOptions {\n csp?: SandboxCspConfig;\n}\n\nexport interface SandboxConfig extends TransportConfig {\n readyTimeout?: number;\n requestTimeout?: number;\n removeOnRequestTimeout?: boolean;\n}\n\nexport type SandboxOptions = SandboxConfig & SandboxCspOptions & ViewOptions;\n\nexport type SandboxEntrypointOptions = Partial<SandboxOptions>;\n\nexport type SandboxMainHandler<T extends TransportType> = (\n sandbox: T,\n options: SandboxEntrypointOptions\n) => Awaiter<void>;\n\nexport interface SandboxDefinition<T extends TransportType>\n extends TransportDefinition<SandboxOptions, T>, SandboxEntrypointOptions {\n main?: SandboxMainHandler<T>;\n}\n\nexport type SandboxUnresolvedDefinition<T extends TransportType> = Partial<SandboxDefinition<T>>;\n\nexport type SandboxParameters = {url: string} & Pick<\n SandboxConfig,\n \"readyTimeout\" | \"requestTimeout\" | \"removeOnRequestTimeout\"\n>;\n\nexport interface SandboxReadyMessage {\n type: typeof SandboxReadyMessageType;\n channel: string;\n name: string;\n}\n\nexport interface SandboxRequestMessage {\n type: typeof SandboxRequestMessageType;\n channel: string;\n name: string;\n requestId: string;\n path?: string;\n args: any[];\n}\n\nexport interface SandboxResponseMessage {\n type: typeof SandboxResponseMessageType;\n channel: string;\n name: string;\n requestId: string;\n ok: boolean;\n payload?: any;\n error?: MessageError;\n}\n\nexport type SandboxEnvelope = SandboxRequestMessage | SandboxResponseMessage;\n\n/**\n * Internal seam for the sandbox wire. Lives below `SandboxMessage`, invisible to callers.\n *\n * - `connect` establishes the channel (host: create the iframe and await the ready\n * handshake; sandbox/in-memory: resolves immediately). Must be idempotent — concurrent\n * callers share one connection.\n * - `post` sends one already-built envelope to the peer.\n * - `subscribe` attaches exactly one underlying listener and returns its remover.\n * - `dispose` tears the channel down (remove listener, drop the iframe).\n */\nexport interface SandboxPort {\n connect(): Promise<void>;\n\n post(message: SandboxEnvelope): void;\n\n subscribe(onMessage: (message: SandboxEnvelope, sender: MessageSender) => void): () => void;\n\n dispose(): void;\n}\n"],"mappings":"AAKO,MAAM,mBAAmB;AACzB,MAAM,sBAAsB;AAC5B,MAAM,mBAAmB;AACzB,MAAM,0BAA0B,GAAG,gBAAgB;AACnD,MAAM,4BAA4B,GAAG,gBAAgB;AACrD,MAAM,6BAA6B,GAAG,gBAAgB;AAEtD,IAAK,eAAL,kBAAKA,kBAAL;AACH,EAAAA,cAAA,WAAQ;AACR,EAAAA,cAAA,YAAS;AACT,EAAAA,cAAA,YAAS;AACT,EAAAA,cAAA,eAAY;AACZ,EAAAA,cAAA,iBAAc;AACd,EAAAA,cAAA,mCAAgC;AANxB,SAAAA;AAAA,GAAA;AASL,IAAK,gBAAL,kBAAKC,mBAAL;AACH,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,kBAAe;AALP,SAAAA;AAAA,GAAA;","names":["SandboxAllow","SandboxSource"]}
|
package/dist/types/sidebar.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ViewDefinition, ViewOptions } from "./view.js";
|
|
2
2
|
import { Browser } from "./browser.js";
|
|
3
|
+
import { CspOptions } from "./csp.js";
|
|
3
4
|
export declare const SidebarAlternativeBrowsers: ReadonlySet<Browser>;
|
|
4
5
|
export interface SidebarConfig {
|
|
5
6
|
icon?: string;
|
|
6
7
|
apply?: boolean;
|
|
7
8
|
}
|
|
8
|
-
export type SidebarEntrypointOptions = SidebarConfig & ViewOptions;
|
|
9
|
+
export type SidebarEntrypointOptions = SidebarConfig & CspOptions & ViewOptions;
|
|
9
10
|
export type SidebarProps = SidebarEntrypointOptions;
|
|
10
11
|
export type SidebarDefinition = SidebarEntrypointOptions & ViewDefinition<SidebarProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/types/sidebar.ts"],"sourcesContent":["import {ViewDefinition, ViewOptions} from \"@typing/view\";\nimport {Browser} from \"@typing/browser\";\n\nexport const SidebarAlternativeBrowsers: ReadonlySet<Browser> = new Set([Browser.Opera, Browser.Firefox]);\n\nexport interface SidebarConfig {\n icon?: string;\n apply?: boolean;\n}\n\nexport type SidebarEntrypointOptions = SidebarConfig & ViewOptions;\n\nexport type SidebarProps = SidebarEntrypointOptions;\n\nexport type SidebarDefinition = SidebarEntrypointOptions & ViewDefinition<SidebarProps>;\n"],"mappings":"AACA,SAAQ,eAAc;
|
|
1
|
+
{"version":3,"sources":["../../src/types/sidebar.ts"],"sourcesContent":["import {ViewDefinition, ViewOptions} from \"@typing/view\";\nimport {Browser} from \"@typing/browser\";\nimport {CspOptions} from \"@typing/csp\";\n\nexport const SidebarAlternativeBrowsers: ReadonlySet<Browser> = new Set([Browser.Opera, Browser.Firefox]);\n\nexport interface SidebarConfig {\n icon?: string;\n apply?: boolean;\n}\n\nexport type SidebarEntrypointOptions = SidebarConfig & CspOptions & ViewOptions;\n\nexport type SidebarProps = SidebarEntrypointOptions;\n\nexport type SidebarDefinition = SidebarEntrypointOptions & ViewDefinition<SidebarProps>;\n"],"mappings":"AACA,SAAQ,eAAc;AAGf,MAAM,6BAAmD,oBAAI,IAAI,CAAC,QAAQ,OAAO,QAAQ,OAAO,CAAC;","names":[]}
|
|
@@ -22,9 +22,13 @@ export interface TransportMessageData {
|
|
|
22
22
|
path?: string;
|
|
23
23
|
args: any[];
|
|
24
24
|
}
|
|
25
|
-
export interface
|
|
25
|
+
export interface TransportReceiver {
|
|
26
|
+
watch(handler: (data: TransportMessageData, sender: MessageSender) => any): () => void;
|
|
27
|
+
}
|
|
28
|
+
export interface TransportSender {
|
|
26
29
|
send(data: TransportMessageData, options?: MessageSendOptions): any;
|
|
27
|
-
|
|
30
|
+
}
|
|
31
|
+
export interface TransportMessage extends TransportSender, TransportReceiver {
|
|
28
32
|
}
|
|
29
33
|
export interface TransportProvider<T extends TransportType> {
|
|
30
34
|
get(): T;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adnbn",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.7.1",
|
|
5
5
|
"description": "Addon Bone - Cross-browser web extension framework with shared code base",
|
|
6
6
|
"homepage": "https://addonbone.com",
|
|
7
7
|
"author": "Anjey Tsibylskij (https://github.com/atldays)",
|
|
@@ -84,6 +84,10 @@
|
|
|
84
84
|
"types": "./dist/relay/index.d.ts",
|
|
85
85
|
"default": "./dist/relay/index.js"
|
|
86
86
|
},
|
|
87
|
+
"./sandbox": {
|
|
88
|
+
"types": "./dist/sandbox/index.d.ts",
|
|
89
|
+
"default": "./dist/sandbox/index.js"
|
|
90
|
+
},
|
|
87
91
|
"./service": {
|
|
88
92
|
"types": "./dist/service/index.d.ts",
|
|
89
93
|
"default": "./dist/service/index.js"
|
|
@@ -105,10 +109,12 @@
|
|
|
105
109
|
"format": "prettier --write .",
|
|
106
110
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
107
111
|
"check:node-version": "node ./scripts/check-node-version.js",
|
|
108
|
-
"test": "jest",
|
|
109
|
-
"test:ci": "
|
|
110
|
-
"test:
|
|
112
|
+
"test": "npm run build && jest",
|
|
113
|
+
"test:ci": "npm run test -- --ci --passWithNoTests --coverage",
|
|
114
|
+
"test:ci:non-browser": "npm run test -- --ci --passWithNoTests --coverage --testPathIgnorePatterns=tests/integration/browser",
|
|
115
|
+
"test:watch": "jest --watch --testPathIgnorePatterns=tests/integration/browser",
|
|
111
116
|
"test:offscreen": "jest --testPathPatterns=Offscreen",
|
|
117
|
+
"test:chrome": "npm run test -- --testPathPatterns=tests/integration/browser --runInBand",
|
|
112
118
|
"test:message": "jest --testPathPatterns=src/message",
|
|
113
119
|
"test:service": "jest --testPathPatterns=Service",
|
|
114
120
|
"test:relay": "jest --testPathPatterns=Relay",
|
|
@@ -120,9 +126,9 @@
|
|
|
120
126
|
"release:preview": "release-it --no-github.release --no-npm.publish --no-git.tag --ci"
|
|
121
127
|
},
|
|
122
128
|
"dependencies": {
|
|
123
|
-
"@addon-core/browser": "^0.
|
|
129
|
+
"@addon-core/browser": "^0.7.1",
|
|
124
130
|
"@addon-core/inject-script": "^0.3.1",
|
|
125
|
-
"@addon-core/storage": "^0.
|
|
131
|
+
"@addon-core/storage": "^0.7.0",
|
|
126
132
|
"@rsdoctor/rspack-plugin": "^1.5.1",
|
|
127
133
|
"@rspack/cli": "^1.7.5",
|
|
128
134
|
"@rspack/core": "^1.7.5",
|
|
@@ -142,6 +148,8 @@
|
|
|
142
148
|
"mini-css-extract-plugin": "^2.9.2",
|
|
143
149
|
"nanoid": "^5.1.4",
|
|
144
150
|
"pluralize": "^8.0.0",
|
|
151
|
+
"postcss": "^8.5.15",
|
|
152
|
+
"postcss-scss": "^4.0.9",
|
|
145
153
|
"rspack-plugin-virtual-module": "^1.0.1",
|
|
146
154
|
"sass": "^1.83.4",
|
|
147
155
|
"sass-loader": "^16.0.4",
|
|
@@ -171,6 +179,7 @@
|
|
|
171
179
|
"@types/react": "^19.1.10",
|
|
172
180
|
"@types/react-dom": "^19.1.7",
|
|
173
181
|
"@types/semver": "^7.7.1",
|
|
182
|
+
"chrome-launcher": "^1.2.1",
|
|
174
183
|
"cross-env": "^7.0.3",
|
|
175
184
|
"dotenv": "^16.4.7",
|
|
176
185
|
"esbuild": "^0.25.10",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/plugins/style.ts"],"sourcesContent":["import _ from \"lodash\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport {Configuration as RspackConfig, CssExtractRspackPlugin, RuleSetUse, RuleSetUseItem} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {appFilenameResolver} from \"@cli/bundler\";\n\nimport {getAppSourcePath, getResolvePath, getSharedPath} from \"@cli/resolvers/path\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\nimport {toPosix} from \"@cli/utils/path\";\n\n// prettier-ignore\nconst styleMergerLoader =\n (config: ReadonlyConfig) =>\n (sharedStyle: string, sharedPath: string): string | void => {\n const sharedDir = getResolvePath(getSharedPath(config));\n\n if (sharedPath.startsWith(sharedDir)) {\n const relativePath = path.relative(sharedDir, sharedPath);\n\n const appDir = getResolvePath(getAppSourcePath(config));\n const appPath = getResolvePath(path.join(appDir, relativePath));\n\n if (fs.existsSync(appPath)) {\n try {\n let appStyle = fs.readFileSync(appPath, \"utf8\");\n\n appStyle = appStyle.replace(/url\\((['\"]?)(.*?)\\1\\)/g, (match, quote, filePath) => {\n if (\n filePath.startsWith(\"/\") ||\n filePath.startsWith(\"http\") ||\n filePath.startsWith(\"data:\")\n ) {\n return match;\n }\n\n const cssDir = path.dirname(appPath);\n const assetAbs = path.resolve(cssDir, filePath);\n\n const sharedFileDir = path.dirname(sharedPath);\n\n const relativeToSharedFile = path.relative(sharedFileDir, assetAbs);\n\n return `url(\"${toPosix(relativeToSharedFile)}\")`;\n });\n\n return sharedStyle + \"\\n\" + appStyle;\n } catch (error) {\n console.error(error);\n }\n }\n }\n };\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:styles\",\n bundler: ({config}) => {\n const {app, cssDir, cssFilename, cssIdentName, mergeStyles} = config;\n\n const filename = appFilenameResolver(app, cssFilename, cssDir);\n const kebabApp = _.kebabCase(app);\n\n const createSassRuleSet = (rule: RuleSetUseItem): RuleSetUse => {\n const rules: RuleSetUse = [CssExtractRspackPlugin.loader, rule, \"sass-loader\"];\n\n if (mergeStyles) {\n rules.push({\n loader: \"source-modifier-loader\",\n options: {\n modify: styleMergerLoader(config),\n },\n });\n }\n\n return rules;\n };\n\n return {\n resolve: {\n extensions: [\".css\", \".scss\"],\n },\n plugins: [\n new CssExtractRspackPlugin({\n filename,\n chunkFilename: filename,\n }),\n ],\n module: {\n rules: [\n {\n test: /\\.(scss|css)$/,\n type: \"javascript/auto\",\n oneOf: [\n {\n resourceQuery: /asis/,\n use: createSassRuleSet({\n loader: \"css-loader\",\n options: {\n esModule: true,\n modules: false,\n },\n }),\n },\n {\n use: createSassRuleSet({\n loader: \"css-loader\",\n options: {\n esModule: true,\n modules: {\n exportLocalsConvention: \"as-is\",\n namedExport: false,\n localIdentName: cssIdentName.replaceAll(\"[app]\", kebabApp),\n localIdentHashSalt: kebabApp,\n },\n },\n }),\n },\n ],\n },\n ],\n },\n } satisfies RspackConfig;\n },\n };\n});\n"],"mappings":"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","names":[]}
|