adnbn 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +7 -1
- 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.0",
|
|
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"
|
|
@@ -142,6 +146,8 @@
|
|
|
142
146
|
"mini-css-extract-plugin": "^2.9.2",
|
|
143
147
|
"nanoid": "^5.1.4",
|
|
144
148
|
"pluralize": "^8.0.0",
|
|
149
|
+
"postcss": "^8.5.15",
|
|
150
|
+
"postcss-scss": "^4.0.9",
|
|
145
151
|
"rspack-plugin-virtual-module": "^1.0.1",
|
|
146
152
|
"sass": "^1.83.4",
|
|
147
153
|
"sass-loader": "^16.0.4",
|
|
@@ -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":[]}
|