adnbn 0.6.0 → 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 +2 -3
- package/dist/cli/plugins/typescript/declaration/transport/TransportDeclaration.js.map +1 -1
- package/dist/cli/plugins/typescript/declaration/transport/transport.d.ts +5 -11
- 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/offscreen.d.ts +3 -3
- package/dist/main/offscreen.js.map +1 -1
- package/dist/main/relay.d.ts +3 -3
- package/dist/main/relay.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/main/service.d.ts +3 -3
- package/dist/main/service.js.map +1 -1
- package/dist/message/MessageManager.d.ts +2 -0
- package/dist/message/MessageManager.js +21 -5
- 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 +5 -0
- package/dist/message/providers/Message.js +44 -12
- 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/offscreen/index.d.ts +8 -3
- package/dist/offscreen/index.js.map +1 -1
- package/dist/relay/index.d.ts +8 -3
- package/dist/relay/index.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/service/index.d.ts +8 -3
- package/dist/service/index.js.map +1 -1
- 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/transport/index.d.ts +4 -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/message.d.ts +15 -0
- package/dist/types/message.js +2 -0
- package/dist/types/message.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,52 @@
|
|
|
1
|
+
import { View } from "../view/index.js";
|
|
2
|
+
import { SandboxFinder, SandboxViewFinder } from "./../../../cli/entrypoint/index.js";
|
|
3
|
+
import { virtualSandboxModule } from "./../../../cli/virtual/index.js";
|
|
4
|
+
class Sandbox_default extends SandboxFinder {
|
|
5
|
+
_view;
|
|
6
|
+
_views;
|
|
7
|
+
view() {
|
|
8
|
+
return this._view ?? (this._view = new View(this.config, this.views()));
|
|
9
|
+
}
|
|
10
|
+
views() {
|
|
11
|
+
return this._views ?? (this._views = new SandboxViewFinder(this.config, this));
|
|
12
|
+
}
|
|
13
|
+
virtual(file) {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
const options = (_b = (_a = this._transport) == null ? void 0 : _a.get(file)) == null ? void 0 : _b.options;
|
|
16
|
+
if (!options) {
|
|
17
|
+
throw new Error(`Sandbox options not found for "${file.file}"`);
|
|
18
|
+
}
|
|
19
|
+
return virtualSandboxModule(file, options.name);
|
|
20
|
+
}
|
|
21
|
+
async parameters() {
|
|
22
|
+
const sandboxes = {};
|
|
23
|
+
const files = await this.transport();
|
|
24
|
+
const filenames = await this.views().getFilenames();
|
|
25
|
+
for (const [file, transport] of files) {
|
|
26
|
+
const { name, readyTimeout, requestTimeout, removeOnRequestTimeout } = transport.options;
|
|
27
|
+
const url = filenames.get(file);
|
|
28
|
+
if (!url) {
|
|
29
|
+
throw new Error(`Sandbox filename not found for "${file.file}"`);
|
|
30
|
+
}
|
|
31
|
+
sandboxes[name] = {
|
|
32
|
+
url,
|
|
33
|
+
readyTimeout,
|
|
34
|
+
requestTimeout,
|
|
35
|
+
removeOnRequestTimeout
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return sandboxes;
|
|
39
|
+
}
|
|
40
|
+
async sandboxes() {
|
|
41
|
+
return Object.values(await this.parameters()).map(({ url }) => url);
|
|
42
|
+
}
|
|
43
|
+
clear() {
|
|
44
|
+
this._view = void 0;
|
|
45
|
+
this._views = void 0;
|
|
46
|
+
return super.clear();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export {
|
|
50
|
+
Sandbox_default as default
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=Sandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/sandbox/Sandbox.ts"],"sourcesContent":["import {View} from \"../view\";\n\nimport {SandboxFinder, SandboxViewFinder} from \"@cli/entrypoint/index.js\";\nimport {virtualSandboxModule} from \"@cli/virtual/index.js\";\n\nimport {EntrypointFile} from \"@typing/entrypoint\";\nimport {SandboxEntrypointOptions, SandboxParameters} from \"@typing/sandbox\";\n\nexport type SandboxParametersMap = Record<string, SandboxParameters>;\n\nexport default class extends SandboxFinder {\n protected _view?: View<SandboxEntrypointOptions>;\n\n protected _views?: SandboxViewFinder;\n\n public view(): View<SandboxEntrypointOptions> {\n return (this._view ??= new View(this.config, this.views()));\n }\n\n public views(): SandboxViewFinder {\n return (this._views ??= new SandboxViewFinder(this.config, this));\n }\n\n public virtual(file: EntrypointFile): string {\n const options = this._transport?.get(file)?.options;\n\n if (!options) {\n throw new Error(`Sandbox options not found for \"${file.file}\"`);\n }\n\n return virtualSandboxModule(file, options.name);\n }\n\n public async parameters(): Promise<SandboxParametersMap> {\n const sandboxes: SandboxParametersMap = {};\n const files = await this.transport();\n const filenames = await this.views().getFilenames();\n\n for (const [file, transport] of files) {\n const {name, readyTimeout, requestTimeout, removeOnRequestTimeout} = transport.options;\n const url = filenames.get(file);\n\n if (!url) {\n throw new Error(`Sandbox filename not found for \"${file.file}\"`);\n }\n\n sandboxes[name] = {\n url,\n readyTimeout,\n requestTimeout,\n removeOnRequestTimeout,\n };\n }\n\n return sandboxes;\n }\n\n public async sandboxes(): Promise<string[]> {\n return Object.values(await this.parameters()).map(({url}) => url);\n }\n\n public clear(): this {\n this._view = undefined;\n this._views = undefined;\n\n return super.clear();\n }\n}\n"],"mappings":"AAAA,SAAQ,YAAW;AAEnB,SAAQ,eAAe,yBAAwB;AAC/C,SAAQ,4BAA2B;AAOnC,MAAO,wBAAsB,cAAc;AAAA,EAC7B;AAAA,EAEA;AAAA,EAEH,OAAuC;AAC1C,WAAQ,KAAK,UAAL,KAAK,QAAU,IAAI,KAAK,KAAK,QAAQ,KAAK,MAAM,CAAC;AAAA,EAC7D;AAAA,EAEO,QAA2B;AAC9B,WAAQ,KAAK,WAAL,KAAK,SAAW,IAAI,kBAAkB,KAAK,QAAQ,IAAI;AAAA,EACnE;AAAA,EAEO,QAAQ,MAA8B;AAvBjD;AAwBQ,UAAM,WAAU,gBAAK,eAAL,mBAAiB,IAAI,UAArB,mBAA4B;AAE5C,QAAI,CAAC,SAAS;AACV,YAAM,IAAI,MAAM,kCAAkC,KAAK,IAAI,GAAG;AAAA,IAClE;AAEA,WAAO,qBAAqB,MAAM,QAAQ,IAAI;AAAA,EAClD;AAAA,EAEA,MAAa,aAA4C;AACrD,UAAM,YAAkC,CAAC;AACzC,UAAM,QAAQ,MAAM,KAAK,UAAU;AACnC,UAAM,YAAY,MAAM,KAAK,MAAM,EAAE,aAAa;AAElD,eAAW,CAAC,MAAM,SAAS,KAAK,OAAO;AACnC,YAAM,EAAC,MAAM,cAAc,gBAAgB,uBAAsB,IAAI,UAAU;AAC/E,YAAM,MAAM,UAAU,IAAI,IAAI;AAE9B,UAAI,CAAC,KAAK;AACN,cAAM,IAAI,MAAM,mCAAmC,KAAK,IAAI,GAAG;AAAA,MACnE;AAEA,gBAAU,IAAI,IAAI;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,YAA+B;AACxC,WAAO,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC,EAAE,IAAI,CAAC,EAAC,IAAG,MAAM,GAAG;AAAA,EACpE;AAAA,EAEO,QAAc;AACjB,SAAK,QAAQ;AACb,SAAK,SAAS;AAEd,WAAO,MAAM,MAAM;AAAA,EACvB;AACJ;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TransportDeclaration, TransportDeclarationLayer } from "../typescript/index.js";
|
|
2
|
+
class SandboxDeclaration_default extends TransportDeclaration {
|
|
3
|
+
constructor(config) {
|
|
4
|
+
super(config, TransportDeclarationLayer.Sandbox);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export {
|
|
8
|
+
SandboxDeclaration_default as default
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=SandboxDeclaration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/sandbox/SandboxDeclaration.ts"],"sourcesContent":["import {TransportDeclaration, TransportDeclarationLayer} from \"../typescript\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport default class extends TransportDeclaration {\n constructor(config: ReadonlyConfig) {\n super(config, TransportDeclarationLayer.Sandbox);\n }\n}\n"],"mappings":"AAAA,SAAQ,sBAAsB,iCAAgC;AAI9D,MAAO,mCAAsB,qBAAqB;AAAA,EAC9C,YAAY,QAAwB;AAChC,UAAM,QAAQ,0BAA0B,OAAO;AAAA,EACnD;AACJ;","names":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { DefinePlugin, HtmlRspackPlugin } from "@rspack/core";
|
|
2
|
+
import HtmlRspackTagsPlugin from "html-rspack-tags-plugin";
|
|
3
|
+
import { definePlugin } from "./../../../main/plugin.js";
|
|
4
|
+
import { EntrypointPlugin } from "./../../../cli/bundler/index.js";
|
|
5
|
+
import Sandbox from "./Sandbox.js";
|
|
6
|
+
import SandboxDeclaration from "./SandboxDeclaration.js";
|
|
7
|
+
import { Command } from "./../../../types/app.js";
|
|
8
|
+
var sandbox_default = definePlugin(() => {
|
|
9
|
+
let sandbox;
|
|
10
|
+
let declaration;
|
|
11
|
+
return {
|
|
12
|
+
name: "adnbn:sandbox",
|
|
13
|
+
startup: ({ config }) => {
|
|
14
|
+
sandbox = new Sandbox(config);
|
|
15
|
+
declaration = new SandboxDeclaration(config);
|
|
16
|
+
},
|
|
17
|
+
sandbox: () => sandbox.files(),
|
|
18
|
+
bundler: async ({ config }) => {
|
|
19
|
+
declaration.dictionary(await sandbox.dictionary()).build();
|
|
20
|
+
let build = true;
|
|
21
|
+
if (await sandbox.empty()) {
|
|
22
|
+
if (config.debug) {
|
|
23
|
+
console.info("Sandbox entries not found");
|
|
24
|
+
}
|
|
25
|
+
build = false;
|
|
26
|
+
}
|
|
27
|
+
const plugins = [];
|
|
28
|
+
let parameters = {};
|
|
29
|
+
if (build) {
|
|
30
|
+
parameters = await sandbox.parameters();
|
|
31
|
+
const plugin = EntrypointPlugin.from(await sandbox.view().entries()).virtual(
|
|
32
|
+
(file) => sandbox.virtual(file)
|
|
33
|
+
);
|
|
34
|
+
if (config.command === Command.Watch) {
|
|
35
|
+
plugin.watch(async () => {
|
|
36
|
+
declaration.dictionary(await sandbox.clear().dictionary()).build();
|
|
37
|
+
return sandbox.view().entries();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
const htmlPlugins = (await sandbox.view().html()).map((options) => new HtmlRspackPlugin(options));
|
|
41
|
+
const tagsPlugins = (await sandbox.view().tags()).map((options) => new HtmlRspackTagsPlugin(options));
|
|
42
|
+
plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
plugins: [
|
|
46
|
+
new DefinePlugin({
|
|
47
|
+
__ADNBN_SANDBOX_PARAMETERS__: JSON.stringify(parameters)
|
|
48
|
+
}),
|
|
49
|
+
...plugins
|
|
50
|
+
]
|
|
51
|
+
};
|
|
52
|
+
},
|
|
53
|
+
manifest: async ({ manifest }) => {
|
|
54
|
+
if (await sandbox.exists()) {
|
|
55
|
+
manifest.appendSandboxes(await sandbox.sandboxes()).appendSandboxCsp(await sandbox.views().csp());
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
export {
|
|
61
|
+
sandbox_default as default
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/sandbox/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, DefinePlugin, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {EntrypointPlugin} from \"@cli/bundler\";\n\nimport Sandbox, {SandboxParametersMap} from \"./Sandbox\";\nimport SandboxDeclaration from \"./SandboxDeclaration\";\n\nimport {Command} from \"@typing/app\";\n\nexport default definePlugin(() => {\n let sandbox: Sandbox;\n let declaration: SandboxDeclaration;\n\n return {\n name: \"adnbn:sandbox\",\n startup: ({config}) => {\n sandbox = new Sandbox(config);\n declaration = new SandboxDeclaration(config);\n },\n sandbox: () => sandbox.files(),\n bundler: async ({config}) => {\n declaration.dictionary(await sandbox.dictionary()).build();\n\n let build = true;\n\n if (await sandbox.empty()) {\n if (config.debug) {\n console.info(\"Sandbox entries not found\");\n }\n\n build = false;\n }\n\n const plugins: Plugins = [];\n let parameters: SandboxParametersMap = {};\n\n if (build) {\n parameters = await sandbox.parameters();\n\n const plugin = EntrypointPlugin.from(await sandbox.view().entries()).virtual(file =>\n sandbox.virtual(file)\n );\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.dictionary(await sandbox.clear().dictionary()).build();\n\n return sandbox.view().entries();\n });\n }\n\n const htmlPlugins = (await sandbox.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await sandbox.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n }\n\n return {\n plugins: [\n new DefinePlugin({\n __ADNBN_SANDBOX_PARAMETERS__: JSON.stringify(parameters),\n }),\n ...plugins,\n ],\n } satisfies RspackConfig;\n },\n manifest: async ({manifest}) => {\n if (await sandbox.exists()) {\n manifest.appendSandboxes(await sandbox.sandboxes()).appendSandboxCsp(await sandbox.views().csp());\n }\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,cAAc,wBAAgC;AACrF,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAC3B,SAAQ,wBAAuB;AAE/B,OAAO,aAAqC;AAC5C,OAAO,wBAAwB;AAE/B,SAAQ,eAAc;AAEtB,IAAO,kBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,gBAAU,IAAI,QAAQ,MAAM;AAC5B,oBAAc,IAAI,mBAAmB,MAAM;AAAA,IAC/C;AAAA,IACA,SAAS,MAAM,QAAQ,MAAM;AAAA,IAC7B,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,WAAW,MAAM,QAAQ,WAAW,CAAC,EAAE,MAAM;AAEzD,UAAI,QAAQ;AAEZ,UAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,2BAA2B;AAAA,QAC5C;AAEA,gBAAQ;AAAA,MACZ;AAEA,YAAM,UAAmB,CAAC;AAC1B,UAAI,aAAmC,CAAC;AAExC,UAAI,OAAO;AACP,qBAAa,MAAM,QAAQ,WAAW;AAEtC,cAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,KAAK,EAAE,QAAQ,CAAC,EAAE;AAAA,UAAQ,UACzE,QAAQ,QAAQ,IAAI;AAAA,QACxB;AAEA,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,WAAW,MAAM,QAAQ,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;AAEjE,mBAAO,QAAQ,KAAK,EAAE,QAAQ;AAAA,UAClC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAC9F,cAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAElG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACvD;AAEA,aAAO;AAAA,QACH,SAAS;AAAA,UACL,IAAI,aAAa;AAAA,YACb,8BAA8B,KAAK,UAAU,UAAU;AAAA,UAC3D,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,SAAQ,MAAM;AAC5B,UAAI,MAAM,QAAQ,OAAO,GAAG;AACxB,iBAAS,gBAAgB,MAAM,QAAQ,UAAU,CAAC,EAAE,iBAAiB,MAAM,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,MACpG;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
|
|
@@ -62,6 +62,7 @@ var sidebar_default = definePlugin(() => {
|
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
64
|
manifest.setSidebar(await sidebar.manifest());
|
|
65
|
+
manifest.appendCsp(await sidebar.csp());
|
|
65
66
|
if (await sidebar.exists() && !SidebarAlternativeBrowsers.has(config.browser)) {
|
|
66
67
|
manifest.addPermission("sidePanel");
|
|
67
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/plugins/sidebar/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, DefinePlugin, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport Sidebar, {SidebarNameToManifest} from \"./Sidebar\";\n\nimport {SidebarDeclaration} from \"./declaration\";\n\nimport {Command} from \"@typing/app\";\nimport {SidebarAlternativeBrowsers} from \"@typing/sidebar\";\n\nexport default definePlugin(() => {\n let sidebar: Sidebar;\n let declaration: SidebarDeclaration;\n\n let sidebarAvailable: boolean = false;\n\n return {\n name: \"adnbn:sidebar\",\n startup: ({config}) => {\n sidebar = new Sidebar(config);\n declaration = new SidebarDeclaration(config);\n\n sidebarAvailable = SidebarAlternativeBrowsers.has(config.browser) || config.manifestVersion !== 2;\n },\n sidebar: () => sidebar.files(),\n bundler: async ({config}) => {\n declaration.setAlias(await sidebar.getAlias()).build();\n\n let build: boolean = true;\n\n if (await sidebar.empty()) {\n if (config.debug) {\n console.info(\"Sidebar entries not found\");\n }\n\n build = false;\n } else if (!sidebarAvailable) {\n if (config.debug) {\n console.warn(\"Sidebar not supported for manifest version 2\");\n }\n\n build = false;\n }\n\n const plugins: Plugins = [];\n\n let alias: SidebarNameToManifest = new Map();\n\n if (build) {\n alias = await sidebar.manifestByAlias();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await sidebar.view().entries())\n .virtual(file => virtualViewModule(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.setAlias(await sidebar.clear().getAlias()).build();\n\n return sidebar.view().entries();\n });\n }\n\n const htmlPlugins = (await sidebar.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await sidebar.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n }\n\n return {\n plugins: [\n new DefinePlugin({\n __ADNBN_SIDEBAR_MAP__: JSON.stringify(alias),\n }),\n ...plugins,\n ],\n } as RspackConfig;\n },\n manifest: async ({manifest, config}) => {\n if (!sidebarAvailable) {\n return;\n }\n\n manifest.setSidebar(await sidebar.manifest());\n\n if ((await sidebar.exists()) && !SidebarAlternativeBrowsers.has(config.browser)) {\n manifest.addPermission(\"sidePanel\");\n }\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,cAAc,wBAAgC;AACrF,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAE3B,SAAQ,wBAAuB;AAC/B,SAAQ,yBAAwB;AAEhC,OAAO,aAAsC;AAE7C,SAAQ,0BAAyB;AAEjC,SAAQ,eAAc;AACtB,SAAQ,kCAAiC;AAEzC,IAAO,kBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,MAAI,mBAA4B;AAEhC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,gBAAU,IAAI,QAAQ,MAAM;AAC5B,oBAAc,IAAI,mBAAmB,MAAM;AAE3C,yBAAmB,2BAA2B,IAAI,OAAO,OAAO,KAAK,OAAO,oBAAoB;AAAA,IACpG;AAAA,IACA,SAAS,MAAM,QAAQ,MAAM;AAAA,IAC7B,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,SAAS,MAAM,QAAQ,SAAS,CAAC,EAAE,MAAM;AAErD,UAAI,QAAiB;AAErB,UAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,2BAA2B;AAAA,QAC5C;AAEA,gBAAQ;AAAA,MACZ,WAAW,CAAC,kBAAkB;AAC1B,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,8CAA8C;AAAA,QAC/D;AAEA,gBAAQ;AAAA,MACZ;AAEA,YAAM,UAAmB,CAAC;AAE1B,UAAI,QAA+B,oBAAI,IAAI;AAE3C,UAAI,OAAO;AACP,gBAAQ,MAAM,QAAQ,gBAAgB;AAGtC,cAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,KAAK,EAAE,QAAQ,CAAC,EAC9D,QAAQ,UAAQ,kBAAkB,IAAI,CAAC;AAE5C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,SAAS,MAAM,QAAQ,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;AAE7D,mBAAO,QAAQ,KAAK,EAAE,QAAQ;AAAA,UAClC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAC9F,cAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAElG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACvD;AAEA,aAAO;AAAA,QACH,SAAS;AAAA,UACL,IAAI,aAAa;AAAA,YACb,uBAAuB,KAAK,UAAU,KAAK;AAAA,UAC/C,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,UAAU,OAAM,MAAM;AACpC,UAAI,CAAC,kBAAkB;AACnB;AAAA,MACJ;AAEA,eAAS,WAAW,MAAM,QAAQ,SAAS,CAAC;
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/sidebar/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, DefinePlugin, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport Sidebar, {SidebarNameToManifest} from \"./Sidebar\";\n\nimport {SidebarDeclaration} from \"./declaration\";\n\nimport {Command} from \"@typing/app\";\nimport {SidebarAlternativeBrowsers} from \"@typing/sidebar\";\n\nexport default definePlugin(() => {\n let sidebar: Sidebar;\n let declaration: SidebarDeclaration;\n\n let sidebarAvailable: boolean = false;\n\n return {\n name: \"adnbn:sidebar\",\n startup: ({config}) => {\n sidebar = new Sidebar(config);\n declaration = new SidebarDeclaration(config);\n\n sidebarAvailable = SidebarAlternativeBrowsers.has(config.browser) || config.manifestVersion !== 2;\n },\n sidebar: () => sidebar.files(),\n bundler: async ({config}) => {\n declaration.setAlias(await sidebar.getAlias()).build();\n\n let build: boolean = true;\n\n if (await sidebar.empty()) {\n if (config.debug) {\n console.info(\"Sidebar entries not found\");\n }\n\n build = false;\n } else if (!sidebarAvailable) {\n if (config.debug) {\n console.warn(\"Sidebar not supported for manifest version 2\");\n }\n\n build = false;\n }\n\n const plugins: Plugins = [];\n\n let alias: SidebarNameToManifest = new Map();\n\n if (build) {\n alias = await sidebar.manifestByAlias();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await sidebar.view().entries())\n .virtual(file => virtualViewModule(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.setAlias(await sidebar.clear().getAlias()).build();\n\n return sidebar.view().entries();\n });\n }\n\n const htmlPlugins = (await sidebar.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await sidebar.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n }\n\n return {\n plugins: [\n new DefinePlugin({\n __ADNBN_SIDEBAR_MAP__: JSON.stringify(alias),\n }),\n ...plugins,\n ],\n } as RspackConfig;\n },\n manifest: async ({manifest, config}) => {\n if (!sidebarAvailable) {\n return;\n }\n\n manifest.setSidebar(await sidebar.manifest());\n manifest.appendCsp(await sidebar.csp());\n\n if ((await sidebar.exists()) && !SidebarAlternativeBrowsers.has(config.browser)) {\n manifest.addPermission(\"sidePanel\");\n }\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,cAAc,wBAAgC;AACrF,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAE3B,SAAQ,wBAAuB;AAC/B,SAAQ,yBAAwB;AAEhC,OAAO,aAAsC;AAE7C,SAAQ,0BAAyB;AAEjC,SAAQ,eAAc;AACtB,SAAQ,kCAAiC;AAEzC,IAAO,kBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,MAAI,mBAA4B;AAEhC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,gBAAU,IAAI,QAAQ,MAAM;AAC5B,oBAAc,IAAI,mBAAmB,MAAM;AAE3C,yBAAmB,2BAA2B,IAAI,OAAO,OAAO,KAAK,OAAO,oBAAoB;AAAA,IACpG;AAAA,IACA,SAAS,MAAM,QAAQ,MAAM;AAAA,IAC7B,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,SAAS,MAAM,QAAQ,SAAS,CAAC,EAAE,MAAM;AAErD,UAAI,QAAiB;AAErB,UAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,2BAA2B;AAAA,QAC5C;AAEA,gBAAQ;AAAA,MACZ,WAAW,CAAC,kBAAkB;AAC1B,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,8CAA8C;AAAA,QAC/D;AAEA,gBAAQ;AAAA,MACZ;AAEA,YAAM,UAAmB,CAAC;AAE1B,UAAI,QAA+B,oBAAI,IAAI;AAE3C,UAAI,OAAO;AACP,gBAAQ,MAAM,QAAQ,gBAAgB;AAGtC,cAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,KAAK,EAAE,QAAQ,CAAC,EAC9D,QAAQ,UAAQ,kBAAkB,IAAI,CAAC;AAE5C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,SAAS,MAAM,QAAQ,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;AAE7D,mBAAO,QAAQ,KAAK,EAAE,QAAQ;AAAA,UAClC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAC9F,cAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAElG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACvD;AAEA,aAAO;AAAA,QACH,SAAS;AAAA,UACL,IAAI,aAAa;AAAA,YACb,uBAAuB,KAAK,UAAU,KAAK;AAAA,UAC/C,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,UAAU,OAAM,MAAM;AACpC,UAAI,CAAC,kBAAkB;AACnB;AAAA,MACJ;AAEA,eAAS,WAAW,MAAM,QAAQ,SAAS,CAAC;AAC5C,eAAS,UAAU,MAAM,QAAQ,IAAI,CAAC;AAEtC,UAAK,MAAM,QAAQ,OAAO,KAAM,CAAC,2BAA2B,IAAI,OAAO,OAAO,GAAG;AAC7E,iBAAS,cAAc,WAAW;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
|
|
@@ -2,10 +2,11 @@ import _ from "lodash";
|
|
|
2
2
|
import path from "path";
|
|
3
3
|
import fs from "fs";
|
|
4
4
|
import { CssExtractRspackPlugin } from "@rspack/core";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
5
|
+
import { mergeStyleSources } from "./utils.js";
|
|
6
|
+
import { definePlugin } from "./../../../main/plugin.js";
|
|
7
|
+
import { appFilenameResolver } from "./../../../cli/bundler/index.js";
|
|
8
|
+
import { getAppSourcePath, getResolvePath, getSharedPath } from "./../../../cli/resolvers/path.js";
|
|
9
|
+
import { toPosix } from "./../../../cli/utils/path.js";
|
|
9
10
|
const styleMergerLoader = (config) => (sharedStyle, sharedPath) => {
|
|
10
11
|
const sharedDir = getResolvePath(getSharedPath(config));
|
|
11
12
|
if (sharedPath.startsWith(sharedDir)) {
|
|
@@ -13,22 +14,18 @@ const styleMergerLoader = (config) => (sharedStyle, sharedPath) => {
|
|
|
13
14
|
const appDir = getResolvePath(getAppSourcePath(config));
|
|
14
15
|
const appPath = getResolvePath(path.join(appDir, relativePath));
|
|
15
16
|
if (fs.existsSync(appPath)) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return sharedStyle + "\n" + appStyle;
|
|
29
|
-
} catch (error) {
|
|
30
|
-
console.error(error);
|
|
31
|
-
}
|
|
17
|
+
let appStyle = fs.readFileSync(appPath, "utf8");
|
|
18
|
+
appStyle = appStyle.replace(/url\((['"]?)(.*?)\1\)/g, (match, quote, filePath) => {
|
|
19
|
+
if (filePath.startsWith("/") || filePath.startsWith("http") || filePath.startsWith("data:")) {
|
|
20
|
+
return match;
|
|
21
|
+
}
|
|
22
|
+
const cssDir = path.dirname(appPath);
|
|
23
|
+
const assetAbs = path.resolve(cssDir, filePath);
|
|
24
|
+
const sharedFileDir = path.dirname(sharedPath);
|
|
25
|
+
const relativeToSharedFile = path.relative(sharedFileDir, assetAbs);
|
|
26
|
+
return `url("${toPosix(relativeToSharedFile)}")`;
|
|
27
|
+
});
|
|
28
|
+
return mergeStyleSources(sharedStyle, appStyle);
|
|
32
29
|
}
|
|
33
30
|
}
|
|
34
31
|
};
|
|
@@ -102,4 +99,4 @@ var style_default = definePlugin(() => {
|
|
|
102
99
|
export {
|
|
103
100
|
style_default as default
|
|
104
101
|
};
|
|
105
|
-
//# sourceMappingURL=
|
|
102
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/style/index.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 {mergeStyleSources} from \"./utils\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {appFilenameResolver} from \"@cli/bundler\";\nimport {getAppSourcePath, getResolvePath, getSharedPath} from \"@cli/resolvers/path\";\nimport {toPosix} from \"@cli/utils/path\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\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 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 mergeStyleSources(sharedStyle, appStyle);\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":"AAAA,OAAO,OAAO;AACd,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,SAAuC,8BAAyD;AAEhG,SAAQ,yBAAwB;AAEhC,SAAQ,oBAAmB;AAE3B,SAAQ,2BAA0B;AAClC,SAAQ,kBAAkB,gBAAgB,qBAAoB;AAC9D,SAAQ,eAAc;AAKtB,MAAM,oBACF,CAAC,WACG,CAAC,aAAqB,eAAsC;AACxD,QAAM,YAAY,eAAe,cAAc,MAAM,CAAC;AAEtD,MAAI,WAAW,WAAW,SAAS,GAAG;AAClC,UAAM,eAAe,KAAK,SAAS,WAAW,UAAU;AAExD,UAAM,SAAS,eAAe,iBAAiB,MAAM,CAAC;AACtD,UAAM,UAAU,eAAe,KAAK,KAAK,QAAQ,YAAY,CAAC;AAE9D,QAAI,GAAG,WAAW,OAAO,GAAG;AACxB,UAAI,WAAW,GAAG,aAAa,SAAS,MAAM;AAE9C,iBAAW,SAAS,QAAQ,0BAA0B,CAAC,OAAO,OAAO,aAAa;AAC9E,YACI,SAAS,WAAW,GAAG,KACvB,SAAS,WAAW,MAAM,KAC1B,SAAS,WAAW,OAAO,GAC7B;AACE,iBAAO;AAAA,QACX;AAEA,cAAM,SAAS,KAAK,QAAQ,OAAO;AACnC,cAAM,WAAW,KAAK,QAAQ,QAAQ,QAAQ;AAE9C,cAAM,gBAAgB,KAAK,QAAQ,UAAU;AAE7C,cAAM,uBAAuB,KAAK,SAAS,eAAe,QAAQ;AAElE,eAAO,QAAQ,QAAQ,oBAAoB,CAAC;AAAA,MAChD,CAAC;AAED,aAAO,kBAAkB,aAAa,QAAQ;AAAA,IAClD;AAAA,EACJ;AACJ;AAER,IAAO,gBAAQ,aAAa,MAAM;AAC9B,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,YAAM,EAAC,KAAK,QAAQ,aAAa,cAAc,YAAW,IAAI;AAE9D,YAAM,WAAW,oBAAoB,KAAK,aAAa,MAAM;AAC7D,YAAM,WAAW,EAAE,UAAU,GAAG;AAEhC,YAAM,oBAAoB,CAAC,SAAqC;AAC5D,cAAM,QAAoB,CAAC,uBAAuB,QAAQ,MAAM,aAAa;AAE7E,YAAI,aAAa;AACb,gBAAM,KAAK;AAAA,YACP,QAAQ;AAAA,YACR,SAAS;AAAA,cACL,QAAQ,kBAAkB,MAAM;AAAA,YACpC;AAAA,UACJ,CAAC;AAAA,QACL;AAEA,eAAO;AAAA,MACX;AAEA,aAAO;AAAA,QACH,SAAS;AAAA,UACL,YAAY,CAAC,QAAQ,OAAO;AAAA,QAChC;AAAA,QACA,SAAS;AAAA,UACL,IAAI,uBAAuB;AAAA,YACvB;AAAA,YACA,eAAe;AAAA,UACnB,CAAC;AAAA,QACL;AAAA,QACA,QAAQ;AAAA,UACJ,OAAO;AAAA,YACH;AAAA,cACI,MAAM;AAAA,cACN,MAAM;AAAA,cACN,OAAO;AAAA,gBACH;AAAA,kBACI,eAAe;AAAA,kBACf,KAAK,kBAAkB;AAAA,oBACnB,QAAQ;AAAA,oBACR,SAAS;AAAA,sBACL,UAAU;AAAA,sBACV,SAAS;AAAA,oBACb;AAAA,kBACJ,CAAC;AAAA,gBACL;AAAA,gBACA;AAAA,kBACI,KAAK,kBAAkB;AAAA,oBACnB,QAAQ;AAAA,oBACR,SAAS;AAAA,sBACL,UAAU;AAAA,sBACV,SAAS;AAAA,wBACL,wBAAwB;AAAA,wBACxB,aAAa;AAAA,wBACb,gBAAgB,aAAa,WAAW,SAAS,QAAQ;AAAA,wBACzD,oBAAoB;AAAA,sBACxB;AAAA,oBACJ;AAAA,kBACJ,CAAC;AAAA,gBACL;AAAA,cACJ;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const mergeStyleSources: (sharedStyle: string, appStyle: string) => string;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import * as scss from "postcss-scss";
|
|
2
|
+
const mergeStyleSources = (sharedStyle, appStyle) => {
|
|
3
|
+
const shared = splitStyleSource(sharedStyle);
|
|
4
|
+
const app = splitStyleSource(appStyle);
|
|
5
|
+
return [
|
|
6
|
+
...dedupePrelude([...shared.charsets, ...app.charsets]),
|
|
7
|
+
...dedupePrelude([...shared.sassPrelude, ...app.sassPrelude]),
|
|
8
|
+
...dedupePrelude([...shared.cssPrelude, ...app.cssPrelude]),
|
|
9
|
+
...shared.body,
|
|
10
|
+
...app.body
|
|
11
|
+
].map((part) => part.trim()).filter(Boolean).join("\n\n");
|
|
12
|
+
};
|
|
13
|
+
const dedupePrelude = (parts) => {
|
|
14
|
+
const seen = /* @__PURE__ */ new Set();
|
|
15
|
+
return parts.filter((part) => {
|
|
16
|
+
const key = part.trim();
|
|
17
|
+
if (seen.has(key)) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
seen.add(key);
|
|
21
|
+
return true;
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
const splitStyleSource = (source) => {
|
|
25
|
+
var _a;
|
|
26
|
+
const root = scss.parse(source);
|
|
27
|
+
const parts = {
|
|
28
|
+
charsets: [],
|
|
29
|
+
sassPrelude: [],
|
|
30
|
+
cssPrelude: [],
|
|
31
|
+
body: []
|
|
32
|
+
};
|
|
33
|
+
let bodyStarted = false;
|
|
34
|
+
let preludeType = "sass";
|
|
35
|
+
(_a = root.nodes) == null ? void 0 : _a.forEach((node) => {
|
|
36
|
+
if (!bodyStarted && isCharsetNode(node)) {
|
|
37
|
+
parts.charsets.push(stringifyNode(node));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (!bodyStarted && node.type === "comment") {
|
|
41
|
+
parts[preludeType === "sass" ? "sassPrelude" : "cssPrelude"].push(stringifyNode(node));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (!bodyStarted && isSassPreludeNode(node)) {
|
|
45
|
+
parts.sassPrelude.push(stringifyNode(node));
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (!bodyStarted && isCssPreludeNode(node)) {
|
|
49
|
+
preludeType = "css";
|
|
50
|
+
parts.cssPrelude.push(stringifyNode(node));
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
bodyStarted = true;
|
|
54
|
+
parts.body.push(stringifyNode(node));
|
|
55
|
+
});
|
|
56
|
+
return parts;
|
|
57
|
+
};
|
|
58
|
+
const stringifyNode = (node) => {
|
|
59
|
+
var _a;
|
|
60
|
+
const content = node.toString(scss.stringify);
|
|
61
|
+
if (node.type === "atrule" && !((_a = node.nodes) == null ? void 0 : _a.length) || node.type === "decl") {
|
|
62
|
+
return `${content};`;
|
|
63
|
+
}
|
|
64
|
+
return content;
|
|
65
|
+
};
|
|
66
|
+
const isCharsetNode = (node) => node.type === "atrule" && node.name === "charset";
|
|
67
|
+
const isSassPreludeNode = (node) => {
|
|
68
|
+
if (node.type === "decl") {
|
|
69
|
+
return node.prop.startsWith("$");
|
|
70
|
+
}
|
|
71
|
+
if (node.type !== "atrule") {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
return ["forward", "use"].includes(node.name);
|
|
75
|
+
};
|
|
76
|
+
const isCssPreludeNode = (node) => {
|
|
77
|
+
var _a;
|
|
78
|
+
if (node.type !== "atrule" || ((_a = node.nodes) == null ? void 0 : _a.length)) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
return ["import", "namespace", "layer"].includes(node.name);
|
|
82
|
+
};
|
|
83
|
+
export {
|
|
84
|
+
mergeStyleSources
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/style/utils.ts"],"sourcesContent":["import {ChildNode} from \"postcss\";\nimport * as scss from \"postcss-scss\";\n\ntype StyleSourceParts = {\n charsets: string[];\n sassPrelude: string[];\n cssPrelude: string[];\n body: string[];\n};\n\nexport const mergeStyleSources = (sharedStyle: string, appStyle: string): string => {\n const shared = splitStyleSource(sharedStyle);\n const app = splitStyleSource(appStyle);\n\n return [\n ...dedupePrelude([...shared.charsets, ...app.charsets]),\n ...dedupePrelude([...shared.sassPrelude, ...app.sassPrelude]),\n ...dedupePrelude([...shared.cssPrelude, ...app.cssPrelude]),\n ...shared.body,\n ...app.body,\n ]\n .map(part => part.trim())\n .filter(Boolean)\n .join(\"\\n\\n\");\n};\n\n// App overrides repeat the shared @use/@forward; Sass rejects duplicate modules, so collapse exact matches while keeping differing statements that signal real conflicts.\nconst dedupePrelude = (parts: string[]): string[] => {\n const seen = new Set<string>();\n\n return parts.filter(part => {\n const key = part.trim();\n\n if (seen.has(key)) {\n return false;\n }\n\n seen.add(key);\n\n return true;\n });\n};\n\nconst splitStyleSource = (source: string): StyleSourceParts => {\n const root = scss.parse(source);\n\n const parts: StyleSourceParts = {\n charsets: [],\n sassPrelude: [],\n cssPrelude: [],\n body: [],\n };\n\n let bodyStarted = false;\n let preludeType: \"sass\" | \"css\" = \"sass\";\n\n root.nodes?.forEach(node => {\n if (!bodyStarted && isCharsetNode(node)) {\n parts.charsets.push(stringifyNode(node));\n return;\n }\n\n if (!bodyStarted && node.type === \"comment\") {\n parts[preludeType === \"sass\" ? \"sassPrelude\" : \"cssPrelude\"].push(stringifyNode(node));\n return;\n }\n\n if (!bodyStarted && isSassPreludeNode(node)) {\n parts.sassPrelude.push(stringifyNode(node));\n return;\n }\n\n if (!bodyStarted && isCssPreludeNode(node)) {\n preludeType = \"css\";\n parts.cssPrelude.push(stringifyNode(node));\n return;\n }\n\n bodyStarted = true;\n parts.body.push(stringifyNode(node));\n });\n\n return parts;\n};\n\nconst stringifyNode = (node: ChildNode): string => {\n const content = node.toString(scss.stringify);\n\n if ((node.type === \"atrule\" && !node.nodes?.length) || node.type === \"decl\") {\n return `${content};`;\n }\n\n return content;\n};\n\nconst isCharsetNode = (node: ChildNode): boolean => node.type === \"atrule\" && node.name === \"charset\";\n\nconst isSassPreludeNode = (node: ChildNode): boolean => {\n if (node.type === \"decl\") {\n return node.prop.startsWith(\"$\");\n }\n\n if (node.type !== \"atrule\") {\n return false;\n }\n\n return [\"forward\", \"use\"].includes(node.name);\n};\n\nconst isCssPreludeNode = (node: ChildNode): boolean => {\n if (node.type !== \"atrule\" || node.nodes?.length) {\n return false;\n }\n\n return [\"import\", \"namespace\", \"layer\"].includes(node.name);\n};\n"],"mappings":"AACA,YAAY,UAAU;AASf,MAAM,oBAAoB,CAAC,aAAqB,aAA6B;AAChF,QAAM,SAAS,iBAAiB,WAAW;AAC3C,QAAM,MAAM,iBAAiB,QAAQ;AAErC,SAAO;AAAA,IACH,GAAG,cAAc,CAAC,GAAG,OAAO,UAAU,GAAG,IAAI,QAAQ,CAAC;AAAA,IACtD,GAAG,cAAc,CAAC,GAAG,OAAO,aAAa,GAAG,IAAI,WAAW,CAAC;AAAA,IAC5D,GAAG,cAAc,CAAC,GAAG,OAAO,YAAY,GAAG,IAAI,UAAU,CAAC;AAAA,IAC1D,GAAG,OAAO;AAAA,IACV,GAAG,IAAI;AAAA,EACX,EACK,IAAI,UAAQ,KAAK,KAAK,CAAC,EACvB,OAAO,OAAO,EACd,KAAK,MAAM;AACpB;AAGA,MAAM,gBAAgB,CAAC,UAA8B;AACjD,QAAM,OAAO,oBAAI,IAAY;AAE7B,SAAO,MAAM,OAAO,UAAQ;AACxB,UAAM,MAAM,KAAK,KAAK;AAEtB,QAAI,KAAK,IAAI,GAAG,GAAG;AACf,aAAO;AAAA,IACX;AAEA,SAAK,IAAI,GAAG;AAEZ,WAAO;AAAA,EACX,CAAC;AACL;AAEA,MAAM,mBAAmB,CAAC,WAAqC;AA3C/D;AA4CI,QAAM,OAAO,KAAK,MAAM,MAAM;AAE9B,QAAM,QAA0B;AAAA,IAC5B,UAAU,CAAC;AAAA,IACX,aAAa,CAAC;AAAA,IACd,YAAY,CAAC;AAAA,IACb,MAAM,CAAC;AAAA,EACX;AAEA,MAAI,cAAc;AAClB,MAAI,cAA8B;AAElC,aAAK,UAAL,mBAAY,QAAQ,UAAQ;AACxB,QAAI,CAAC,eAAe,cAAc,IAAI,GAAG;AACrC,YAAM,SAAS,KAAK,cAAc,IAAI,CAAC;AACvC;AAAA,IACJ;AAEA,QAAI,CAAC,eAAe,KAAK,SAAS,WAAW;AACzC,YAAM,gBAAgB,SAAS,gBAAgB,YAAY,EAAE,KAAK,cAAc,IAAI,CAAC;AACrF;AAAA,IACJ;AAEA,QAAI,CAAC,eAAe,kBAAkB,IAAI,GAAG;AACzC,YAAM,YAAY,KAAK,cAAc,IAAI,CAAC;AAC1C;AAAA,IACJ;AAEA,QAAI,CAAC,eAAe,iBAAiB,IAAI,GAAG;AACxC,oBAAc;AACd,YAAM,WAAW,KAAK,cAAc,IAAI,CAAC;AACzC;AAAA,IACJ;AAEA,kBAAc;AACd,UAAM,KAAK,KAAK,cAAc,IAAI,CAAC;AAAA,EACvC;AAEA,SAAO;AACX;AAEA,MAAM,gBAAgB,CAAC,SAA4B;AArFnD;AAsFI,QAAM,UAAU,KAAK,SAAS,KAAK,SAAS;AAE5C,MAAK,KAAK,SAAS,YAAY,GAAC,UAAK,UAAL,mBAAY,WAAW,KAAK,SAAS,QAAQ;AACzE,WAAO,GAAG,OAAO;AAAA,EACrB;AAEA,SAAO;AACX;AAEA,MAAM,gBAAgB,CAAC,SAA6B,KAAK,SAAS,YAAY,KAAK,SAAS;AAE5F,MAAM,oBAAoB,CAAC,SAA6B;AACpD,MAAI,KAAK,SAAS,QAAQ;AACtB,WAAO,KAAK,KAAK,WAAW,GAAG;AAAA,EACnC;AAEA,MAAI,KAAK,SAAS,UAAU;AACxB,WAAO;AAAA,EACX;AAEA,SAAO,CAAC,WAAW,KAAK,EAAE,SAAS,KAAK,IAAI;AAChD;AAEA,MAAM,mBAAmB,CAAC,SAA6B;AA7GvD;AA8GI,MAAI,KAAK,SAAS,cAAY,UAAK,UAAL,mBAAY,SAAQ;AAC9C,WAAO;AAAA,EACX;AAEA,SAAO,CAAC,UAAU,aAAa,OAAO,EAAE,SAAS,KAAK,IAAI;AAC9D;","names":[]}
|
|
@@ -3,7 +3,8 @@ import { ReadonlyConfig } from "../../../../../types/config.js";
|
|
|
3
3
|
export declare enum TransportDeclarationLayer {
|
|
4
4
|
Service = "service",
|
|
5
5
|
Offscreen = "offscreen",
|
|
6
|
-
Relay = "relay"
|
|
6
|
+
Relay = "relay",
|
|
7
|
+
Sandbox = "sandbox"
|
|
7
8
|
}
|
|
8
9
|
export default class<T extends Record<string, string> = Record<string, string>> extends FileBuilder {
|
|
9
10
|
protected readonly layer: TransportDeclarationLayer;
|
|
@@ -4,6 +4,7 @@ var TransportDeclarationLayer = /* @__PURE__ */ ((TransportDeclarationLayer2) =>
|
|
|
4
4
|
TransportDeclarationLayer2["Service"] = "service";
|
|
5
5
|
TransportDeclarationLayer2["Offscreen"] = "offscreen";
|
|
6
6
|
TransportDeclarationLayer2["Relay"] = "relay";
|
|
7
|
+
TransportDeclarationLayer2["Sandbox"] = "sandbox";
|
|
7
8
|
return TransportDeclarationLayer2;
|
|
8
9
|
})(TransportDeclarationLayer || {});
|
|
9
10
|
class TransportDeclaration_default extends FileBuilder {
|
|
@@ -30,9 +31,7 @@ class TransportDeclaration_default extends FileBuilder {
|
|
|
30
31
|
const type = Object.entries(dictionary).map(([key, value]) => {
|
|
31
32
|
return `'${key}': ${value};`;
|
|
32
33
|
}).join("\n ");
|
|
33
|
-
return this.readFile().replaceAll(":layer", this.layer).replaceAll("Layer", _.upperFirst(this.layer)).
|
|
34
|
-
${type}
|
|
35
|
-
}`);
|
|
34
|
+
return this.readFile().replaceAll(":layer", this.layer).replaceAll("Layer", _.upperFirst(this.layer)).replaceAll("__TRANSPORT_DICTIONARY__", type);
|
|
36
35
|
}
|
|
37
36
|
dictionary(dictionary) {
|
|
38
37
|
this._dictionary = dictionary;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/cli/plugins/typescript/declaration/transport/TransportDeclaration.ts"],"sourcesContent":["import _ from \"lodash\";\n\nimport FileBuilder from \"../../FileBuilder\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport enum TransportDeclarationLayer {\n Service = \"service\",\n Offscreen = \"offscreen\",\n Relay = \"relay\",\n}\n\nexport default class<T extends Record<string, string> = Record<string, string>> extends FileBuilder {\n protected _dictionary?: T;\n\n constructor(\n config: ReadonlyConfig,\n protected readonly layer: TransportDeclarationLayer\n ) {\n super(config);\n }\n\n protected filename(): string {\n return this.layer + \".d.ts\";\n }\n\n protected file(): URL {\n return new URL(\"./transport.d.ts\", this.url());\n }\n\n protected url(): string {\n return import.meta.url;\n }\n\n protected template(): string {\n const dictionary = this._dictionary;\n\n if (!dictionary) {\n throw new Error(`Transport ${this.layer} dictionary is not set`);\n }\n\n const type = Object.entries(dictionary)\n .map(([key, value]) => {\n return `'${key}': ${value};`;\n })\n .join(\"\\n\\t\\t\");\n\n return this.readFile()\n .replaceAll(\":layer\", this.layer)\n .replaceAll(\"Layer\", _.upperFirst(this.layer))\n .
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/cli/plugins/typescript/declaration/transport/TransportDeclaration.ts"],"sourcesContent":["import _ from \"lodash\";\n\nimport FileBuilder from \"../../FileBuilder\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport enum TransportDeclarationLayer {\n Service = \"service\",\n Offscreen = \"offscreen\",\n Relay = \"relay\",\n Sandbox = \"sandbox\",\n}\n\nexport default class<T extends Record<string, string> = Record<string, string>> extends FileBuilder {\n protected _dictionary?: T;\n\n constructor(\n config: ReadonlyConfig,\n protected readonly layer: TransportDeclarationLayer\n ) {\n super(config);\n }\n\n protected filename(): string {\n return this.layer + \".d.ts\";\n }\n\n protected file(): URL {\n return new URL(\"./transport.d.ts\", this.url());\n }\n\n protected url(): string {\n return import.meta.url;\n }\n\n protected template(): string {\n const dictionary = this._dictionary;\n\n if (!dictionary) {\n throw new Error(`Transport ${this.layer} dictionary is not set`);\n }\n\n const type = Object.entries(dictionary)\n .map(([key, value]) => {\n return `'${key}': ${value};`;\n })\n .join(\"\\n\\t\\t\");\n\n return this.readFile()\n .replaceAll(\":layer\", this.layer)\n .replaceAll(\"Layer\", _.upperFirst(this.layer))\n .replaceAll(\"__TRANSPORT_DICTIONARY__\", type);\n }\n\n public dictionary(dictionary: T): this {\n this._dictionary = dictionary;\n\n return this;\n }\n}\n"],"mappings":"AAAA,OAAO,OAAO;AAEd,OAAO,iBAAiB;AAIjB,IAAK,4BAAL,kBAAKA,+BAAL;AACH,EAAAA,2BAAA,aAAU;AACV,EAAAA,2BAAA,eAAY;AACZ,EAAAA,2BAAA,WAAQ;AACR,EAAAA,2BAAA,aAAU;AAJF,SAAAA;AAAA,GAAA;AAOZ,MAAO,qCAAiF,YAAY;AAAA,EAGhG,YACI,QACmB,OACrB;AACE,UAAM,MAAM;AAFO;AAAA,EAGvB;AAAA,EAHuB;AAAA,EAJb;AAAA,EASA,WAAmB;AACzB,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEU,OAAY;AAClB,WAAO,IAAI,IAAI,oBAAoB,KAAK,IAAI,CAAC;AAAA,EACjD;AAAA,EAEU,MAAc;AACpB,WAAO,YAAY;AAAA,EACvB;AAAA,EAEU,WAAmB;AACzB,UAAM,aAAa,KAAK;AAExB,QAAI,CAAC,YAAY;AACb,YAAM,IAAI,MAAM,aAAa,KAAK,KAAK,wBAAwB;AAAA,IACnE;AAEA,UAAM,OAAO,OAAO,QAAQ,UAAU,EACjC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACnB,aAAO,IAAI,GAAG,MAAM,KAAK;AAAA,IAC7B,CAAC,EACA,KAAK,MAAQ;AAElB,WAAO,KAAK,SAAS,EAChB,WAAW,UAAU,KAAK,KAAK,EAC/B,WAAW,SAAS,EAAE,WAAW,KAAK,KAAK,CAAC,EAC5C,WAAW,4BAA4B,IAAI;AAAA,EACpD;AAAA,EAEO,WAAW,YAAqB;AACnC,SAAK,cAAc;AAEnB,WAAO;AAAA,EACX;AACJ;","names":["TransportDeclarationLayer"]}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
import ":package";
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
declare module ":package" {
|
|
5
|
-
// prettier-ignore
|
|
6
|
-
export interface LayerRegistry { [name: string]: any }
|
|
7
|
-
|
|
8
|
-
export function getLayer<N extends keyof LayerRegistry>(name: N): LayerProxyTarget<LayerRegistry, N>;
|
|
9
|
-
}
|
|
2
|
+
import ":package/:layer";
|
|
10
3
|
|
|
11
4
|
declare module ":package/:layer" {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
// prettier-ignore
|
|
6
|
+
export interface LayerRegistry {
|
|
7
|
+
__TRANSPORT_DICTIONARY__
|
|
8
|
+
}
|
|
15
9
|
}
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
pluginPopup,
|
|
21
21
|
pluginPublic,
|
|
22
22
|
pluginReact,
|
|
23
|
+
pluginSandbox,
|
|
23
24
|
pluginSidebar,
|
|
24
25
|
pluginStyle,
|
|
25
26
|
pluginTypescript,
|
|
@@ -204,6 +205,7 @@ var config_default = async (config) => {
|
|
|
204
205
|
mergeRelay = false,
|
|
205
206
|
mergeService = false,
|
|
206
207
|
mergeOffscreen = false,
|
|
208
|
+
mergeSandbox = false,
|
|
207
209
|
commonChunks = true,
|
|
208
210
|
artifactName = "[name]-[browser]-[mv]",
|
|
209
211
|
assetsFilename = mode === Mode.Production && command === Command.Build && !debug ? "[contenthash:4][ext]" : "[name]-[contenthash:4][ext]",
|
|
@@ -267,6 +269,7 @@ var config_default = async (config) => {
|
|
|
267
269
|
mergeRelay,
|
|
268
270
|
mergeService,
|
|
269
271
|
mergeOffscreen,
|
|
272
|
+
mergeSandbox,
|
|
270
273
|
commonChunks,
|
|
271
274
|
artifactName,
|
|
272
275
|
assetsFilename,
|
|
@@ -307,6 +310,7 @@ var config_default = async (config) => {
|
|
|
307
310
|
pluginPublic(),
|
|
308
311
|
pluginSidebar(),
|
|
309
312
|
pluginOffscreen(),
|
|
313
|
+
pluginSandbox(),
|
|
310
314
|
pluginPage(),
|
|
311
315
|
pluginView(),
|
|
312
316
|
pluginHtml(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/resolvers/config.ts"],"sourcesContent":["import {existsSync} from \"fs\";\nimport dotenv, {type DotenvParseOutput} from \"dotenv\";\nimport {loadConfig} from \"c12\";\nimport _ from \"lodash\";\n\nimport {\n pluginAsset,\n pluginBackground,\n pluginBundler,\n pluginContent,\n pluginDotenv,\n pluginHtml,\n pluginIcon,\n pluginLocale,\n pluginMeta,\n pluginOffscreen,\n pluginManifest,\n pluginOptimization,\n pluginOutput,\n pluginPage,\n pluginPopup,\n pluginPublic,\n pluginReact,\n pluginSidebar,\n pluginStyle,\n pluginTypescript,\n pluginVersion,\n pluginView,\n} from \"../plugins\";\n\nimport {fromRootPath, getAppPath, getAppSourcePath, getConfigFile} from \"../resolvers/path\";\n\nimport type {Config, OptionalConfig, ReadonlyConfig, UserConfig} from \"@typing/config\";\nimport {Command, Mode, Workspace} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {Plugin} from \"@typing/plugin\";\nimport {ManifestVersion} from \"@typing/manifest\";\nimport {Language, LanguageCodes} from \"@typing/locale\";\nimport {DefaultIconGroupName} from \"@typing/icon\";\n\nconst resolveLanguage = (lang?: `${Language}` | Language): Language => {\n if (!lang) {\n return Language.English;\n }\n\n if (LanguageCodes.has(lang)) {\n return lang as Language;\n }\n\n throw new Error(`Invalid language \"${lang}\" provided by config`);\n};\n\nconst resolveWorkspace = (workspace?: Workspace | `${Workspace}`): Workspace => {\n if (!workspace) {\n return Workspace.Single;\n }\n\n if (Object.values(Workspace).includes(workspace as Workspace)) {\n return workspace as Workspace;\n }\n\n throw new Error(`Invalid workspace \"${workspace}\" provided by config`);\n};\n\nconst resolveSharedDir = (workspace: Workspace, sharedDir: string): string => {\n return workspace === Workspace.Multi ? sharedDir : \".\";\n};\n\nconst getUserConfig = async (config: ReadonlyConfig): Promise<UserConfig> => {\n const configFilePath = getConfigFile(config);\n\n if (existsSync(configFilePath)) {\n const {config: userConfig} = await loadConfig<UserConfig>({\n configFile: configFilePath,\n dotenv: true,\n });\n\n if (config.debug) {\n console.log(\"Loaded user config:\", configFilePath);\n }\n\n return userConfig || {};\n } else if (config.debug) {\n console.warn(\"Config file not found:\", configFilePath);\n }\n\n return {};\n};\n\nconst validateConfig = (config: ReadonlyConfig): ReadonlyConfig => {\n const {\n outDir,\n srcDir,\n sharedDir,\n appsDir,\n appSrcDir,\n jsDir,\n cssDir,\n assetsDir,\n htmlDir,\n publicDir,\n localeDir,\n iconSrcDir,\n iconOutDir,\n } = config;\n\n if (\n [\n outDir,\n srcDir,\n sharedDir,\n appsDir,\n appSrcDir,\n jsDir,\n cssDir,\n assetsDir,\n htmlDir,\n publicDir,\n localeDir,\n iconSrcDir,\n iconOutDir,\n ]\n .filter(dir => _.isString(dir))\n .some(dir => dir.includes(\"..\"))\n ) {\n throw new Error('Directory paths cannot contain relative paths (\"..\") for security reasons.');\n }\n\n if (appsDir === sharedDir) {\n throw new Error(\"Apps directory (appsDir) and shared directory (sharedDir) cannot be the same.\");\n }\n\n if (srcDir === outDir) {\n throw new Error(\"Source directory (srcDir) and destination directory (outputDir) cannot be the same.\");\n }\n\n if (srcDir === \".\") {\n throw new Error('Source directory cannot be the root directory (\".\") for security reasons.');\n }\n\n if (publicDir === \".\" || [srcDir, outDir, appSrcDir].includes(publicDir)) {\n throw new Error(\n 'Public directory cannot be the root directory (\".\") or intersect with other root directories for security reasons.'\n );\n }\n\n return config;\n};\n\nconst updateLocalDotenv = (config: ReadonlyConfig): DotenvParseOutput => {\n const {mode, app, browser, manifestVersion} = config;\n\n const localVars: DotenvParseOutput = {\n APP: app,\n BROWSER: browser,\n MODE: mode,\n MANIFEST_VERSION: String(manifestVersion),\n };\n\n Object.assign(process.env, localVars);\n\n return localVars;\n};\n\nconst loadDotenv = (config: ReadonlyConfig): DotenvParseOutput => {\n const {mode, browser, debug} = config;\n\n const preset = [\n `.env.${mode}.${browser}.local`,\n `.env.${mode}.${browser}`,\n `.env.${browser}.local`,\n `.env.${browser}`,\n `.env.${mode}.local`,\n `.env.${mode}`,\n `.env.local`,\n `.env`,\n ];\n\n const appSourcePaths = preset.map(file => getAppSourcePath(config, file));\n const appPaths = preset.map(file => getAppPath(config, file));\n const rootPaths = preset.map(file => fromRootPath(config, file));\n\n const paths = [...appSourcePaths, ...appPaths, ...rootPaths];\n\n const {parsed: fileVars = {}} = dotenv.config({path: paths, quiet: !debug});\n\n return {...fileVars, ...updateLocalDotenv(config)};\n};\n\nexport default async (config: OptionalConfig): Promise<Config> => {\n let {\n command = Command.Build,\n debug = false,\n configFile = \"adnbn.config.ts\",\n browser = Browser.Chrome,\n app = \"myapp\",\n name = app,\n description,\n shortName,\n version = \"VERSION\",\n minimumVersion = \"MINIMUM_VERSION\",\n author = undefined,\n homepage = \"HOMEPAGE\",\n icon = DefaultIconGroupName,\n lang = Language.English,\n incognito,\n specific,\n workspace = Workspace.Single,\n rootDir = \".\",\n outDir = \"dist\",\n srcDir = \"src\",\n sharedDir = \"shared\",\n appsDir = \"apps\",\n appSrcDir = \".\",\n localeDir = \"locales\",\n iconSrcDir = \"icons\",\n iconOutDir = \"icons\",\n jsDir = \"js\",\n cssDir = \"css\",\n assetsDir = \"assets\",\n publicDir = \"public\",\n htmlDir = \".\",\n html = [],\n bundler = {},\n env = {},\n manifest,\n manifestVersion = (new Set<Browser>([Browser.Safari]).has(browser) ? 2 : 3) as ManifestVersion,\n mode = Mode.Development,\n analyze = false,\n plugins = [],\n mergeBackground = false,\n mergeCommands = false,\n mergeContentScripts = false,\n concatContentScripts = true,\n mergeStyles = true,\n mergeIcons = false,\n mergeLocales = true,\n mergePages = false,\n mergePopup = false,\n mergePublic = false,\n multiplePopup = false,\n mergeSidebar = false,\n multipleSidebar = false,\n mergeRelay = false,\n mergeService = false,\n mergeOffscreen = false,\n commonChunks = true,\n artifactName = \"[name]-[browser]-[mv]\",\n assetsFilename = mode === Mode.Production && command === Command.Build && !debug\n ? \"[contenthash:4][ext]\"\n : \"[name]-[contenthash:4][ext]\",\n jsFilename = mode === Mode.Production && command === Command.Build && !debug\n ? \"[contenthash:5].js\"\n : \"[name].js\",\n cssFilename = mode === Mode.Production && command === Command.Build && !debug\n ? \"[contenthash:5].css\"\n : \"[name].css\",\n cssIdentName = mode === Mode.Production && command === Command.Build && !debug\n ? \"[app]-[hash:base64:5]\"\n : \"[local]-[hash:base64:5]\",\n } = config;\n\n let resolvedConfig: Config = {\n command,\n debug,\n mode,\n browser,\n app,\n name,\n description,\n shortName,\n version,\n minimumVersion,\n author,\n homepage,\n lang: resolveLanguage(lang),\n icon,\n incognito,\n specific,\n manifest,\n manifestVersion,\n workspace: resolveWorkspace(workspace),\n rootDir,\n outDir,\n srcDir,\n sharedDir,\n appsDir,\n appSrcDir,\n jsDir,\n cssDir,\n assetsDir,\n publicDir,\n htmlDir,\n localeDir,\n iconSrcDir,\n iconOutDir,\n html,\n bundler,\n env,\n plugins,\n analyze,\n configFile,\n mergeBackground,\n mergeCommands,\n mergeContentScripts,\n concatContentScripts,\n mergeStyles,\n mergeIcons,\n mergeLocales,\n mergePages,\n mergePopup,\n mergePublic,\n multiplePopup,\n mergeSidebar,\n multipleSidebar,\n mergeRelay,\n mergeService,\n mergeOffscreen,\n commonChunks,\n artifactName,\n assetsFilename,\n jsFilename,\n cssFilename,\n cssIdentName,\n };\n\n let vars = loadDotenv(resolvedConfig);\n\n const {\n plugins: userPlugins = [],\n lang: userLang,\n workspace: userWorkspace,\n ...userConfig\n } = await getUserConfig(resolvedConfig);\n\n resolvedConfig = {\n ...resolvedConfig,\n ...userConfig,\n lang: resolveLanguage(userLang ?? resolvedConfig.lang),\n workspace: resolveWorkspace(userWorkspace ?? resolvedConfig.workspace),\n };\n\n resolvedConfig.sharedDir = resolveSharedDir(resolvedConfig.workspace, resolvedConfig.sharedDir);\n\n resolvedConfig = validateConfig(resolvedConfig);\n\n vars = {...vars, ...loadDotenv(resolvedConfig)};\n\n /**\n * IMPORTANT: the order of plugins matters. Early plugins prepare the environment and artifacts for the following ones\n * (e.g., environment variables/output/transpilation/assets → page/version generation → bundling).\n * Reordering may result in missing artifacts, incorrect configuration, or build failures.\n */\n const corePlugins: Plugin[] = [\n pluginDotenv(vars),\n pluginOutput(),\n pluginOptimization(),\n pluginTypescript(),\n pluginReact(),\n pluginIcon(),\n pluginAsset(),\n pluginStyle(),\n pluginLocale(),\n pluginMeta(),\n pluginContent(),\n pluginBackground(),\n pluginPopup(),\n pluginPublic(),\n pluginSidebar(),\n pluginOffscreen(),\n pluginPage(),\n pluginView(),\n pluginHtml(),\n pluginVersion(),\n pluginBundler(),\n pluginManifest(),\n ];\n\n return {\n ...resolvedConfig,\n plugins: [...plugins, ...userPlugins, ...corePlugins],\n };\n};\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/resolvers/config.ts"],"sourcesContent":["import {existsSync} from \"fs\";\nimport dotenv, {type DotenvParseOutput} from \"dotenv\";\nimport {loadConfig} from \"c12\";\nimport _ from \"lodash\";\n\nimport {\n pluginAsset,\n pluginBackground,\n pluginBundler,\n pluginContent,\n pluginDotenv,\n pluginHtml,\n pluginIcon,\n pluginLocale,\n pluginMeta,\n pluginOffscreen,\n pluginManifest,\n pluginOptimization,\n pluginOutput,\n pluginPage,\n pluginPopup,\n pluginPublic,\n pluginReact,\n pluginSandbox,\n pluginSidebar,\n pluginStyle,\n pluginTypescript,\n pluginVersion,\n pluginView,\n} from \"../plugins\";\n\nimport {fromRootPath, getAppPath, getAppSourcePath, getConfigFile} from \"../resolvers/path\";\n\nimport type {Config, OptionalConfig, ReadonlyConfig, UserConfig} from \"@typing/config\";\nimport {Command, Mode, Workspace} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {Plugin} from \"@typing/plugin\";\nimport {ManifestVersion} from \"@typing/manifest\";\nimport {Language, LanguageCodes} from \"@typing/locale\";\nimport {DefaultIconGroupName} from \"@typing/icon\";\n\nconst resolveLanguage = (lang?: `${Language}` | Language): Language => {\n if (!lang) {\n return Language.English;\n }\n\n if (LanguageCodes.has(lang)) {\n return lang as Language;\n }\n\n throw new Error(`Invalid language \"${lang}\" provided by config`);\n};\n\nconst resolveWorkspace = (workspace?: Workspace | `${Workspace}`): Workspace => {\n if (!workspace) {\n return Workspace.Single;\n }\n\n if (Object.values(Workspace).includes(workspace as Workspace)) {\n return workspace as Workspace;\n }\n\n throw new Error(`Invalid workspace \"${workspace}\" provided by config`);\n};\n\nconst resolveSharedDir = (workspace: Workspace, sharedDir: string): string => {\n return workspace === Workspace.Multi ? sharedDir : \".\";\n};\n\nconst getUserConfig = async (config: ReadonlyConfig): Promise<UserConfig> => {\n const configFilePath = getConfigFile(config);\n\n if (existsSync(configFilePath)) {\n const {config: userConfig} = await loadConfig<UserConfig>({\n configFile: configFilePath,\n dotenv: true,\n });\n\n if (config.debug) {\n console.log(\"Loaded user config:\", configFilePath);\n }\n\n return userConfig || {};\n } else if (config.debug) {\n console.warn(\"Config file not found:\", configFilePath);\n }\n\n return {};\n};\n\nconst validateConfig = (config: ReadonlyConfig): ReadonlyConfig => {\n const {\n outDir,\n srcDir,\n sharedDir,\n appsDir,\n appSrcDir,\n jsDir,\n cssDir,\n assetsDir,\n htmlDir,\n publicDir,\n localeDir,\n iconSrcDir,\n iconOutDir,\n } = config;\n\n if (\n [\n outDir,\n srcDir,\n sharedDir,\n appsDir,\n appSrcDir,\n jsDir,\n cssDir,\n assetsDir,\n htmlDir,\n publicDir,\n localeDir,\n iconSrcDir,\n iconOutDir,\n ]\n .filter(dir => _.isString(dir))\n .some(dir => dir.includes(\"..\"))\n ) {\n throw new Error('Directory paths cannot contain relative paths (\"..\") for security reasons.');\n }\n\n if (appsDir === sharedDir) {\n throw new Error(\"Apps directory (appsDir) and shared directory (sharedDir) cannot be the same.\");\n }\n\n if (srcDir === outDir) {\n throw new Error(\"Source directory (srcDir) and destination directory (outputDir) cannot be the same.\");\n }\n\n if (srcDir === \".\") {\n throw new Error('Source directory cannot be the root directory (\".\") for security reasons.');\n }\n\n if (publicDir === \".\" || [srcDir, outDir, appSrcDir].includes(publicDir)) {\n throw new Error(\n 'Public directory cannot be the root directory (\".\") or intersect with other root directories for security reasons.'\n );\n }\n\n return config;\n};\n\nconst updateLocalDotenv = (config: ReadonlyConfig): DotenvParseOutput => {\n const {mode, app, browser, manifestVersion} = config;\n\n const localVars: DotenvParseOutput = {\n APP: app,\n BROWSER: browser,\n MODE: mode,\n MANIFEST_VERSION: String(manifestVersion),\n };\n\n Object.assign(process.env, localVars);\n\n return localVars;\n};\n\nconst loadDotenv = (config: ReadonlyConfig): DotenvParseOutput => {\n const {mode, browser, debug} = config;\n\n const preset = [\n `.env.${mode}.${browser}.local`,\n `.env.${mode}.${browser}`,\n `.env.${browser}.local`,\n `.env.${browser}`,\n `.env.${mode}.local`,\n `.env.${mode}`,\n `.env.local`,\n `.env`,\n ];\n\n const appSourcePaths = preset.map(file => getAppSourcePath(config, file));\n const appPaths = preset.map(file => getAppPath(config, file));\n const rootPaths = preset.map(file => fromRootPath(config, file));\n\n const paths = [...appSourcePaths, ...appPaths, ...rootPaths];\n\n const {parsed: fileVars = {}} = dotenv.config({path: paths, quiet: !debug});\n\n return {...fileVars, ...updateLocalDotenv(config)};\n};\n\nexport default async (config: OptionalConfig): Promise<Config> => {\n let {\n command = Command.Build,\n debug = false,\n configFile = \"adnbn.config.ts\",\n browser = Browser.Chrome,\n app = \"myapp\",\n name = app,\n description,\n shortName,\n version = \"VERSION\",\n minimumVersion = \"MINIMUM_VERSION\",\n author = undefined,\n homepage = \"HOMEPAGE\",\n icon = DefaultIconGroupName,\n lang = Language.English,\n incognito,\n specific,\n workspace = Workspace.Single,\n rootDir = \".\",\n outDir = \"dist\",\n srcDir = \"src\",\n sharedDir = \"shared\",\n appsDir = \"apps\",\n appSrcDir = \".\",\n localeDir = \"locales\",\n iconSrcDir = \"icons\",\n iconOutDir = \"icons\",\n jsDir = \"js\",\n cssDir = \"css\",\n assetsDir = \"assets\",\n publicDir = \"public\",\n htmlDir = \".\",\n html = [],\n bundler = {},\n env = {},\n manifest,\n manifestVersion = (new Set<Browser>([Browser.Safari]).has(browser) ? 2 : 3) as ManifestVersion,\n mode = Mode.Development,\n analyze = false,\n plugins = [],\n mergeBackground = false,\n mergeCommands = false,\n mergeContentScripts = false,\n concatContentScripts = true,\n mergeStyles = true,\n mergeIcons = false,\n mergeLocales = true,\n mergePages = false,\n mergePopup = false,\n mergePublic = false,\n multiplePopup = false,\n mergeSidebar = false,\n multipleSidebar = false,\n mergeRelay = false,\n mergeService = false,\n mergeOffscreen = false,\n mergeSandbox = false,\n commonChunks = true,\n artifactName = \"[name]-[browser]-[mv]\",\n assetsFilename = mode === Mode.Production && command === Command.Build && !debug\n ? \"[contenthash:4][ext]\"\n : \"[name]-[contenthash:4][ext]\",\n jsFilename = mode === Mode.Production && command === Command.Build && !debug\n ? \"[contenthash:5].js\"\n : \"[name].js\",\n cssFilename = mode === Mode.Production && command === Command.Build && !debug\n ? \"[contenthash:5].css\"\n : \"[name].css\",\n cssIdentName = mode === Mode.Production && command === Command.Build && !debug\n ? \"[app]-[hash:base64:5]\"\n : \"[local]-[hash:base64:5]\",\n } = config;\n\n let resolvedConfig: Config = {\n command,\n debug,\n mode,\n browser,\n app,\n name,\n description,\n shortName,\n version,\n minimumVersion,\n author,\n homepage,\n lang: resolveLanguage(lang),\n icon,\n incognito,\n specific,\n manifest,\n manifestVersion,\n workspace: resolveWorkspace(workspace),\n rootDir,\n outDir,\n srcDir,\n sharedDir,\n appsDir,\n appSrcDir,\n jsDir,\n cssDir,\n assetsDir,\n publicDir,\n htmlDir,\n localeDir,\n iconSrcDir,\n iconOutDir,\n html,\n bundler,\n env,\n plugins,\n analyze,\n configFile,\n mergeBackground,\n mergeCommands,\n mergeContentScripts,\n concatContentScripts,\n mergeStyles,\n mergeIcons,\n mergeLocales,\n mergePages,\n mergePopup,\n mergePublic,\n multiplePopup,\n mergeSidebar,\n multipleSidebar,\n mergeRelay,\n mergeService,\n mergeOffscreen,\n mergeSandbox,\n commonChunks,\n artifactName,\n assetsFilename,\n jsFilename,\n cssFilename,\n cssIdentName,\n };\n\n let vars = loadDotenv(resolvedConfig);\n\n const {\n plugins: userPlugins = [],\n lang: userLang,\n workspace: userWorkspace,\n ...userConfig\n } = await getUserConfig(resolvedConfig);\n\n resolvedConfig = {\n ...resolvedConfig,\n ...userConfig,\n lang: resolveLanguage(userLang ?? resolvedConfig.lang),\n workspace: resolveWorkspace(userWorkspace ?? resolvedConfig.workspace),\n };\n\n resolvedConfig.sharedDir = resolveSharedDir(resolvedConfig.workspace, resolvedConfig.sharedDir);\n\n resolvedConfig = validateConfig(resolvedConfig);\n\n vars = {...vars, ...loadDotenv(resolvedConfig)};\n\n /**\n * IMPORTANT: the order of plugins matters. Early plugins prepare the environment and artifacts for the following ones\n * (e.g., environment variables/output/transpilation/assets → page/version generation → bundling).\n * Reordering may result in missing artifacts, incorrect configuration, or build failures.\n */\n const corePlugins: Plugin[] = [\n pluginDotenv(vars),\n pluginOutput(),\n pluginOptimization(),\n pluginTypescript(),\n pluginReact(),\n pluginIcon(),\n pluginAsset(),\n pluginStyle(),\n pluginLocale(),\n pluginMeta(),\n pluginContent(),\n pluginBackground(),\n pluginPopup(),\n pluginPublic(),\n pluginSidebar(),\n pluginOffscreen(),\n pluginSandbox(),\n pluginPage(),\n pluginView(),\n pluginHtml(),\n pluginVersion(),\n pluginBundler(),\n pluginManifest(),\n ];\n\n return {\n ...resolvedConfig,\n plugins: [...plugins, ...userPlugins, ...corePlugins],\n };\n};\n"],"mappings":"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","names":[]}
|
|
@@ -5,5 +5,6 @@ export declare const virtualContentScriptModule: (file: EntrypointFile) => strin
|
|
|
5
5
|
export declare const virtualOffscreenModule: (file: EntrypointFile, name: string) => string;
|
|
6
6
|
export declare const virtualOffscreenBackgroundModule: () => string;
|
|
7
7
|
export declare const virtualRelayModule: (file: EntrypointFile, name: string) => string;
|
|
8
|
+
export declare const virtualSandboxModule: (file: EntrypointFile, name: string) => string;
|
|
8
9
|
export declare const virtualServiceModule: (file: EntrypointFile, name: string) => string;
|
|
9
10
|
export declare const virtualViewModule: (file: EntrypointFile) => string;
|
|
@@ -19,6 +19,9 @@ var offscreen_background_default = 'import {OffscreenBackground} from "adnbn/off
|
|
|
19
19
|
// raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/relay.ts?raw
|
|
20
20
|
var relay_default = 'import type {RelayUnresolvedDefinition} from "adnbn";\nimport type {TransportType} from "adnbn/transport";\nimport {isValidTransportDefinition, isValidTransportInitFunction} from "adnbn/entry/transport";\nimport {Builder as RelayBuilder} from "adnbn/entry/relay";\n\nimport {Builder as ContentScriptBuilder} from "virtual:content-framework";\n\nimport * as module from "virtual:relay-entrypoint";\n\ntry {\n const relayName = "virtual:relay-name";\n\n const {default: defaultDefinition, ...otherDefinition} = module;\n\n let definition: RelayUnresolvedDefinition<TransportType> = otherDefinition;\n\n if (isValidTransportDefinition(defaultDefinition)) {\n definition = {...definition, ...defaultDefinition};\n } else if (isValidTransportInitFunction(defaultDefinition)) {\n definition = {...definition, init: defaultDefinition};\n }\n\n const {init, main, name, ...options} = definition;\n\n new RelayBuilder({\n name: relayName,\n init,\n main,\n ...options,\n })\n .content(new ContentScriptBuilder(options))\n .build()\n .catch(e => {\n console.error("Failed to build relay: ", e);\n });\n} catch (e) {\n console.error("The relay crashed on startup:", e);\n}\n';
|
|
21
21
|
|
|
22
|
+
// raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/sandbox.ts?raw
|
|
23
|
+
var sandbox_default = 'import type {SandboxUnresolvedDefinition} from "adnbn";\nimport type {TransportType} from "adnbn/transport";\nimport {isValidTransportDefinition, isValidTransportInitFunction} from "adnbn/entry/transport";\nimport {Builder as SandboxBuilder} from "adnbn/entry/sandbox";\n\nimport {Builder as ViewBuilder} from "virtual:view-framework";\n\nimport * as module from "virtual:sandbox-entrypoint";\n\ntry {\n const sandboxName = "virtual:sandbox-name";\n\n const {default: defaultDefinition, ...otherDefinition} = module;\n\n let definition: SandboxUnresolvedDefinition<TransportType> = otherDefinition;\n\n if (isValidTransportDefinition(defaultDefinition)) {\n definition = {...definition, ...defaultDefinition};\n } else if (isValidTransportInitFunction(defaultDefinition)) {\n definition = {...definition, init: defaultDefinition};\n }\n\n const {init, main, name, ...options} = definition;\n\n new SandboxBuilder({\n name: sandboxName,\n init,\n main,\n ...options,\n })\n .view(new ViewBuilder(options))\n .build()\n .catch(e => {\n console.error("Failed to build sandbox: ", e);\n });\n} catch (e) {\n console.error("The sandbox crashed on startup:", e);\n}\n';
|
|
24
|
+
|
|
22
25
|
// raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/view.ts?raw
|
|
23
26
|
var view_default = 'import type {ViewDefinition, ViewOptions} from "adnbn";\nimport {resolve} from "adnbn/locale";\nimport {isViewDefinition, isValidViewDefinitionRenderValue} from "adnbn/entry/view";\n\nimport view from "virtual:view-framework";\n\nimport * as module from "virtual:view-entrypoint";\n\ntry {\n const {default: defaultDefinition, ...otherDefinition} = module;\n\n let definition: ViewDefinition<ViewOptions> = otherDefinition;\n\n if (isViewDefinition(defaultDefinition)) {\n definition = {...definition, ...defaultDefinition};\n } else if (isValidViewDefinitionRenderValue(defaultDefinition)) {\n definition = {...definition, render: defaultDefinition};\n }\n\n const {title, ...options} = definition;\n\n view({title: title ? resolve(title) : undefined, ...options});\n} catch (e) {\n console.error("The view crashed on startup:", e);\n}\n';
|
|
24
27
|
|
|
@@ -29,7 +32,7 @@ import { inferEntrypointFramework } from "./../../cli/entrypoint/index.js";
|
|
|
29
32
|
var PackageName = "adnbn";
|
|
30
33
|
|
|
31
34
|
// src/cli/virtual/index.ts
|
|
32
|
-
var templates = { background: background_default, command: command_default, content: content_default, offscreen: offscreen_default, relay: relay_default, view: view_default, transport: transport_default };
|
|
35
|
+
var templates = { background: background_default, command: command_default, content: content_default, offscreen: offscreen_default, relay: relay_default, sandbox: sandbox_default, view: view_default, transport: transport_default };
|
|
33
36
|
var getEntryFramework = (file, entry) => {
|
|
34
37
|
return `${PackageName}/entry/${entry}/${inferEntrypointFramework(file)}`;
|
|
35
38
|
};
|
|
@@ -57,6 +60,9 @@ var virtualOffscreenBackgroundModule = () => {
|
|
|
57
60
|
var virtualRelayModule = (file, name) => {
|
|
58
61
|
return getVirtualModule(file, "relay").replace("virtual:relay-name", name).replace(`virtual:content-framework`, getEntryFramework(file, "content"));
|
|
59
62
|
};
|
|
63
|
+
var virtualSandboxModule = (file, name) => {
|
|
64
|
+
return getVirtualModule(file, "sandbox").replace("virtual:sandbox-name", name).replace(`virtual:view-framework`, getEntryFramework(file, "view"));
|
|
65
|
+
};
|
|
60
66
|
var virtualServiceModule = (file, name) => {
|
|
61
67
|
return getTransportModule(file, name, "service");
|
|
62
68
|
};
|
|
@@ -70,6 +76,7 @@ export {
|
|
|
70
76
|
virtualOffscreenBackgroundModule,
|
|
71
77
|
virtualOffscreenModule,
|
|
72
78
|
virtualRelayModule,
|
|
79
|
+
virtualSandboxModule,
|
|
73
80
|
virtualServiceModule,
|
|
74
81
|
virtualViewModule
|
|
75
82
|
};
|