adnbn 0.13.0 → 0.14.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/manifest/ManifestBase.d.ts +4 -1
- package/dist/cli/builders/manifest/ManifestBase.js +14 -0
- package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
- package/dist/cli/entrypoint/finder/AbstractOverrideFinder.d.ts +15 -0
- package/dist/cli/entrypoint/finder/AbstractOverrideFinder.js +20 -0
- package/dist/cli/entrypoint/finder/AbstractOverrideFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/AbstractViewFinder.d.ts +6 -1
- package/dist/cli/entrypoint/finder/AbstractViewFinder.js +15 -0
- package/dist/cli/entrypoint/finder/AbstractViewFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/BookmarksFinder.d.ts +9 -0
- package/dist/cli/entrypoint/finder/BookmarksFinder.js +18 -0
- package/dist/cli/entrypoint/finder/BookmarksFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/CommandFinder.d.ts +4 -0
- package/dist/cli/entrypoint/finder/CommandFinder.js +20 -6
- package/dist/cli/entrypoint/finder/CommandFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/HistoryFinder.d.ts +9 -0
- package/dist/cli/entrypoint/finder/HistoryFinder.js +18 -0
- package/dist/cli/entrypoint/finder/HistoryFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/NewtabFinder.d.ts +9 -0
- package/dist/cli/entrypoint/finder/NewtabFinder.js +18 -0
- package/dist/cli/entrypoint/finder/NewtabFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/OptionsFinder.d.ts +2 -2
- package/dist/cli/entrypoint/finder/OptionsFinder.js +2 -2
- package/dist/cli/entrypoint/finder/OptionsFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/PageFinder.js +1 -1
- 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/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 +2 -3
- package/dist/cli/entrypoint/finder/ViewCspFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/ViewPermissionsFinder.d.ts +22 -0
- package/dist/cli/entrypoint/finder/ViewPermissionsFinder.js +43 -0
- package/dist/cli/entrypoint/finder/ViewPermissionsFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/index.d.ts +5 -0
- package/dist/cli/entrypoint/finder/index.js +50 -40
- package/dist/cli/entrypoint/finder/index.js.map +1 -1
- package/dist/cli/entrypoint/name/NameGenerator.d.ts +2 -0
- package/dist/cli/entrypoint/name/NameGenerator.js +5 -1
- package/dist/cli/entrypoint/name/NameGenerator.js.map +1 -1
- package/dist/cli/entrypoint/parser/AbstractOverrideParser.d.ts +9 -0
- package/dist/cli/entrypoint/parser/AbstractOverrideParser.js +11 -0
- package/dist/cli/entrypoint/parser/AbstractOverrideParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/BackgroundParser.js +3 -6
- package/dist/cli/entrypoint/parser/BackgroundParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/BookmarksParser.d.ts +5 -0
- package/dist/cli/entrypoint/parser/BookmarksParser.js +10 -0
- package/dist/cli/entrypoint/parser/BookmarksParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/HistoryParser.d.ts +5 -0
- package/dist/cli/entrypoint/parser/HistoryParser.js +10 -0
- package/dist/cli/entrypoint/parser/HistoryParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/NewtabParser.d.ts +5 -0
- package/dist/cli/entrypoint/parser/NewtabParser.js +10 -0
- package/dist/cli/entrypoint/parser/NewtabParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/OptionsParser.js +2 -1
- package/dist/cli/entrypoint/parser/OptionsParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/PopupParser.js +2 -1
- package/dist/cli/entrypoint/parser/PopupParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/SidebarParser.js +2 -1
- package/dist/cli/entrypoint/parser/SidebarParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/ViewCspParser.d.ts +1 -1
- package/dist/cli/entrypoint/parser/ViewParser.d.ts +1 -1243
- package/dist/cli/entrypoint/parser/ViewParser.js +2 -72
- package/dist/cli/entrypoint/parser/ViewParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/index.d.ts +4 -0
- package/dist/cli/entrypoint/parser/index.js +28 -20
- package/dist/cli/entrypoint/parser/index.js.map +1 -1
- package/dist/cli/entrypoint/parser/schemas/html.d.ts +903 -0
- package/dist/cli/entrypoint/parser/schemas/html.js +64 -0
- package/dist/cli/entrypoint/parser/schemas/html.js.map +1 -0
- package/dist/cli/entrypoint/parser/schemas/permissions.d.ts +23 -0
- package/dist/cli/entrypoint/parser/schemas/permissions.js +11 -0
- package/dist/cli/entrypoint/parser/schemas/permissions.js.map +1 -0
- package/dist/cli/plugins/index.d.ts +1 -0
- package/dist/cli/plugins/index.js +22 -20
- package/dist/cli/plugins/index.js.map +1 -1
- package/dist/cli/plugins/options/index.js +1 -1
- package/dist/cli/plugins/options/index.js.map +1 -1
- package/dist/cli/plugins/override/Override.d.ts +31 -0
- package/dist/cli/plugins/override/Override.js +112 -0
- package/dist/cli/plugins/override/Override.js.map +1 -0
- package/dist/cli/plugins/override/index.d.ts +2 -0
- package/dist/cli/plugins/override/index.js +48 -0
- package/dist/cli/plugins/override/index.js.map +1 -0
- package/dist/cli/plugins/popup/index.js +1 -1
- package/dist/cli/plugins/popup/index.js.map +1 -1
- package/dist/cli/plugins/sidebar/index.js +1 -2
- package/dist/cli/plugins/sidebar/index.js.map +1 -1
- package/dist/cli/plugins/view/View.d.ts +1 -1
- package/dist/cli/plugins/view/View.js +2 -10
- package/dist/cli/plugins/view/View.js.map +1 -1
- package/dist/cli/plugins/view/index.js +10 -1
- package/dist/cli/plugins/view/index.js.map +1 -1
- package/dist/cli/resolvers/config.js +2 -0
- package/dist/cli/resolvers/config.js.map +1 -1
- package/dist/cli/virtual/index.js +14 -17
- package/dist/cli/virtual/virtual.d.ts +7 -127
- package/dist/entry/background/Builder.js +1 -1
- package/dist/entry/background/Builder.js.map +1 -1
- package/dist/entry/background/index.d.ts +1 -1
- package/dist/entry/background/index.js +3 -2
- package/dist/entry/background/index.js.map +1 -1
- package/dist/entry/background/resolvers/definition.d.ts +5 -1
- package/dist/entry/background/resolvers/definition.js +15 -4
- package/dist/entry/background/resolvers/definition.js.map +1 -1
- package/dist/entry/command/Builder.js +1 -1
- package/dist/entry/command/Builder.js.map +1 -1
- package/dist/entry/command/index.d.ts +1 -1
- package/dist/entry/command/index.js +3 -2
- package/dist/entry/command/index.js.map +1 -1
- package/dist/entry/command/resolvers/definition.d.ts +6 -2
- package/dist/entry/command/resolvers/definition.js +14 -4
- package/dist/entry/command/resolvers/definition.js.map +1 -1
- package/dist/entry/content/adapters/react/Builder.js +4 -2
- package/dist/entry/content/adapters/react/Builder.js.map +1 -1
- package/dist/entry/content/adapters/react/Node.js +11 -6
- package/dist/entry/content/adapters/react/Node.js.map +1 -1
- package/dist/entry/content/adapters/react/definition.js +3 -2
- package/dist/entry/content/adapters/react/definition.js.map +1 -1
- package/dist/entry/content/adapters/vanilla/Builder.js +2 -2
- package/dist/entry/content/adapters/vanilla/Builder.js.map +1 -1
- package/dist/entry/content/adapters/vanilla/Node.js +3 -5
- package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
- package/dist/entry/content/adapters/vanilla/definition.js +2 -2
- package/dist/entry/content/adapters/vanilla/definition.js.map +1 -1
- package/dist/entry/content/lifecycle/Builder.js +5 -9
- package/dist/entry/content/lifecycle/Builder.js.map +1 -1
- package/dist/entry/core/react.d.ts +6 -0
- package/dist/entry/core/react.js +16 -0
- package/dist/entry/core/react.js.map +1 -0
- package/dist/entry/core/render.d.ts +5 -0
- package/dist/entry/core/render.js +16 -0
- package/dist/entry/core/render.js.map +1 -0
- package/dist/entry/offscreen/Builder.d.ts +6 -7
- package/dist/entry/offscreen/Builder.js +12 -13
- package/dist/entry/offscreen/Builder.js.map +1 -1
- package/dist/entry/offscreen/TransportBuilder.d.ts +1 -1
- package/dist/entry/offscreen/TransportBuilder.js +4 -3
- package/dist/entry/offscreen/TransportBuilder.js.map +1 -1
- package/dist/entry/offscreen/index.d.ts +5 -2
- package/dist/entry/offscreen/index.js +8 -2
- package/dist/entry/offscreen/index.js.map +1 -1
- package/dist/entry/offscreen/resolvers/definition.d.ts +4 -0
- package/dist/entry/offscreen/resolvers/definition.js +8 -0
- package/dist/entry/offscreen/resolvers/definition.js.map +1 -0
- package/dist/entry/relay/resolvers/definition.d.ts +1 -1
- package/dist/entry/relay/resolvers/definition.js +2 -10
- package/dist/entry/relay/resolvers/definition.js.map +1 -1
- package/dist/entry/sandbox/Builder.d.ts +6 -7
- package/dist/entry/sandbox/Builder.js +8 -12
- package/dist/entry/sandbox/Builder.js.map +1 -1
- package/dist/entry/sandbox/TransportBuilder.d.ts +1 -1
- package/dist/entry/sandbox/TransportBuilder.js +4 -3
- package/dist/entry/sandbox/TransportBuilder.js.map +1 -1
- package/dist/entry/sandbox/index.d.ts +7 -2
- package/dist/entry/sandbox/index.js +10 -4
- package/dist/entry/sandbox/index.js.map +1 -1
- package/dist/entry/sandbox/resolvers/definition.d.ts +4 -0
- package/dist/entry/sandbox/resolvers/definition.js +8 -0
- package/dist/entry/sandbox/resolvers/definition.js.map +1 -0
- package/dist/entry/service/index.d.ts +1 -0
- package/dist/entry/service/index.js +3 -1
- package/dist/entry/service/index.js.map +1 -1
- package/dist/entry/service/resolvers/definition.d.ts +3 -0
- package/dist/entry/service/resolvers/definition.js +8 -0
- package/dist/entry/service/resolvers/definition.js.map +1 -0
- package/dist/entry/transport/AbstractBuilder.js +1 -1
- package/dist/entry/transport/AbstractBuilder.js.map +1 -1
- package/dist/entry/transport/resolvers/definition.d.ts +7 -5
- package/dist/entry/transport/resolvers/definition.js +15 -4
- package/dist/entry/transport/resolvers/definition.js.map +1 -1
- package/dist/entry/view/{core/Builder.d.ts → Builder.d.ts} +9 -4
- package/dist/entry/view/Builder.js +62 -0
- package/dist/entry/view/Builder.js.map +1 -0
- package/dist/entry/view/adapters/react/Builder.d.ts +6 -7
- package/dist/entry/view/adapters/react/Builder.js +20 -23
- package/dist/entry/view/adapters/react/Builder.js.map +1 -1
- package/dist/entry/view/adapters/react/definition.d.ts +2 -0
- package/dist/entry/view/adapters/react/definition.js +13 -0
- package/dist/entry/view/adapters/react/definition.js.map +1 -0
- package/dist/entry/view/adapters/react/index.d.ts +2 -1
- package/dist/entry/view/adapters/react/index.js +3 -1
- package/dist/entry/view/adapters/react/index.js.map +1 -1
- package/dist/entry/view/adapters/vanilla/Builder.d.ts +5 -6
- package/dist/entry/view/adapters/vanilla/Builder.js +14 -25
- package/dist/entry/view/adapters/vanilla/Builder.js.map +1 -1
- package/dist/entry/view/adapters/vanilla/definition.d.ts +2 -0
- package/dist/entry/view/adapters/vanilla/definition.js +9 -0
- package/dist/entry/view/adapters/vanilla/definition.js.map +1 -0
- package/dist/entry/view/adapters/vanilla/index.d.ts +2 -1
- package/dist/entry/view/adapters/vanilla/index.js +3 -1
- package/dist/entry/view/adapters/vanilla/index.js.map +1 -1
- package/dist/entry/view/{core/resolvers → resolvers}/container.d.ts +1 -1
- package/dist/entry/view/resolvers/container.js.map +1 -0
- package/dist/entry/view/resolvers/definition.d.ts +3 -0
- package/dist/entry/view/resolvers/definition.js +18 -0
- package/dist/entry/view/resolvers/definition.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/override.d.ts +5 -0
- package/dist/main/override.js +15 -0
- package/dist/main/override.js.map +1 -0
- package/dist/main/permissions.d.ts +1 -0
- package/dist/main/permissions.js +1 -0
- package/dist/main/view.d.ts +1 -1
- package/dist/types/background.d.ts +2 -8
- package/dist/types/background.js.map +1 -1
- package/dist/types/entrypoint.d.ts +5 -1
- package/dist/types/entrypoint.js +3 -0
- package/dist/types/entrypoint.js.map +1 -1
- package/dist/types/manifest.d.ts +20 -2
- package/dist/types/manifest.js.map +1 -1
- package/dist/types/offscreen.d.ts +2 -2
- package/dist/types/offscreen.js.map +1 -1
- package/dist/types/options.d.ts +3 -2
- package/dist/types/override.d.ts +22 -0
- package/dist/types/override.js +1 -0
- package/dist/types/override.js.map +1 -0
- package/dist/types/page.d.ts +1 -1
- package/dist/types/permissions.d.ts +39 -0
- package/dist/types/permissions.js +1 -0
- package/dist/types/permissions.js.map +1 -0
- package/dist/types/plugin.d.ts +4 -1
- package/dist/types/popup.d.ts +3 -2
- package/dist/types/sandbox.d.ts +2 -2
- package/dist/types/sandbox.js.map +1 -1
- package/dist/types/sidebar.d.ts +3 -2
- package/dist/types/sidebar.js.map +1 -1
- package/dist/types/view/adapters/index.d.ts +2 -0
- package/dist/types/view/adapters/index.js +1 -0
- package/dist/types/view/adapters/index.js.map +1 -0
- package/dist/types/view/adapters/react.d.ts +4 -0
- package/dist/types/view/adapters/react.js +1 -0
- package/dist/types/view/adapters/react.js.map +1 -0
- package/dist/types/view/adapters/vanilla.d.ts +1 -0
- package/dist/types/view/adapters/vanilla.js +1 -0
- package/dist/types/view/adapters/vanilla.js.map +1 -0
- package/dist/types/{view.d.ts → view/common.d.ts} +2 -14
- package/dist/types/view/common.js +1 -0
- package/dist/types/view/common.js.map +1 -0
- package/dist/types/view/definition.d.ts +15 -0
- package/dist/types/view/definition.js +1 -0
- package/dist/types/view/definition.js.map +1 -0
- package/dist/types/view/index.d.ts +4 -0
- package/dist/types/view/index.js +1 -0
- package/dist/types/view/index.js.map +1 -0
- package/dist/types/view/render.d.ts +7 -0
- package/dist/types/view/render.js +1 -0
- package/dist/types/view/render.js.map +1 -0
- package/package.json +1 -1
- package/dist/entry/background/resolvers/index.d.ts +0 -1
- package/dist/entry/background/resolvers/index.js +0 -2
- package/dist/entry/background/resolvers/index.js.map +0 -1
- package/dist/entry/command/resolvers/index.d.ts +0 -1
- package/dist/entry/command/resolvers/index.js +0 -2
- package/dist/entry/command/resolvers/index.js.map +0 -1
- package/dist/entry/content/adapters/vanilla/utils.d.ts +0 -1
- package/dist/entry/content/adapters/vanilla/utils.js +0 -7
- package/dist/entry/content/adapters/vanilla/utils.js.map +0 -1
- package/dist/entry/content/resolvers/index.d.ts +0 -6
- package/dist/entry/content/resolvers/index.js +0 -7
- package/dist/entry/content/resolvers/index.js.map +0 -1
- package/dist/entry/transport/index.d.ts +0 -1
- package/dist/entry/transport/index.js +0 -2
- package/dist/entry/transport/index.js.map +0 -1
- package/dist/entry/transport/resolvers/index.d.ts +0 -1
- package/dist/entry/transport/resolvers/index.js +0 -2
- package/dist/entry/transport/resolvers/index.js.map +0 -1
- package/dist/entry/view/adapters/react/resolvers/render.d.ts +0 -2
- package/dist/entry/view/adapters/react/resolvers/render.js +0 -11
- package/dist/entry/view/adapters/react/resolvers/render.js.map +0 -1
- package/dist/entry/view/core/Builder.js +0 -35
- package/dist/entry/view/core/Builder.js.map +0 -1
- package/dist/entry/view/core/resolvers/container.js.map +0 -1
- package/dist/entry/view/core/resolvers/definition.d.ts +0 -3
- package/dist/entry/view/core/resolvers/definition.js +0 -12
- package/dist/entry/view/core/resolvers/definition.js.map +0 -1
- package/dist/entry/view/core/resolvers/render.d.ts +0 -3
- package/dist/entry/view/core/resolvers/render.js +0 -18
- package/dist/entry/view/core/resolvers/render.js.map +0 -1
- package/dist/entry/view/index.d.ts +0 -1
- package/dist/entry/view/index.js +0 -2
- package/dist/entry/view/index.js.map +0 -1
- package/dist/types/view.js +0 -1
- /package/dist/cli/virtual/{transport.d.ts → service.d.ts} +0 -0
- /package/dist/entry/view/{core/resolvers → resolvers}/container.js +0 -0
- /package/dist/{types/view.js.map → main/permissions.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/plugins/view/index.ts"],"sourcesContent":["import {NormalModule} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {onlyViaTopLevelEntry} from \"@cli/bundler\";\nimport {getResolvePath, getSourcePath} from \"@cli/resolvers/path\";\n\nexport {default as View} from \"./View\";\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:view\",\n bundler: ({config}) => {\n const entryTypeFilter = onlyViaTopLevelEntry([\"page\"
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/view/index.ts"],"sourcesContent":["import {NormalModule} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {onlyViaTopLevelEntry} from \"@cli/bundler\";\nimport {getResolvePath, getSourcePath} from \"@cli/resolvers/path\";\n\nexport {default as View} from \"./View\";\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:view\",\n bundler: ({config}) => {\n const entryTypeFilter = onlyViaTopLevelEntry([\n \"page\",\n \"popup\",\n \"sidebar\",\n \"offscreen\",\n \"options\",\n \"newtab\",\n \"bookmarks\",\n \"history\",\n ]);\n\n return {\n optimization: {\n splitChunks: {\n cacheGroups: {\n adnbnView: {\n minChunks: 2,\n minSize: 0,\n name: \"common.view\",\n test: (module, context) => {\n const nm = module as NormalModule;\n\n if (!nm.resource) {\n return false;\n }\n\n if (nm.resource.startsWith(getResolvePath(getSourcePath(config)))) {\n return false;\n }\n\n return entryTypeFilter(module, context);\n },\n enforce: false,\n reuseExistingChunk: true,\n priority: 50,\n },\n },\n },\n },\n };\n },\n };\n});\n"],"mappings":"AAEA,SAAQ,oBAAmB;AAE3B,SAAQ,4BAA2B;AACnC,SAAQ,gBAAgB,qBAAoB;AAE5C,SAAmB,WAAXA,gBAAsB;AAE9B,IAAO,eAAQ,aAAa,MAAM;AAC9B,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,YAAM,kBAAkB,qBAAqB;AAAA,QACzC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAED,aAAO;AAAA,QACH,cAAc;AAAA,UACV,aAAa;AAAA,YACT,aAAa;AAAA,cACT,WAAW;AAAA,gBACP,WAAW;AAAA,gBACX,SAAS;AAAA,gBACT,MAAM;AAAA,gBACN,MAAM,CAAC,QAAQ,YAAY;AACvB,wBAAM,KAAK;AAEX,sBAAI,CAAC,GAAG,UAAU;AACd,2BAAO;AAAA,kBACX;AAEA,sBAAI,GAAG,SAAS,WAAW,eAAe,cAAc,MAAM,CAAC,CAAC,GAAG;AAC/D,2BAAO;AAAA,kBACX;AAEA,yBAAO,gBAAgB,QAAQ,OAAO;AAAA,gBAC1C;AAAA,gBACA,SAAS;AAAA,gBACT,oBAAoB;AAAA,gBACpB,UAAU;AAAA,cACd;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":["default"]}
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
pluginOptimization,
|
|
18
18
|
pluginOptions,
|
|
19
19
|
pluginOutput,
|
|
20
|
+
pluginOverride,
|
|
20
21
|
pluginPage,
|
|
21
22
|
pluginPopup,
|
|
22
23
|
pluginPublic,
|
|
@@ -308,6 +309,7 @@ var config_default = async (config) => {
|
|
|
308
309
|
pluginContent(),
|
|
309
310
|
pluginBackground(),
|
|
310
311
|
pluginOptions(),
|
|
312
|
+
pluginOverride(),
|
|
311
313
|
pluginPopup(),
|
|
312
314
|
pluginPublic(),
|
|
313
315
|
pluginSidebar(),
|
|
@@ -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 pluginOptions,\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 pluginOptions(),\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":[]}
|
|
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 pluginOptions,\n pluginOutput,\n pluginOverride,\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 pluginOptions(),\n pluginOverride(),\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":"AAAA,SAAQ,kBAAiB;AACzB,OAAO,YAAsC;AAC7C,SAAQ,kBAAiB;AACzB,OAAO,OAAO;AAEd;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,SAAQ,cAAc,YAAY,kBAAkB,qBAAoB;AAGxE,SAAQ,SAAS,MAAM,iBAAgB;AACvC,SAAQ,eAAc;AAGtB,SAAQ,UAAU,qBAAoB;AACtC,SAAQ,4BAA2B;AAEnC,MAAM,kBAAkB,CAAC,SAA8C;AACnE,MAAI,CAAC,MAAM;AACP,WAAO,SAAS;AAAA,EACpB;AAEA,MAAI,cAAc,IAAI,IAAI,GAAG;AACzB,WAAO;AAAA,EACX;AAEA,QAAM,IAAI,MAAM,qBAAqB,IAAI,sBAAsB;AACnE;AAEA,MAAM,mBAAmB,CAAC,cAAsD;AAC5E,MAAI,CAAC,WAAW;AACZ,WAAO,UAAU;AAAA,EACrB;AAEA,MAAI,OAAO,OAAO,SAAS,EAAE,SAAS,SAAsB,GAAG;AAC3D,WAAO;AAAA,EACX;AAEA,QAAM,IAAI,MAAM,sBAAsB,SAAS,sBAAsB;AACzE;AAEA,MAAM,mBAAmB,CAAC,WAAsB,cAA8B;AAC1E,SAAO,cAAc,UAAU,QAAQ,YAAY;AACvD;AAEA,MAAM,gBAAgB,OAAO,WAAgD;AACzE,QAAM,iBAAiB,cAAc,MAAM;AAE3C,MAAI,WAAW,cAAc,GAAG;AAC5B,UAAM,EAAC,QAAQ,WAAU,IAAI,MAAM,WAAuB;AAAA,MACtD,YAAY;AAAA,MACZ,QAAQ;AAAA,IACZ,CAAC;AAED,QAAI,OAAO,OAAO;AACd,cAAQ,IAAI,uBAAuB,cAAc;AAAA,IACrD;AAEA,WAAO,cAAc,CAAC;AAAA,EAC1B,WAAW,OAAO,OAAO;AACrB,YAAQ,KAAK,0BAA0B,cAAc;AAAA,EACzD;AAEA,SAAO,CAAC;AACZ;AAEA,MAAM,iBAAiB,CAAC,WAA2C;AAC/D,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AAEJ,MACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,EACK,OAAO,SAAO,EAAE,SAAS,GAAG,CAAC,EAC7B,KAAK,SAAO,IAAI,SAAS,IAAI,CAAC,GACrC;AACE,UAAM,IAAI,MAAM,4EAA4E;AAAA,EAChG;AAEA,MAAI,YAAY,WAAW;AACvB,UAAM,IAAI,MAAM,+EAA+E;AAAA,EACnG;AAEA,MAAI,WAAW,QAAQ;AACnB,UAAM,IAAI,MAAM,qFAAqF;AAAA,EACzG;AAEA,MAAI,WAAW,KAAK;AAChB,UAAM,IAAI,MAAM,2EAA2E;AAAA,EAC/F;AAEA,MAAI,cAAc,OAAO,CAAC,QAAQ,QAAQ,SAAS,EAAE,SAAS,SAAS,GAAG;AACtE,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AACX;AAEA,MAAM,oBAAoB,CAAC,WAA8C;AACrE,QAAM,EAAC,MAAM,KAAK,SAAS,gBAAe,IAAI;AAE9C,QAAM,YAA+B;AAAA,IACjC,KAAK;AAAA,IACL,SAAS;AAAA,IACT,MAAM;AAAA,IACN,kBAAkB,OAAO,eAAe;AAAA,EAC5C;AAEA,SAAO,OAAO,QAAQ,KAAK,SAAS;AAEpC,SAAO;AACX;AAEA,MAAM,aAAa,CAAC,WAA8C;AAC9D,QAAM,EAAC,MAAM,SAAS,MAAK,IAAI;AAE/B,QAAM,SAAS;AAAA,IACX,QAAQ,IAAI,IAAI,OAAO;AAAA,IACvB,QAAQ,IAAI,IAAI,OAAO;AAAA,IACvB,QAAQ,OAAO;AAAA,IACf,QAAQ,OAAO;AAAA,IACf,QAAQ,IAAI;AAAA,IACZ,QAAQ,IAAI;AAAA,IACZ;AAAA,IACA;AAAA,EACJ;AAEA,QAAM,iBAAiB,OAAO,IAAI,UAAQ,iBAAiB,QAAQ,IAAI,CAAC;AACxE,QAAM,WAAW,OAAO,IAAI,UAAQ,WAAW,QAAQ,IAAI,CAAC;AAC5D,QAAM,YAAY,OAAO,IAAI,UAAQ,aAAa,QAAQ,IAAI,CAAC;AAE/D,QAAM,QAAQ,CAAC,GAAG,gBAAgB,GAAG,UAAU,GAAG,SAAS;AAE3D,QAAM,EAAC,QAAQ,WAAW,CAAC,EAAC,IAAI,OAAO,OAAO,EAAC,MAAM,OAAO,OAAO,CAAC,MAAK,CAAC;AAE1E,SAAO,EAAC,GAAG,UAAU,GAAG,kBAAkB,MAAM,EAAC;AACrD;AAEA,IAAO,iBAAQ,OAAO,WAA4C;AAC9D,MAAI;AAAA,IACA,UAAU,QAAQ;AAAA,IAClB,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,UAAU,QAAQ;AAAA,IAClB,MAAM;AAAA,IACN,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO,SAAS;AAAA,IAChB;AAAA,IACA;AAAA,IACA,YAAY,UAAU;AAAA,IACtB,UAAU;AAAA,IACV,SAAS;AAAA,IACT,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,OAAO,CAAC;AAAA,IACR,UAAU,CAAC;AAAA,IACX,MAAM,CAAC;AAAA,IACP;AAAA,IACA,mBAAmB,oBAAI,IAAa,CAAC,QAAQ,MAAM,CAAC,GAAE,IAAI,OAAO,IAAI,IAAI;AAAA,IACzE,OAAO,KAAK;AAAA,IACZ,UAAU;AAAA,IACV,UAAU,CAAC;AAAA,IACX,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,sBAAsB;AAAA,IACtB,uBAAuB;AAAA,IACvB,cAAc;AAAA,IACd,aAAa;AAAA,IACb,eAAe;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,IACb,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,eAAe;AAAA,IACf,eAAe;AAAA,IACf,iBAAiB,SAAS,KAAK,cAAc,YAAY,QAAQ,SAAS,CAAC,QACrE,yBACA;AAAA,IACN,aAAa,SAAS,KAAK,cAAc,YAAY,QAAQ,SAAS,CAAC,QACjE,uBACA;AAAA,IACN,cAAc,SAAS,KAAK,cAAc,YAAY,QAAQ,SAAS,CAAC,QAClE,wBACA;AAAA,IACN,eAAe,SAAS,KAAK,cAAc,YAAY,QAAQ,SAAS,CAAC,QACnE,0BACA;AAAA,EACV,IAAI;AAEJ,MAAI,iBAAyB;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM,gBAAgB,IAAI;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,iBAAiB,SAAS;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,MAAI,OAAO,WAAW,cAAc;AAEpC,QAAM;AAAA,IACF,SAAS,cAAc,CAAC;AAAA,IACxB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,GAAG;AAAA,EACP,IAAI,MAAM,cAAc,cAAc;AAEtC,mBAAiB;AAAA,IACb,GAAG;AAAA,IACH,GAAG;AAAA,IACH,MAAM,gBAAgB,YAAY,eAAe,IAAI;AAAA,IACrD,WAAW,iBAAiB,iBAAiB,eAAe,SAAS;AAAA,EACzE;AAEA,iBAAe,YAAY,iBAAiB,eAAe,WAAW,eAAe,SAAS;AAE9F,mBAAiB,eAAe,cAAc;AAE9C,SAAO,EAAC,GAAG,MAAM,GAAG,WAAW,cAAc,EAAC;AAO9C,QAAM,cAAwB;AAAA,IAC1B,aAAa,IAAI;AAAA,IACjB,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,WAAW;AAAA,IACX,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,IACd,cAAc;AAAA,IACd,eAAe;AAAA,EACnB;AAEA,SAAO;AAAA,IACH,GAAG;AAAA,IACH,SAAS,CAAC,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW;AAAA,EACxD;AACJ;","names":[]}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
// raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/background.ts?raw
|
|
2
|
-
var background_default = 'import
|
|
2
|
+
var background_default = 'import background, {resolveDefinition} from "adnbn/entry/background";\n\nimport * as module from "virtual:background-entrypoint";\n\ntry {\n background(resolveDefinition(module));\n} catch (e) {\n console.error("The background crashed on startup:", e);\n}\n';
|
|
3
3
|
|
|
4
4
|
// raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/command.ts?raw
|
|
5
|
-
var command_default = 'import
|
|
5
|
+
var command_default = 'import command, {resolveDefinition} from "adnbn/entry/command";\n\nimport * as module from "virtual:command-entrypoint";\n\ntry {\n command(resolveDefinition(module, "virtual:command-name"));\n} catch (e) {\n console.error("The command crashed on startup:", e);\n}\n';
|
|
6
6
|
|
|
7
7
|
// raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/content.ts?raw
|
|
8
8
|
var content_default = 'import contentScript, {resolveDefinition} from "virtual:content-builder";\n\nimport * as module from "virtual:content-entrypoint";\n\ntry {\n contentScript(resolveDefinition(module));\n} catch (e) {\n console.error("The content script crashed on startup:", e);\n}\n';
|
|
9
9
|
|
|
10
|
-
// raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/transport.ts?raw
|
|
11
|
-
var transport_default = 'import type {TransportOptions, TransportType, TransportUnresolvedDefinition} from "adnbn/transport";\nimport {isValidTransportDefinition, isValidTransportInitFunction} from "adnbn/entry/transport";\n\n//@ts-ignore\nimport transport from "adnbn/entry/:entry";\n\nimport * as module from "virtual:transport-entrypoint";\n\ntry {\n const transportName = "virtual:transport-name";\n\n const {default: defaultDefinition, ...otherDefinition} = module;\n\n let definition: TransportUnresolvedDefinition<TransportOptions, 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, name, ...options} = definition;\n\n transport({name: transportName, init, ...options});\n} catch (e) {\n console.error("The :entry crashed on startup:", e);\n}\n';
|
|
12
|
-
|
|
13
10
|
// raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/offscreen.ts?raw
|
|
14
|
-
var offscreen_default = 'import
|
|
11
|
+
var offscreen_default = 'import offscreen, {resolveDefinition} from "adnbn/entry/offscreen";\n\nimport {Builder as ViewBuilder} from "virtual:view-builder";\n\nimport * as module from "virtual:offscreen-entrypoint";\n\ntry {\n offscreen(resolveDefinition(module, "virtual:offscreen-name"), ViewBuilder);\n} catch (e) {\n console.error("The offscreen crashed on startup:", e);\n}\n';
|
|
15
12
|
|
|
16
13
|
// raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/offscreen.background.ts?raw
|
|
17
14
|
var offscreen_background_default = 'import {OffscreenBackground} from "adnbn/offscreen";\n\ntry {\n new OffscreenBackground().build();\n} catch (e) {\n console.error("Failed to build offscreen layer on background:", e);\n}\n';
|
|
@@ -20,10 +17,13 @@ var offscreen_background_default = 'import {OffscreenBackground} from "adnbn/off
|
|
|
20
17
|
var relay_default = 'import relay, {resolveDefinition} from "adnbn/entry/relay";\n\nimport {Builder as ContentBuilder} from "virtual:content-builder";\n\nimport * as module from "virtual:relay-entrypoint";\n\ntry {\n relay(resolveDefinition(module, "virtual:relay-name"), ContentBuilder);\n} catch (error) {\n console.error("The relay crashed on startup:", error);\n}\n';
|
|
21
18
|
|
|
22
19
|
// raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/sandbox.ts?raw
|
|
23
|
-
var sandbox_default = 'import
|
|
20
|
+
var sandbox_default = 'import sandbox, {resolveDefinition} from "adnbn/entry/sandbox";\n\nimport {Builder as ViewBuilder} from "virtual:view-builder";\n\nimport * as module from "virtual:sandbox-entrypoint";\n\ntry {\n sandbox(resolveDefinition(module, "virtual:sandbox-name"), ViewBuilder);\n} catch (e) {\n console.error("The sandbox crashed on startup:", e);\n}\n';
|
|
21
|
+
|
|
22
|
+
// raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/service.ts?raw
|
|
23
|
+
var service_default = 'import service, {resolveDefinition} from "adnbn/entry/service";\n\nimport * as module from "virtual:service-entrypoint";\n\ntry {\n service(resolveDefinition(module, "virtual:service-name"));\n} catch (e) {\n console.error("The service crashed on startup:", e);\n}\n';
|
|
24
24
|
|
|
25
25
|
// raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/view.ts?raw
|
|
26
|
-
var view_default = 'import
|
|
26
|
+
var view_default = 'import view, {resolveDefinition} from "virtual:view-builder";\n\nimport * as module from "virtual:view-entrypoint";\n\ntry {\n view(resolveDefinition(module));\n} catch (e) {\n console.error("The view crashed on startup:", e);\n}\n';
|
|
27
27
|
|
|
28
28
|
// src/cli/virtual/index.ts
|
|
29
29
|
import { inferEntrypointFramework } from "../entrypoint/index.js";
|
|
@@ -32,15 +32,12 @@ import { inferEntrypointFramework } from "../entrypoint/index.js";
|
|
|
32
32
|
var PackageName = "adnbn";
|
|
33
33
|
|
|
34
34
|
// src/cli/virtual/index.ts
|
|
35
|
-
var templates = { background: background_default, command: command_default, content: content_default, offscreen: offscreen_default, relay: relay_default, sandbox: sandbox_default,
|
|
35
|
+
var templates = { background: background_default, command: command_default, content: content_default, offscreen: offscreen_default, relay: relay_default, sandbox: sandbox_default, service: service_default, view: view_default };
|
|
36
36
|
var getEntryFramework = (file, entry) => {
|
|
37
37
|
return `${PackageName}/entry/${entry}/${inferEntrypointFramework(file)}`;
|
|
38
38
|
};
|
|
39
39
|
var getVirtualModule = (file, template) => {
|
|
40
|
-
return templates[template].
|
|
41
|
-
};
|
|
42
|
-
var getTransportModule = (file, name, layer) => {
|
|
43
|
-
return getVirtualModule(file, "transport").replace("virtual:transport-name", name).replaceAll(":entry", layer);
|
|
40
|
+
return templates[template].replace(`virtual:${template}-entrypoint`, file.import);
|
|
44
41
|
};
|
|
45
42
|
var virtualBackgroundModule = (file) => {
|
|
46
43
|
return getVirtualModule(file, "background");
|
|
@@ -52,7 +49,7 @@ var virtualContentScriptModule = (file, navigation = false) => {
|
|
|
52
49
|
return getVirtualModule(file, "content").replace(`virtual:content-builder`, navigation ? `${PackageName}/entry/content` : getEntryFramework(file, "content"));
|
|
53
50
|
};
|
|
54
51
|
var virtualOffscreenModule = (file, name) => {
|
|
55
|
-
return getVirtualModule(file, "offscreen").replace("virtual:offscreen-name", name).replace(`virtual:view-
|
|
52
|
+
return getVirtualModule(file, "offscreen").replace("virtual:offscreen-name", name).replace(`virtual:view-builder`, getEntryFramework(file, "view"));
|
|
56
53
|
};
|
|
57
54
|
var virtualOffscreenBackgroundModule = () => {
|
|
58
55
|
return offscreen_background_default;
|
|
@@ -64,13 +61,13 @@ var virtualRelayModule = (file, name, navigation = false) => {
|
|
|
64
61
|
);
|
|
65
62
|
};
|
|
66
63
|
var virtualSandboxModule = (file, name) => {
|
|
67
|
-
return getVirtualModule(file, "sandbox").replace("virtual:sandbox-name", name).replace(`virtual:view-
|
|
64
|
+
return getVirtualModule(file, "sandbox").replace("virtual:sandbox-name", name).replace(`virtual:view-builder`, getEntryFramework(file, "view"));
|
|
68
65
|
};
|
|
69
66
|
var virtualServiceModule = (file, name) => {
|
|
70
|
-
return
|
|
67
|
+
return getVirtualModule(file, "service").replace("virtual:service-name", name);
|
|
71
68
|
};
|
|
72
69
|
var virtualViewModule = (file) => {
|
|
73
|
-
return getVirtualModule(file, "view").replace(`virtual:view-
|
|
70
|
+
return getVirtualModule(file, "view").replace(`virtual:view-builder`, getEntryFramework(file, "view"));
|
|
74
71
|
};
|
|
75
72
|
export {
|
|
76
73
|
virtualBackgroundModule,
|
|
@@ -1,34 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
interface ModuleType extends BackgroundDefinition {
|
|
5
|
-
default: BackgroundDefinition | BackgroundDefinition["main"] | undefined;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const module: ModuleType;
|
|
9
|
-
export = module;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
declare module "virtual:command-entrypoint" {
|
|
13
|
-
type CommandDefinition = import("../../types/command.js").CommandDefinition;
|
|
14
|
-
|
|
15
|
-
interface ModuleType extends CommandDefinition {
|
|
16
|
-
default: CommandDefinition | CommandDefinition["execute"] | undefined;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const module: ModuleType;
|
|
20
|
-
export = module;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
declare module "virtual:content-entrypoint" {
|
|
24
|
-
type ContentScriptDefinition = import("../../types/content/index.js").ContentScriptDefinition;
|
|
25
|
-
|
|
26
|
-
interface ModuleType {
|
|
27
|
-
[name: string]: unknown;
|
|
28
|
-
default: ContentScriptDefinition | ContentScriptDefinition["render"] | undefined;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const module: ModuleType;
|
|
1
|
+
/** Generated modules import the entrypoint as a namespace and pass it to their runtime resolveDefinition(). */
|
|
2
|
+
declare module "virtual:*-entrypoint" {
|
|
3
|
+
const module: {readonly [name: string]: unknown};
|
|
32
4
|
export = module;
|
|
33
5
|
}
|
|
34
6
|
|
|
@@ -47,85 +19,11 @@ declare module "virtual:content-builder" {
|
|
|
47
19
|
export default content;
|
|
48
20
|
}
|
|
49
21
|
|
|
50
|
-
declare module "virtual:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
>;
|
|
54
|
-
|
|
55
|
-
interface ModuleType extends OffscreenDefinition {
|
|
56
|
-
default: OffscreenDefinition | OffscreenDefinition["init"] | undefined;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const module: ModuleType;
|
|
60
|
-
export = module;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
declare module "virtual:relay-entrypoint" {
|
|
64
|
-
type RelayDefinition = import("../../types/relay.js").RelayDefinition<import("../../types/transport.js").TransportType>;
|
|
65
|
-
|
|
66
|
-
export const {
|
|
67
|
-
init,
|
|
68
|
-
main,
|
|
69
|
-
name,
|
|
70
|
-
method,
|
|
71
|
-
isolation,
|
|
72
|
-
allFrames,
|
|
73
|
-
matches,
|
|
74
|
-
excludeMatches,
|
|
75
|
-
includeGlobs,
|
|
76
|
-
excludeGlobs,
|
|
77
|
-
runAt,
|
|
78
|
-
world,
|
|
79
|
-
matchAboutBlank,
|
|
80
|
-
matchOriginAsFallback,
|
|
81
|
-
declarative,
|
|
82
|
-
marker,
|
|
83
|
-
anchor,
|
|
84
|
-
mount,
|
|
85
|
-
prepare,
|
|
86
|
-
render,
|
|
87
|
-
container,
|
|
88
|
-
boundary,
|
|
89
|
-
target,
|
|
90
|
-
watch,
|
|
91
|
-
includeBrowser,
|
|
92
|
-
excludeBrowser,
|
|
93
|
-
includeApp,
|
|
94
|
-
excludeApp,
|
|
95
|
-
mode,
|
|
96
|
-
manifestVersion,
|
|
97
|
-
debug,
|
|
98
|
-
}: Partial<RelayDefinition>;
|
|
99
|
-
|
|
100
|
-
const definition: RelayDefinition | RelayDefinition["init"] | undefined;
|
|
101
|
-
export default definition;
|
|
102
|
-
}
|
|
22
|
+
declare module "virtual:view-builder" {
|
|
23
|
+
export const resolveDefinition: (
|
|
24
|
+
module: object
|
|
25
|
+
) => import("../../types/view/index.js").ViewDefinition<import("../../types/view/index.js").ViewConfig>;
|
|
103
26
|
|
|
104
|
-
declare module "virtual:sandbox-entrypoint" {
|
|
105
|
-
type SandboxDefinition = import("../../types/sandbox.js").SandboxDefinition<any>;
|
|
106
|
-
|
|
107
|
-
interface ModuleType extends SandboxDefinition {
|
|
108
|
-
default: SandboxDefinition | SandboxDefinition["init"] | undefined;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
const module: ModuleType;
|
|
112
|
-
export = module;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
declare module "virtual:view-entrypoint" {
|
|
116
|
-
import {ViewOptions} from "../../types/view.js";
|
|
117
|
-
|
|
118
|
-
type ViewDefinition = import("../../types/view.js").ViewDefinition<ViewOptions>;
|
|
119
|
-
|
|
120
|
-
interface ModuleType extends ViewDefinition {
|
|
121
|
-
default: ViewDefinition | ViewDefinition["render"] | undefined;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const module: ModuleType;
|
|
125
|
-
export = module;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
declare module "virtual:view-framework" {
|
|
129
27
|
export const Builder:
|
|
130
28
|
| typeof import("../../entry/view/adapters/vanilla/index.js").Builder
|
|
131
29
|
| typeof import("../../entry/view/adapters/react/index.js").Builder;
|
|
@@ -135,21 +33,3 @@ declare module "virtual:view-framework" {
|
|
|
135
33
|
| typeof import("../../entry/view/adapters/react/index.js").default;
|
|
136
34
|
export default view;
|
|
137
35
|
}
|
|
138
|
-
|
|
139
|
-
declare module "virtual:transport-entrypoint" {
|
|
140
|
-
type TransportDefinition = import("../../types/transport.js").TransportDefinition<any, any>;
|
|
141
|
-
|
|
142
|
-
interface ModuleType extends TransportDefinition {
|
|
143
|
-
default: TransportDefinition | TransportDefinition["init"] | undefined;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
const module: ModuleType;
|
|
147
|
-
export = module;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
declare module "adnbn/entry/:entry" {
|
|
151
|
-
import type {TransportUnresolvedDefinition, TransportOptions, TransportType} from "../../types/transport.js";
|
|
152
|
-
|
|
153
|
-
const transport: (definition: TransportUnresolvedDefinition<TransportOptions, TransportType>) => void;
|
|
154
|
-
export default transport;
|
|
155
|
-
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Builder from "./../../entry/core/Builder.js";
|
|
2
|
-
import { isValidBackgroundMainHandler } from "./resolvers/
|
|
2
|
+
import { isValidBackgroundMainHandler } from "./resolvers/definition.js";
|
|
3
3
|
class Builder_default extends Builder {
|
|
4
4
|
constructor(definition) {
|
|
5
5
|
super();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/entry/background/Builder.ts"],"sourcesContent":["import Builder from \"@entry/core/Builder\";\n\nimport {isValidBackgroundMainHandler} from \"./resolvers\";\n\nimport {BackgroundBuilder, BackgroundDefinition} from \"@typing/background\";\n\nexport default class extends Builder implements BackgroundBuilder {\n constructor(private readonly definition: BackgroundDefinition) {\n super();\n }\n\n public async build(): Promise<void> {\n await this.destroy();\n\n const {main, ...options} = this.definition;\n\n if (isValidBackgroundMainHandler(main)) {\n await main(options);\n }\n }\n\n public async destroy(): Promise<void> {\n // Nothing to do\n }\n}\n"],"mappings":"AAAA,OAAO,aAAa;AAEpB,SAAQ,oCAAmC;AAI3C,MAAO,wBAAsB,QAAqC;AAAA,EAC9D,YAA6B,YAAkC;AAC3D,UAAM;AADmB;AAAA,EAE7B;AAAA,EAF6B;AAAA,EAI7B,MAAa,QAAuB;AAChC,UAAM,KAAK,QAAQ;AAEnB,UAAM,EAAC,MAAM,GAAG,QAAO,IAAI,KAAK;AAEhC,QAAI,6BAA6B,IAAI,GAAG;AACpC,YAAM,KAAK,OAAO;AAAA,IACtB;AAAA,EACJ;AAAA,EAEA,MAAa,UAAyB;AAAA,EAEtC;AACJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/entry/background/Builder.ts"],"sourcesContent":["import Builder from \"@entry/core/Builder\";\n\nimport {isValidBackgroundMainHandler} from \"./resolvers/definition\";\n\nimport {BackgroundBuilder, BackgroundDefinition} from \"@typing/background\";\n\nexport default class extends Builder implements BackgroundBuilder {\n constructor(private readonly definition: BackgroundDefinition) {\n super();\n }\n\n public async build(): Promise<void> {\n await this.destroy();\n\n const {main, ...options} = this.definition;\n\n if (isValidBackgroundMainHandler(main)) {\n await main(options);\n }\n }\n\n public async destroy(): Promise<void> {\n // Nothing to do\n }\n}\n"],"mappings":"AAAA,OAAO,aAAa;AAEpB,SAAQ,oCAAmC;AAI3C,MAAO,wBAAsB,QAAqC;AAAA,EAC9D,YAA6B,YAAkC;AAC3D,UAAM;AADmB;AAAA,EAE7B;AAAA,EAF6B;AAAA,EAI7B,MAAa,QAAuB;AAChC,UAAM,KAAK,QAAQ;AAEnB,UAAM,EAAC,MAAM,GAAG,QAAO,IAAI,KAAK;AAEhC,QAAI,6BAA6B,IAAI,GAAG;AACpC,YAAM,KAAK,OAAO;AAAA,IACtB;AAAA,EACJ;AAAA,EAEA,MAAa,UAAyB;AAAA,EAEtC;AACJ;","names":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import Builder from "./Builder.js";
|
|
2
|
-
|
|
2
|
+
import { resolveDefinition } from "./resolvers/definition.js";
|
|
3
3
|
var background_default = Builder.resolver();
|
|
4
4
|
export {
|
|
5
|
-
background_default as default
|
|
5
|
+
background_default as default,
|
|
6
|
+
resolveDefinition
|
|
6
7
|
};
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/entry/background/index.ts"],"sourcesContent":["import Builder from \"./Builder\";\n\nexport
|
|
1
|
+
{"version":3,"sources":["../../../src/entry/background/index.ts"],"sourcesContent":["import Builder from \"./Builder\";\n\nexport {resolveDefinition} from \"./resolvers/definition\";\n\nexport default Builder.resolver();\n"],"mappings":"AAAA,OAAO,aAAa;AAEpB,SAAQ,yBAAwB;AAEhC,IAAO,qBAAQ,QAAQ,SAAS;","names":[]}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { BackgroundDefinition, BackgroundMainHandler } from "../../../types/background.js";
|
|
2
|
-
export declare const isValidBackgroundDefinition: (definition: any) => definition is BackgroundDefinition;
|
|
3
2
|
export declare const isValidBackgroundMainHandler: (main: unknown) => main is BackgroundMainHandler;
|
|
3
|
+
/**
|
|
4
|
+
* Merge background exports without executing main: default options override named exports,
|
|
5
|
+
* and a default function is the main handler. Any other default value is ignored.
|
|
6
|
+
*/
|
|
7
|
+
export declare const resolveDefinition: (module: object) => BackgroundDefinition;
|
|
@@ -1,11 +1,22 @@
|
|
|
1
|
-
const
|
|
2
|
-
return
|
|
1
|
+
const isDefinitionObject = (value) => {
|
|
2
|
+
return value !== null && typeof value === "object" && value.constructor === Object;
|
|
3
3
|
};
|
|
4
4
|
const isValidBackgroundMainHandler = (main) => {
|
|
5
5
|
return typeof main === "function";
|
|
6
6
|
};
|
|
7
|
+
const resolveDefinition = (module) => {
|
|
8
|
+
const { default: defaultDefinition, ...namedDefinition } = module;
|
|
9
|
+
const definition = namedDefinition;
|
|
10
|
+
if (isDefinitionObject(defaultDefinition)) {
|
|
11
|
+
return { ...definition, ...defaultDefinition };
|
|
12
|
+
}
|
|
13
|
+
if (isValidBackgroundMainHandler(defaultDefinition)) {
|
|
14
|
+
return { ...definition, main: defaultDefinition };
|
|
15
|
+
}
|
|
16
|
+
return definition;
|
|
17
|
+
};
|
|
7
18
|
export {
|
|
8
|
-
|
|
9
|
-
|
|
19
|
+
isValidBackgroundMainHandler,
|
|
20
|
+
resolveDefinition
|
|
10
21
|
};
|
|
11
22
|
//# sourceMappingURL=definition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/entry/background/resolvers/definition.ts"],"sourcesContent":["import {BackgroundDefinition, BackgroundMainHandler} from \"@typing/background\";\n\
|
|
1
|
+
{"version":3,"sources":["../../../../src/entry/background/resolvers/definition.ts"],"sourcesContent":["import {BackgroundDefinition, BackgroundMainHandler} from \"@typing/background\";\n\nconst isDefinitionObject = (value: unknown): value is BackgroundDefinition => {\n return value !== null && typeof value === \"object\" && value.constructor === Object;\n};\n\nexport const isValidBackgroundMainHandler = (main: unknown): main is BackgroundMainHandler => {\n return typeof main === \"function\";\n};\n\n/**\n * Merge background exports without executing main: default options override named exports,\n * and a default function is the main handler. Any other default value is ignored.\n */\nexport const resolveDefinition = (module: object): BackgroundDefinition => {\n const {default: defaultDefinition, ...namedDefinition} = module as Record<string, unknown>;\n const definition = namedDefinition as BackgroundDefinition;\n\n if (isDefinitionObject(defaultDefinition)) {\n return {...definition, ...defaultDefinition};\n }\n\n if (isValidBackgroundMainHandler(defaultDefinition)) {\n return {...definition, main: defaultDefinition};\n }\n\n return definition;\n};\n"],"mappings":"AAEA,MAAM,qBAAqB,CAAC,UAAkD;AAC1E,SAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,MAAM,gBAAgB;AAChF;AAEO,MAAM,+BAA+B,CAAC,SAAiD;AAC1F,SAAO,OAAO,SAAS;AAC3B;AAMO,MAAM,oBAAoB,CAAC,WAAyC;AACvE,QAAM,EAAC,SAAS,mBAAmB,GAAG,gBAAe,IAAI;AACzD,QAAM,aAAa;AAEnB,MAAI,mBAAmB,iBAAiB,GAAG;AACvC,WAAO,EAAC,GAAG,YAAY,GAAG,kBAAiB;AAAA,EAC/C;AAEA,MAAI,6BAA6B,iBAAiB,GAAG;AACjD,WAAO,EAAC,GAAG,YAAY,MAAM,kBAAiB;AAAA,EAClD;AAEA,SAAO;AACX;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { onActionClicked, onSpecificCommand } from "@addon-core/browser";
|
|
2
2
|
import Builder from "./../../entry/core/Builder.js";
|
|
3
|
-
import { isValidCommandExecuteFunction, isValidCommandName } from "./resolvers/
|
|
3
|
+
import { isValidCommandExecuteFunction, isValidCommandName } from "./resolvers/definition.js";
|
|
4
4
|
import {
|
|
5
5
|
CommandExecuteActionName
|
|
6
6
|
} from "./../../types/command.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/entry/command/Builder.ts"],"sourcesContent":["import {onActionClicked, onSpecificCommand} from \"@addon-core/browser\";\n\nimport Builder from \"@entry/core/Builder\";\n\nimport {isValidCommandExecuteFunction, isValidCommandName} from \"./resolvers\";\n\nimport {\n CommandBuilder,\n CommandExecuteActionName,\n CommandResolvedDefinition,\n CommandUnresolvedDefinition,\n} from \"@typing/command\";\n\ntype Tab = chrome.tabs.Tab;\n\nexport default class extends Builder implements CommandBuilder {\n protected readonly definition: CommandResolvedDefinition;\n\n protected unsubscribe?: () => void;\n\n public constructor(definition: CommandUnresolvedDefinition) {\n super();\n\n const {name, execute} = definition;\n\n if (!isValidCommandExecuteFunction(execute)) {\n throw new Error(\"The command entrypoint must export a execute function\");\n }\n\n if (!isValidCommandName(name)) {\n throw new Error(\"The command entrypoint must export a name string\");\n }\n\n this.definition = {\n ...definition,\n name,\n execute,\n };\n }\n\n public async build(): Promise<void> {\n await this.destroy();\n\n const {name} = this.definition;\n\n if (name == CommandExecuteActionName) {\n this.unsubscribe = onActionClicked(tab => {\n this.handle(tab);\n });\n\n return;\n }\n\n this.unsubscribe = onSpecificCommand(name, tab => {\n this.handle(tab);\n });\n }\n\n public async destroy(): Promise<void> {\n this.unsubscribe?.();\n }\n\n protected handle(tab?: Tab): void {\n const {name, execute, ...options} = this.definition;\n\n try {\n Promise.resolve(execute(tab, {name, ...options})).catch(e => {\n console.error(\"The command execute async function crashed:\", e);\n });\n } catch (e) {\n console.error(\"The command execute function crashed:\", e);\n }\n }\n}\n"],"mappings":"AAAA,SAAQ,iBAAiB,yBAAwB;AAEjD,OAAO,aAAa;AAEpB,SAAQ,+BAA+B,0BAAyB;AAEhE;AAAA,EAEI;AAAA,OAGG;AAIP,MAAO,wBAAsB,QAAkC;AAAA,EACxC;AAAA,EAET;AAAA,EAEH,YAAY,YAAyC;AACxD,UAAM;AAEN,UAAM,EAAC,MAAM,QAAO,IAAI;AAExB,QAAI,CAAC,8BAA8B,OAAO,GAAG;AACzC,YAAM,IAAI,MAAM,uDAAuD;AAAA,IAC3E;AAEA,QAAI,CAAC,mBAAmB,IAAI,GAAG;AAC3B,YAAM,IAAI,MAAM,kDAAkD;AAAA,IACtE;AAEA,SAAK,aAAa;AAAA,MACd,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAa,QAAuB;AAChC,UAAM,KAAK,QAAQ;AAEnB,UAAM,EAAC,KAAI,IAAI,KAAK;AAEpB,QAAI,QAAQ,0BAA0B;AAClC,WAAK,cAAc,gBAAgB,SAAO;AACtC,aAAK,OAAO,GAAG;AAAA,MACnB,CAAC;AAED;AAAA,IACJ;AAEA,SAAK,cAAc,kBAAkB,MAAM,SAAO;AAC9C,WAAK,OAAO,GAAG;AAAA,IACnB,CAAC;AAAA,EACL;AAAA,EAEA,MAAa,UAAyB;AA1D1C;AA2DQ,eAAK,gBAAL;AAAA,EACJ;AAAA,EAEU,OAAO,KAAiB;AAC9B,UAAM,EAAC,MAAM,SAAS,GAAG,QAAO,IAAI,KAAK;AAEzC,QAAI;AACA,cAAQ,QAAQ,QAAQ,KAAK,EAAC,MAAM,GAAG,QAAO,CAAC,CAAC,EAAE,MAAM,OAAK;AACzD,gBAAQ,MAAM,+CAA+C,CAAC;AAAA,MAClE,CAAC;AAAA,IACL,SAAS,GAAG;AACR,cAAQ,MAAM,yCAAyC,CAAC;AAAA,IAC5D;AAAA,EACJ;AACJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/entry/command/Builder.ts"],"sourcesContent":["import {onActionClicked, onSpecificCommand} from \"@addon-core/browser\";\n\nimport Builder from \"@entry/core/Builder\";\n\nimport {isValidCommandExecuteFunction, isValidCommandName} from \"./resolvers/definition\";\n\nimport {\n CommandBuilder,\n CommandExecuteActionName,\n CommandResolvedDefinition,\n CommandUnresolvedDefinition,\n} from \"@typing/command\";\n\ntype Tab = chrome.tabs.Tab;\n\nexport default class extends Builder implements CommandBuilder {\n protected readonly definition: CommandResolvedDefinition;\n\n protected unsubscribe?: () => void;\n\n public constructor(definition: CommandUnresolvedDefinition) {\n super();\n\n const {name, execute} = definition;\n\n if (!isValidCommandExecuteFunction(execute)) {\n throw new Error(\"The command entrypoint must export a execute function\");\n }\n\n if (!isValidCommandName(name)) {\n throw new Error(\"The command entrypoint must export a name string\");\n }\n\n this.definition = {\n ...definition,\n name,\n execute,\n };\n }\n\n public async build(): Promise<void> {\n await this.destroy();\n\n const {name} = this.definition;\n\n if (name == CommandExecuteActionName) {\n this.unsubscribe = onActionClicked(tab => {\n this.handle(tab);\n });\n\n return;\n }\n\n this.unsubscribe = onSpecificCommand(name, tab => {\n this.handle(tab);\n });\n }\n\n public async destroy(): Promise<void> {\n this.unsubscribe?.();\n }\n\n protected handle(tab?: Tab): void {\n const {name, execute, ...options} = this.definition;\n\n try {\n Promise.resolve(execute(tab, {name, ...options})).catch(e => {\n console.error(\"The command execute async function crashed:\", e);\n });\n } catch (e) {\n console.error(\"The command execute function crashed:\", e);\n }\n }\n}\n"],"mappings":"AAAA,SAAQ,iBAAiB,yBAAwB;AAEjD,OAAO,aAAa;AAEpB,SAAQ,+BAA+B,0BAAyB;AAEhE;AAAA,EAEI;AAAA,OAGG;AAIP,MAAO,wBAAsB,QAAkC;AAAA,EACxC;AAAA,EAET;AAAA,EAEH,YAAY,YAAyC;AACxD,UAAM;AAEN,UAAM,EAAC,MAAM,QAAO,IAAI;AAExB,QAAI,CAAC,8BAA8B,OAAO,GAAG;AACzC,YAAM,IAAI,MAAM,uDAAuD;AAAA,IAC3E;AAEA,QAAI,CAAC,mBAAmB,IAAI,GAAG;AAC3B,YAAM,IAAI,MAAM,kDAAkD;AAAA,IACtE;AAEA,SAAK,aAAa;AAAA,MACd,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAa,QAAuB;AAChC,UAAM,KAAK,QAAQ;AAEnB,UAAM,EAAC,KAAI,IAAI,KAAK;AAEpB,QAAI,QAAQ,0BAA0B;AAClC,WAAK,cAAc,gBAAgB,SAAO;AACtC,aAAK,OAAO,GAAG;AAAA,MACnB,CAAC;AAED;AAAA,IACJ;AAEA,SAAK,cAAc,kBAAkB,MAAM,SAAO;AAC9C,WAAK,OAAO,GAAG;AAAA,IACnB,CAAC;AAAA,EACL;AAAA,EAEA,MAAa,UAAyB;AA1D1C;AA2DQ,eAAK,gBAAL;AAAA,EACJ;AAAA,EAEU,OAAO,KAAiB;AAC9B,UAAM,EAAC,MAAM,SAAS,GAAG,QAAO,IAAI,KAAK;AAEzC,QAAI;AACA,cAAQ,QAAQ,QAAQ,KAAK,EAAC,MAAM,GAAG,QAAO,CAAC,CAAC,EAAE,MAAM,OAAK;AACzD,gBAAQ,MAAM,+CAA+C,CAAC;AAAA,MAClE,CAAC;AAAA,IACL,SAAS,GAAG;AACR,cAAQ,MAAM,yCAAyC,CAAC;AAAA,IAC5D;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import Builder from "./Builder.js";
|
|
2
|
-
|
|
2
|
+
import { resolveDefinition } from "./resolvers/definition.js";
|
|
3
3
|
var command_default = Builder.resolver();
|
|
4
4
|
export {
|
|
5
|
-
command_default as default
|
|
5
|
+
command_default as default,
|
|
6
|
+
resolveDefinition
|
|
6
7
|
};
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/entry/command/index.ts"],"sourcesContent":["import Builder from \"./Builder\";\n\nexport
|
|
1
|
+
{"version":3,"sources":["../../../src/entry/command/index.ts"],"sourcesContent":["import Builder from \"./Builder\";\n\nexport {resolveDefinition} from \"./resolvers/definition\";\n\nexport default Builder.resolver();\n"],"mappings":"AAAA,OAAO,aAAa;AAEpB,SAAQ,yBAAwB;AAEhC,IAAO,kBAAQ,QAAQ,SAAS;","names":[]}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const isValidCommandDefinition: (definition: any) => definition is CommandDefinition;
|
|
1
|
+
import { CommandExecute, CommandUnresolvedDefinition } from "../../../types/command.js";
|
|
3
2
|
export declare const isValidCommandExecuteFunction: (execute: any) => execute is CommandExecute;
|
|
4
3
|
export declare const isValidCommandName: (name: any) => name is string;
|
|
4
|
+
/**
|
|
5
|
+
* Merge command exports without executing them: default options override named exports,
|
|
6
|
+
* and a default function is the execute handler. The build supplies the authoritative name.
|
|
7
|
+
*/
|
|
8
|
+
export declare const resolveDefinition: (module: object, name: string) => CommandUnresolvedDefinition;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const
|
|
2
|
-
return
|
|
1
|
+
const isDefinitionObject = (value) => {
|
|
2
|
+
return value !== null && typeof value === "object" && value.constructor === Object;
|
|
3
3
|
};
|
|
4
4
|
const isValidCommandExecuteFunction = (execute) => {
|
|
5
5
|
return execute && typeof execute === "function";
|
|
@@ -7,9 +7,19 @@ const isValidCommandExecuteFunction = (execute) => {
|
|
|
7
7
|
const isValidCommandName = (name) => {
|
|
8
8
|
return name && typeof name === "string" && name.trim().length > 0;
|
|
9
9
|
};
|
|
10
|
+
const resolveDefinition = (module, name) => {
|
|
11
|
+
const { default: defaultDefinition, ...namedDefinition } = module;
|
|
12
|
+
let definition = namedDefinition;
|
|
13
|
+
if (isDefinitionObject(defaultDefinition)) {
|
|
14
|
+
definition = { ...definition, ...defaultDefinition };
|
|
15
|
+
} else if (isValidCommandExecuteFunction(defaultDefinition)) {
|
|
16
|
+
definition = { ...definition, execute: defaultDefinition };
|
|
17
|
+
}
|
|
18
|
+
return { ...definition, name };
|
|
19
|
+
};
|
|
10
20
|
export {
|
|
11
|
-
isValidCommandDefinition,
|
|
12
21
|
isValidCommandExecuteFunction,
|
|
13
|
-
isValidCommandName
|
|
22
|
+
isValidCommandName,
|
|
23
|
+
resolveDefinition
|
|
14
24
|
};
|
|
15
25
|
//# sourceMappingURL=definition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/entry/command/resolvers/definition.ts"],"sourcesContent":["import {CommandDefinition, CommandExecute} from \"@typing/command\";\n\
|
|
1
|
+
{"version":3,"sources":["../../../../src/entry/command/resolvers/definition.ts"],"sourcesContent":["import {CommandDefinition, CommandExecute, CommandUnresolvedDefinition} from \"@typing/command\";\n\nconst isDefinitionObject = (value: unknown): value is CommandDefinition => {\n return value !== null && typeof value === \"object\" && value.constructor === Object;\n};\n\nexport const isValidCommandExecuteFunction = (execute: any): execute is CommandExecute => {\n return execute && typeof execute === \"function\";\n};\n\nexport const isValidCommandName = (name: any): name is string => {\n return name && typeof name === \"string\" && name.trim().length > 0;\n};\n\n/**\n * Merge command exports without executing them: default options override named exports,\n * and a default function is the execute handler. The build supplies the authoritative name.\n */\nexport const resolveDefinition = (module: object, name: string): CommandUnresolvedDefinition => {\n const {default: defaultDefinition, ...namedDefinition} = module as Record<string, unknown>;\n\n let definition = namedDefinition as CommandUnresolvedDefinition;\n\n if (isDefinitionObject(defaultDefinition)) {\n definition = {...definition, ...defaultDefinition};\n } else if (isValidCommandExecuteFunction(defaultDefinition)) {\n definition = {...definition, execute: defaultDefinition};\n }\n\n return {...definition, name};\n};\n"],"mappings":"AAEA,MAAM,qBAAqB,CAAC,UAA+C;AACvE,SAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,MAAM,gBAAgB;AAChF;AAEO,MAAM,gCAAgC,CAAC,YAA4C;AACtF,SAAO,WAAW,OAAO,YAAY;AACzC;AAEO,MAAM,qBAAqB,CAAC,SAA8B;AAC7D,SAAO,QAAQ,OAAO,SAAS,YAAY,KAAK,KAAK,EAAE,SAAS;AACpE;AAMO,MAAM,oBAAoB,CAAC,QAAgB,SAA8C;AAC5F,QAAM,EAAC,SAAS,mBAAmB,GAAG,gBAAe,IAAI;AAEzD,MAAI,aAAa;AAEjB,MAAI,mBAAmB,iBAAiB,GAAG;AACvC,iBAAa,EAAC,GAAG,YAAY,GAAG,kBAAiB;AAAA,EACrD,WAAW,8BAA8B,iBAAiB,GAAG;AACzD,iBAAa,EAAC,GAAG,YAAY,SAAS,kBAAiB;AAAA,EAC3D;AAEA,SAAO,EAAC,GAAG,YAAY,KAAI;AAC/B;","names":[]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { createElement
|
|
1
|
+
import { createElement } from "react";
|
|
2
|
+
import { isDomRenderValue } from "./../../../../entry/core/render.js";
|
|
3
|
+
import { isReactRenderValue } from "./../../../../entry/core/react.js";
|
|
2
4
|
import ReactNode from "./Node.js";
|
|
3
5
|
import MountBuilder from "../../lifecycle/MountBuilder.js";
|
|
4
6
|
class Builder extends MountBuilder {
|
|
@@ -8,7 +10,7 @@ class Builder extends MountBuilder {
|
|
|
8
10
|
}
|
|
9
11
|
return (props) => {
|
|
10
12
|
const value = typeof render === "function" ? createElement(render, props) : render;
|
|
11
|
-
return
|
|
13
|
+
return isDomRenderValue(value) || isReactRenderValue(value) ? value : void 0;
|
|
12
14
|
};
|
|
13
15
|
}
|
|
14
16
|
createRenderer(node, render, props, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/entry/content/adapters/react/Builder.ts"],"sourcesContent":["import {createElement
|
|
1
|
+
{"version":3,"sources":["../../../../../src/entry/content/adapters/react/Builder.ts"],"sourcesContent":["import {createElement} from \"react\";\n\nimport {isDomRenderValue} from \"@entry/core/render\";\nimport {isReactRenderValue} from \"@entry/core/react\";\n\nimport ReactNode from \"./Node\";\n\nimport MountBuilder from \"../../lifecycle/MountBuilder\";\nimport type {ContentScriptRenderOptions} from \"../../lifecycle/types\";\n\nimport type {\n ContentScriptNode,\n ContentScriptIsolation,\n ContentScriptProps,\n ContentScriptRenderHandler,\n ContentScriptRenderReactComponent,\n ContentScriptRenderValue,\n} from \"@typing/content\";\n\nexport default class Builder<\n Data = unknown,\n Isolation extends `${ContentScriptIsolation}` = `${ContentScriptIsolation}`,\n> extends MountBuilder<Data, Isolation> {\n protected resolveRender(\n render?: ContentScriptRenderValue<Data> | ContentScriptRenderHandler<Data>\n ): true | ContentScriptRenderHandler<Data> | undefined {\n if (render === true || render === undefined) {\n return render;\n }\n\n return props => {\n // Functions in React entrypoints are components; React owns their invocation and hooks.\n const value =\n typeof render === \"function\"\n ? createElement(render as ContentScriptRenderReactComponent<Data>, props)\n : render;\n\n return isDomRenderValue(value) || isReactRenderValue(value) ? value : undefined;\n };\n }\n\n protected createRenderer(\n node: ContentScriptNode,\n render: ContentScriptRenderHandler<Data>,\n props: () => ContentScriptProps<Data>,\n options: ContentScriptRenderOptions\n ): ReactNode<Data> {\n return new ReactNode(node, render, props, options);\n }\n}\n"],"mappings":"AAAA,SAAQ,qBAAoB;AAE5B,SAAQ,wBAAuB;AAC/B,SAAQ,0BAAyB;AAEjC,OAAO,eAAe;AAEtB,OAAO,kBAAkB;AAYzB,MAAO,gBAGG,aAA8B;AAAA,EAC1B,cACN,QACmD;AACnD,QAAI,WAAW,QAAQ,WAAW,QAAW;AACzC,aAAO;AAAA,IACX;AAEA,WAAO,WAAS;AAEZ,YAAM,QACF,OAAO,WAAW,aACZ,cAAc,QAAmD,KAAK,IACtE;AAEV,aAAO,iBAAiB,KAAK,KAAK,mBAAmB,KAAK,IAAI,QAAQ;AAAA,IAC1E;AAAA,EACJ;AAAA,EAEU,eACN,MACA,QACA,OACA,SACe;AACf,WAAO,IAAI,UAAU,MAAM,QAAQ,OAAO,OAAO;AAAA,EACrD;AACJ;","names":[]}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
import { isValidElement } from "react";
|
|
2
1
|
import { createRoot } from "react-dom/client";
|
|
2
|
+
import { isDomRenderValue, renderDomValue } from "./../../../../entry/core/render.js";
|
|
3
|
+
import { isReactRenderValue } from "./../../../../entry/core/react.js";
|
|
3
4
|
import { RenderNode } from "../../lifecycle/nodes/index.js";
|
|
4
5
|
class Node extends RenderNode {
|
|
5
6
|
root;
|
|
6
7
|
render(value, target) {
|
|
7
|
-
if (
|
|
8
|
-
|
|
8
|
+
if (isDomRenderValue(value)) {
|
|
9
|
+
renderDomValue(target, value);
|
|
10
|
+
return true;
|
|
9
11
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
if (isReactRenderValue(value)) {
|
|
13
|
+
this.root = createRoot(target);
|
|
14
|
+
this.root.render(value);
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
13
18
|
}
|
|
14
19
|
clear() {
|
|
15
20
|
const root = this.root;
|