adnbn 0.5.2 → 0.5.3

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/content/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, DefinePlugin} from \"@rspack/core\";\nimport {merge as mergeConfig} from \"webpack-merge\";\n\nimport ContentManager from \"./ContentManager\";\nimport Content from \"./Content\";\nimport Relay from \"./Relay\";\nimport RelayDeclaration from \"./RelayDeclaration\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, onlyViaTopLevelEntry} from \"@cli/bundler\";\n\nimport {Command} from \"@typing/app\";\nimport {RelayMethod, RelayOptions} from \"@typing/relay\";\nimport {ContentScriptDeclarative} from \"@typing/content\";\n\nexport default definePlugin(() => {\n let content: Content;\n let relay: Relay;\n let manager: ContentManager;\n let relayDeclaration: RelayDeclaration;\n\n return {\n name: \"adnbn:content\",\n startup: async ({config}) => {\n content = new Content(config);\n relay = new Relay(config);\n\n manager = new ContentManager(config).provider(content).provider(relay);\n\n relayDeclaration = new RelayDeclaration(config);\n },\n content: () => content.files(),\n relay: () => relay.files(),\n bundler: async ({config}) => {\n relayDeclaration.dictionary(await relay.dictionary()).build();\n\n let rspack: RspackConfig = {};\n let options: Record<string, RelayOptions> = {};\n\n if (await manager.empty()) {\n if (config.debug) {\n console.warn(\"Content script or relay entries not found\");\n }\n } else {\n options = await relay.getOptionsMap();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await manager.entries())\n .virtual(file => manager.virtual(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n manager.clear();\n\n relayDeclaration.dictionary(await relay.dictionary()).build();\n\n return manager.entries();\n });\n }\n\n rspack = {\n plugins: [plugin],\n optimization: {\n splitChunks: {\n cacheGroups: {\n frameworkContent: {\n minChunks: 2,\n name: manager.chunkName(),\n test: onlyViaTopLevelEntry([\"content\", \"relay\"]),\n chunks: (chunk): boolean => {\n return manager.likely(chunk.name);\n },\n enforce: false,\n reuseExistingChunk: true,\n priority: 10,\n },\n },\n },\n },\n };\n }\n\n return mergeConfig(rspack, {\n plugins: [\n new DefinePlugin({\n __ADNBN_RELAY_OPTIONS__: JSON.stringify(options),\n }),\n ],\n });\n },\n manifest: async ({manifest}) => {\n // prettier-ignore\n manifest\n .setContentScripts(await manager.manifest())\n .appendHostPermissions(await manager.hostPermissions())\n .appendOptionalHostPermissions(await manager.optionalHostPermissions());\n\n if ((await relay.exists()) && (await relay.hasMethod(RelayMethod.Scripting))) {\n if (await relay.hasDeclarative(ContentScriptDeclarative.Required)) {\n manifest.addPermission(\"scripting\");\n } else if (await relay.hasDeclarative(ContentScriptDeclarative.Optional)) {\n manifest.addOptionalPermission(\"scripting\");\n }\n }\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,oBAAmB;AAC1D,SAAQ,SAAS,mBAAkB;AAEnC,OAAO,oBAAoB;AAC3B,OAAO,aAAa;AACpB,OAAO,WAAW;AAClB,OAAO,sBAAsB;AAE7B,SAAQ,oBAAmB;AAE3B,SAAQ,kBAAkB,4BAA2B;AAErD,SAAQ,eAAc;AACtB,SAAQ,mBAAgC;AACxC,SAAQ,gCAA+B;AAEvC,IAAO,kBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,gBAAU,IAAI,QAAQ,MAAM;AAC5B,cAAQ,IAAI,MAAM,MAAM;AAExB,gBAAU,IAAI,eAAe,MAAM,EAAE,SAAS,OAAO,EAAE,SAAS,KAAK;AAErE,yBAAmB,IAAI,iBAAiB,MAAM;AAAA,IAClD;AAAA,IACA,SAAS,MAAM,QAAQ,MAAM;AAAA,IAC7B,OAAO,MAAM,MAAM,MAAM;AAAA,IACzB,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,uBAAiB,WAAW,MAAM,MAAM,WAAW,CAAC,EAAE,MAAM;AAE5D,UAAI,SAAuB,CAAC;AAC5B,UAAI,UAAwC,CAAC;AAE7C,UAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,2CAA2C;AAAA,QAC5D;AAAA,MACJ,OAAO;AACH,kBAAU,MAAM,MAAM,cAAc;AAGpC,cAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,QAAQ,CAAC,EACvD,QAAQ,UAAQ,QAAQ,QAAQ,IAAI,CAAC;AAE1C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,oBAAQ,MAAM;AAEd,6BAAiB,WAAW,MAAM,MAAM,WAAW,CAAC,EAAE,MAAM;AAE5D,mBAAO,QAAQ,QAAQ;AAAA,UAC3B,CAAC;AAAA,QACL;AAEA,iBAAS;AAAA,UACL,SAAS,CAAC,MAAM;AAAA,UAChB,cAAc;AAAA,YACV,aAAa;AAAA,cACT,aAAa;AAAA,gBACT,kBAAkB;AAAA,kBACd,WAAW;AAAA,kBACX,MAAM,QAAQ,UAAU;AAAA,kBACxB,MAAM,qBAAqB,CAAC,WAAW,OAAO,CAAC;AAAA,kBAC/C,QAAQ,CAAC,UAAmB;AACxB,2BAAO,QAAQ,OAAO,MAAM,IAAI;AAAA,kBACpC;AAAA,kBACA,SAAS;AAAA,kBACT,oBAAoB;AAAA,kBACpB,UAAU;AAAA,gBACd;AAAA,cACJ;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAEA,aAAO,YAAY,QAAQ;AAAA,QACvB,SAAS;AAAA,UACL,IAAI,aAAa;AAAA,YACb,yBAAyB,KAAK,UAAU,OAAO;AAAA,UACnD,CAAC;AAAA,QACL;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,IACA,UAAU,OAAO,EAAC,SAAQ,MAAM;AAE5B,eACK,kBAAkB,MAAM,QAAQ,SAAS,CAAC,EAC1C,sBAAsB,MAAM,QAAQ,gBAAgB,CAAC,EACrD,8BAA8B,MAAM,QAAQ,wBAAwB,CAAC;AAE1E,UAAK,MAAM,MAAM,OAAO,KAAO,MAAM,MAAM,UAAU,YAAY,SAAS,GAAI;AAC1E,YAAI,MAAM,MAAM,eAAe,yBAAyB,QAAQ,GAAG;AAC/D,mBAAS,cAAc,WAAW;AAAA,QACtC,WAAW,MAAM,MAAM,eAAe,yBAAyB,QAAQ,GAAG;AACtE,mBAAS,sBAAsB,WAAW;AAAA,QAC9C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/content/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, DefinePlugin} from \"@rspack/core\";\nimport {merge as mergeConfig} from \"webpack-merge\";\n\nimport ContentManager from \"./ContentManager\";\nimport Content from \"./Content\";\nimport Relay from \"./Relay\";\nimport RelayDeclaration from \"./RelayDeclaration\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, onlyViaTopLevelEntry} from \"@cli/bundler\";\n\nimport {Command} from \"@typing/app\";\nimport {RelayMethod, RelayOptions} from \"@typing/relay\";\nimport {ContentScriptDeclarative} from \"@typing/content\";\n\nexport default definePlugin(() => {\n let content: Content;\n let relay: Relay;\n let manager: ContentManager;\n let relayDeclaration: RelayDeclaration;\n\n return {\n name: \"adnbn:content\",\n startup: async ({config}) => {\n content = new Content(config);\n relay = new Relay(config);\n\n // prettier-ignore\n manager = new ContentManager(config)\n .provider(content)\n .provider(relay);\n\n relayDeclaration = new RelayDeclaration(config);\n },\n content: () => content.files(),\n relay: () => relay.files(),\n bundler: async ({config}) => {\n relayDeclaration.dictionary(await relay.dictionary()).build();\n\n let rspack: RspackConfig = {};\n let options: Record<string, RelayOptions> = {};\n\n if (await manager.empty()) {\n if (config.debug) {\n console.warn(\"Content script or relay entries not found\");\n }\n } else {\n options = await relay.getOptionsMap();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await manager.entries())\n .virtual(file => manager.virtual(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n manager.clear();\n\n relayDeclaration.dictionary(await relay.dictionary()).build();\n\n return manager.entries();\n });\n }\n\n rspack = {\n plugins: [plugin],\n optimization: {\n splitChunks: {\n cacheGroups: {\n frameworkContent: {\n minChunks: 2,\n name: manager.chunkName(),\n test: onlyViaTopLevelEntry([\"content\", \"relay\"]),\n chunks: (chunk): boolean => {\n return manager.likely(chunk.name);\n },\n enforce: false,\n reuseExistingChunk: true,\n priority: 10,\n },\n },\n },\n },\n };\n }\n\n return mergeConfig(rspack, {\n plugins: [\n new DefinePlugin({\n __ADNBN_RELAY_OPTIONS__: JSON.stringify(options),\n }),\n ],\n });\n },\n manifest: async ({manifest}) => {\n // prettier-ignore\n manifest\n .setContentScripts(await manager.manifest())\n .appendHostPermissions(await manager.hostPermissions())\n .appendOptionalHostPermissions(await manager.optionalHostPermissions());\n\n if ((await relay.exists()) && (await relay.hasMethod(RelayMethod.Scripting))) {\n if (await relay.hasDeclarative(ContentScriptDeclarative.Required)) {\n manifest.addPermission(\"scripting\");\n } else if (await relay.hasDeclarative(ContentScriptDeclarative.Optional)) {\n manifest.addOptionalPermission(\"scripting\");\n }\n }\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,oBAAmB;AAC1D,SAAQ,SAAS,mBAAkB;AAEnC,OAAO,oBAAoB;AAC3B,OAAO,aAAa;AACpB,OAAO,WAAW;AAClB,OAAO,sBAAsB;AAE7B,SAAQ,oBAAmB;AAE3B,SAAQ,kBAAkB,4BAA2B;AAErD,SAAQ,eAAc;AACtB,SAAQ,mBAAgC;AACxC,SAAQ,gCAA+B;AAEvC,IAAO,kBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,gBAAU,IAAI,QAAQ,MAAM;AAC5B,cAAQ,IAAI,MAAM,MAAM;AAGxB,gBAAU,IAAI,eAAe,MAAM,EAC9B,SAAS,OAAO,EAChB,SAAS,KAAK;AAEnB,yBAAmB,IAAI,iBAAiB,MAAM;AAAA,IAClD;AAAA,IACA,SAAS,MAAM,QAAQ,MAAM;AAAA,IAC7B,OAAO,MAAM,MAAM,MAAM;AAAA,IACzB,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,uBAAiB,WAAW,MAAM,MAAM,WAAW,CAAC,EAAE,MAAM;AAE5D,UAAI,SAAuB,CAAC;AAC5B,UAAI,UAAwC,CAAC;AAE7C,UAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,2CAA2C;AAAA,QAC5D;AAAA,MACJ,OAAO;AACH,kBAAU,MAAM,MAAM,cAAc;AAGpC,cAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,QAAQ,CAAC,EACvD,QAAQ,UAAQ,QAAQ,QAAQ,IAAI,CAAC;AAE1C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,oBAAQ,MAAM;AAEd,6BAAiB,WAAW,MAAM,MAAM,WAAW,CAAC,EAAE,MAAM;AAE5D,mBAAO,QAAQ,QAAQ;AAAA,UAC3B,CAAC;AAAA,QACL;AAEA,iBAAS;AAAA,UACL,SAAS,CAAC,MAAM;AAAA,UAChB,cAAc;AAAA,YACV,aAAa;AAAA,cACT,aAAa;AAAA,gBACT,kBAAkB;AAAA,kBACd,WAAW;AAAA,kBACX,MAAM,QAAQ,UAAU;AAAA,kBACxB,MAAM,qBAAqB,CAAC,WAAW,OAAO,CAAC;AAAA,kBAC/C,QAAQ,CAAC,UAAmB;AACxB,2BAAO,QAAQ,OAAO,MAAM,IAAI;AAAA,kBACpC;AAAA,kBACA,SAAS;AAAA,kBACT,oBAAoB;AAAA,kBACpB,UAAU;AAAA,gBACd;AAAA,cACJ;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAEA,aAAO,YAAY,QAAQ;AAAA,QACvB,SAAS;AAAA,UACL,IAAI,aAAa;AAAA,YACb,yBAAyB,KAAK,UAAU,OAAO;AAAA,UACnD,CAAC;AAAA,QACL;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,IACA,UAAU,OAAO,EAAC,SAAQ,MAAM;AAE5B,eACK,kBAAkB,MAAM,QAAQ,SAAS,CAAC,EAC1C,sBAAsB,MAAM,QAAQ,gBAAgB,CAAC,EACrD,8BAA8B,MAAM,QAAQ,wBAAwB,CAAC;AAE1E,UAAK,MAAM,MAAM,OAAO,KAAO,MAAM,MAAM,UAAU,YAAY,SAAS,GAAI;AAC1E,YAAI,MAAM,MAAM,eAAe,yBAAyB,QAAQ,GAAG;AAC/D,mBAAS,cAAc,WAAW;AAAA,QACtC,WAAW,MAAM,MAAM,eAAe,yBAAyB,QAAQ,GAAG;AACtE,mBAAS,sBAAsB,WAAW;AAAA,QAC9C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import _ from "lodash";
2
2
  const getContentScriptConfigFromOptions = (options) => {
3
- return _.pick(options, [
3
+ const config = _.pick(options, [
4
4
  "matches",
5
5
  "excludeMatches",
6
6
  "includeGlobs",
@@ -11,6 +11,14 @@ const getContentScriptConfigFromOptions = (options) => {
11
11
  "matchAboutBlank",
12
12
  "matchOriginAsFallback"
13
13
  ]);
14
+ const sort = (arr) => arr == null ? void 0 : arr.toSorted((a, b) => a.localeCompare(b));
15
+ return {
16
+ ...config,
17
+ matches: sort(config.matches),
18
+ excludeMatches: sort(config.excludeMatches),
19
+ includeGlobs: sort(config.includeGlobs),
20
+ excludeGlobs: sort(config.excludeGlobs)
21
+ };
14
22
  };
15
23
  export {
16
24
  getContentScriptConfigFromOptions
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/content/utils.ts"],"sourcesContent":["import _ from \"lodash\";\n\nimport {ContentScriptConfig, ContentScriptEntrypointOptions} from \"@typing/content\";\n\nexport const getContentScriptConfigFromOptions = (options: ContentScriptEntrypointOptions): ContentScriptConfig => {\n return _.pick(options, [\n \"matches\",\n \"excludeMatches\",\n \"includeGlobs\",\n \"excludeGlobs\",\n \"allFrames\",\n \"runAt\",\n \"world\",\n \"matchAboutBlank\",\n \"matchOriginAsFallback\",\n ]);\n};\n"],"mappings":"AAAA,OAAO,OAAO;AAIP,MAAM,oCAAoC,CAAC,YAAiE;AAC/G,SAAO,EAAE,KAAK,SAAS;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACL;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/content/utils.ts"],"sourcesContent":["import _ from \"lodash\";\n\nimport {ContentScriptConfig, ContentScriptEntrypointOptions} from \"@typing/content\";\n\nexport const getContentScriptConfigFromOptions = (options: ContentScriptEntrypointOptions): ContentScriptConfig => {\n const config = _.pick(options, [\n \"matches\",\n \"excludeMatches\",\n \"includeGlobs\",\n \"excludeGlobs\",\n \"allFrames\",\n \"runAt\",\n \"world\",\n \"matchAboutBlank\",\n \"matchOriginAsFallback\",\n ]) as ContentScriptConfig;\n\n const sort = (arr?: string[]) => arr?.toSorted((a, b) => a.localeCompare(b));\n\n return {\n ...config,\n matches: sort(config.matches),\n excludeMatches: sort(config.excludeMatches),\n includeGlobs: sort(config.includeGlobs),\n excludeGlobs: sort(config.excludeGlobs),\n };\n};\n"],"mappings":"AAAA,OAAO,OAAO;AAIP,MAAM,oCAAoC,CAAC,YAAiE;AAC/G,QAAM,SAAS,EAAE,KAAK,SAAS;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AAED,QAAM,OAAO,CAAC,QAAmB,2BAAK,SAAS,CAAC,GAAG,MAAM,EAAE,cAAc,CAAC;AAE1E,SAAO;AAAA,IACH,GAAG;AAAA,IACH,SAAS,KAAK,OAAO,OAAO;AAAA,IAC5B,gBAAgB,KAAK,OAAO,cAAc;AAAA,IAC1C,cAAc,KAAK,OAAO,YAAY;AAAA,IACtC,cAAc,KAAK,OAAO,YAAY;AAAA,EAC1C;AACJ;","names":[]}
@@ -1,19 +1,28 @@
1
1
  import _ from "lodash";
2
+ import { merge as mergeConfig } from "webpack-merge";
2
3
  import { definePlugin } from "./../../main/plugin.js";
3
4
  import { getResolvePath, getSourcePath } from "./../../cli/resolvers/path.js";
4
5
  var optimization_default = definePlugin(() => {
5
6
  return {
6
7
  name: "adnbn:optimization",
7
8
  bundler: ({ config }) => {
9
+ const rspack = {
10
+ optimization: {
11
+ moduleIds: "deterministic",
12
+ chunkIds: "deterministic",
13
+ mangleExports: "deterministic"
14
+ }
15
+ };
8
16
  if (!config.commonChunks) {
9
- return {};
17
+ return rspack;
10
18
  }
11
- return {
19
+ return mergeConfig(rspack, {
12
20
  optimization: {
13
21
  usedExports: true,
14
22
  providedExports: true,
15
23
  splitChunks: {
16
- minSize: 10,
24
+ chunks: "all",
25
+ minSize: 2e4,
17
26
  cacheGroups: {
18
27
  default: false,
19
28
  defaultVendors: false,
@@ -32,13 +41,14 @@ var optimization_default = definePlugin(() => {
32
41
  return `${entryNames.join("-")}.${cacheGroupKey}`;
33
42
  },
34
43
  minChunks: 2,
44
+ enforce: true,
35
45
  priority: -10,
36
46
  reuseExistingChunk: true
37
47
  }
38
48
  }
39
49
  }
40
50
  }
41
- };
51
+ });
42
52
  }
43
53
  };
44
54
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/plugins/optimization.ts"],"sourcesContent":["import _ from \"lodash\";\nimport {Configuration as RspackConfig, NormalModule} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {getResolvePath, getSourcePath} from \"@cli/resolvers/path\";\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:optimization\",\n bundler: ({config}) => {\n if (!config.commonChunks) {\n return {};\n }\n\n return {\n optimization: {\n usedExports: true,\n providedExports: true,\n splitChunks: {\n minSize: 10,\n cacheGroups: {\n default: false,\n defaultVendors: false,\n common: {\n test: module => {\n const {resource} = module as NormalModule;\n\n if (!resource) {\n return false;\n }\n\n return resource.startsWith(getResolvePath(getSourcePath(config)));\n },\n name: (module, chunks, cacheGroupKey) => {\n const entryNames = Array.from(\n new Set(chunks.map(({name}) => name).filter(name => _.isString(name)))\n ).sort();\n\n return `${entryNames.join(\"-\")}.${cacheGroupKey}`;\n },\n minChunks: 2,\n priority: -10,\n reuseExistingChunk: true,\n },\n },\n },\n },\n } satisfies RspackConfig;\n },\n };\n});\n"],"mappings":"AAAA,OAAO,OAAO;AAGd,SAAQ,oBAAmB;AAE3B,SAAQ,gBAAgB,qBAAoB;AAE5C,IAAO,uBAAQ,aAAa,MAAM;AAC9B,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,UAAI,CAAC,OAAO,cAAc;AACtB,eAAO,CAAC;AAAA,MACZ;AAEA,aAAO;AAAA,QACH,cAAc;AAAA,UACV,aAAa;AAAA,UACb,iBAAiB;AAAA,UACjB,aAAa;AAAA,YACT,SAAS;AAAA,YACT,aAAa;AAAA,cACT,SAAS;AAAA,cACT,gBAAgB;AAAA,cAChB,QAAQ;AAAA,gBACJ,MAAM,YAAU;AACZ,wBAAM,EAAC,SAAQ,IAAI;AAEnB,sBAAI,CAAC,UAAU;AACX,2BAAO;AAAA,kBACX;AAEA,yBAAO,SAAS,WAAW,eAAe,cAAc,MAAM,CAAC,CAAC;AAAA,gBACpE;AAAA,gBACA,MAAM,CAAC,QAAQ,QAAQ,kBAAkB;AACrC,wBAAM,aAAa,MAAM;AAAA,oBACrB,IAAI,IAAI,OAAO,IAAI,CAAC,EAAC,KAAI,MAAM,IAAI,EAAE,OAAO,UAAQ,EAAE,SAAS,IAAI,CAAC,CAAC;AAAA,kBACzE,EAAE,KAAK;AAEP,yBAAO,GAAG,WAAW,KAAK,GAAG,CAAC,IAAI,aAAa;AAAA,gBACnD;AAAA,gBACA,WAAW;AAAA,gBACX,UAAU;AAAA,gBACV,oBAAoB;AAAA,cACxB;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/cli/plugins/optimization.ts"],"sourcesContent":["import _ from \"lodash\";\nimport {Configuration as RspackConfig, NormalModule} from \"@rspack/core\";\nimport {merge as mergeConfig} from \"webpack-merge\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {getResolvePath, getSourcePath} from \"@cli/resolvers/path\";\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:optimization\",\n bundler: ({config}) => {\n const rspack: RspackConfig = {\n optimization: {\n moduleIds: \"deterministic\",\n chunkIds: \"deterministic\",\n mangleExports: \"deterministic\",\n },\n };\n\n if (!config.commonChunks) {\n return rspack;\n }\n\n return mergeConfig(rspack, {\n optimization: {\n usedExports: true,\n providedExports: true,\n splitChunks: {\n chunks: \"all\",\n minSize: 20000,\n cacheGroups: {\n default: false,\n defaultVendors: false,\n common: {\n test: module => {\n const {resource} = module as NormalModule;\n\n if (!resource) {\n return false;\n }\n\n return resource.startsWith(getResolvePath(getSourcePath(config)));\n },\n name: (module, chunks, cacheGroupKey) => {\n const entryNames = Array.from(\n new Set(chunks.map(({name}) => name).filter(name => _.isString(name)))\n ).sort();\n\n return `${entryNames.join(\"-\")}.${cacheGroupKey}`;\n },\n minChunks: 2,\n enforce: true,\n priority: -10,\n reuseExistingChunk: true,\n },\n },\n },\n },\n });\n },\n };\n});\n"],"mappings":"AAAA,OAAO,OAAO;AAEd,SAAQ,SAAS,mBAAkB;AAEnC,SAAQ,oBAAmB;AAE3B,SAAQ,gBAAgB,qBAAoB;AAE5C,IAAO,uBAAQ,aAAa,MAAM;AAC9B,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,YAAM,SAAuB;AAAA,QACzB,cAAc;AAAA,UACV,WAAW;AAAA,UACX,UAAU;AAAA,UACV,eAAe;AAAA,QACnB;AAAA,MACJ;AAEA,UAAI,CAAC,OAAO,cAAc;AACtB,eAAO;AAAA,MACX;AAEA,aAAO,YAAY,QAAQ;AAAA,QACvB,cAAc;AAAA,UACV,aAAa;AAAA,UACb,iBAAiB;AAAA,UACjB,aAAa;AAAA,YACT,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,aAAa;AAAA,cACT,SAAS;AAAA,cACT,gBAAgB;AAAA,cAChB,QAAQ;AAAA,gBACJ,MAAM,YAAU;AACZ,wBAAM,EAAC,SAAQ,IAAI;AAEnB,sBAAI,CAAC,UAAU;AACX,2BAAO;AAAA,kBACX;AAEA,yBAAO,SAAS,WAAW,eAAe,cAAc,MAAM,CAAC,CAAC;AAAA,gBACpE;AAAA,gBACA,MAAM,CAAC,QAAQ,QAAQ,kBAAkB;AACrC,wBAAM,aAAa,MAAM;AAAA,oBACrB,IAAI,IAAI,OAAO,IAAI,CAAC,EAAC,KAAI,MAAM,IAAI,EAAE,OAAO,UAAQ,EAAE,SAAS,IAAI,CAAC,CAAC;AAAA,kBACzE,EAAE,KAAK;AAEP,yBAAO,GAAG,WAAW,KAAK,GAAG,CAAC,IAAI,aAAa;AAAA,gBACnD;AAAA,gBACA,WAAW;AAAA,gBACX,SAAS;AAAA,gBACT,UAAU;AAAA,gBACV,oBAAoB;AAAA,cACxB;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AACJ,CAAC;","names":[]}
@@ -16,6 +16,7 @@ var output_default = definePlugin(() => {
16
16
  path: getResolvePath(getOutputPath(config)),
17
17
  filename,
18
18
  chunkFilename: filename,
19
+ hashSalt: kebabApp,
19
20
  hotUpdateGlobal: camelApp + "HotUpdate",
20
21
  chunkLoadingGlobal: camelApp + "ChunkLoading",
21
22
  uniqueName: kebabApp,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/plugins/output.ts"],"sourcesContent":["import _ from \"lodash\";\nimport {Configuration as RspackConfig} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {appFilenameResolver} from \"@cli/bundler\";\nimport {getOutputPath, getResolvePath} from \"@cli/resolvers/path\";\n\nimport {Command} from \"@typing/app\";\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:output\",\n bundler: ({config}) => {\n const {app, jsDir, jsFilename} = config;\n\n const kebabApp = _.kebabCase(app);\n const camelApp = _.camelCase(app);\n\n const filename = appFilenameResolver(app, jsFilename, jsDir);\n\n return {\n output: {\n path: getResolvePath(getOutputPath(config)),\n filename,\n chunkFilename: filename,\n hotUpdateGlobal: camelApp + \"HotUpdate\",\n chunkLoadingGlobal: camelApp + \"ChunkLoading\",\n uniqueName: kebabApp,\n clean: config.command === Command.Build,\n },\n } satisfies RspackConfig;\n },\n };\n});\n"],"mappings":"AAAA,OAAO,OAAO;AAGd,SAAQ,oBAAmB;AAE3B,SAAQ,2BAA0B;AAClC,SAAQ,eAAe,sBAAqB;AAE5C,SAAQ,eAAc;AAEtB,IAAO,iBAAQ,aAAa,MAAM;AAC9B,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,YAAM,EAAC,KAAK,OAAO,WAAU,IAAI;AAEjC,YAAM,WAAW,EAAE,UAAU,GAAG;AAChC,YAAM,WAAW,EAAE,UAAU,GAAG;AAEhC,YAAM,WAAW,oBAAoB,KAAK,YAAY,KAAK;AAE3D,aAAO;AAAA,QACH,QAAQ;AAAA,UACJ,MAAM,eAAe,cAAc,MAAM,CAAC;AAAA,UAC1C;AAAA,UACA,eAAe;AAAA,UACf,iBAAiB,WAAW;AAAA,UAC5B,oBAAoB,WAAW;AAAA,UAC/B,YAAY;AAAA,UACZ,OAAO,OAAO,YAAY,QAAQ;AAAA,QACtC;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/cli/plugins/output.ts"],"sourcesContent":["import _ from \"lodash\";\nimport {Configuration as RspackConfig} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {appFilenameResolver} from \"@cli/bundler\";\nimport {getOutputPath, getResolvePath} from \"@cli/resolvers/path\";\n\nimport {Command} from \"@typing/app\";\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:output\",\n bundler: ({config}) => {\n const {app, jsDir, jsFilename} = config;\n\n const kebabApp = _.kebabCase(app);\n const camelApp = _.camelCase(app);\n\n const filename = appFilenameResolver(app, jsFilename, jsDir);\n\n return {\n output: {\n path: getResolvePath(getOutputPath(config)),\n filename,\n chunkFilename: filename,\n hashSalt: kebabApp,\n hotUpdateGlobal: camelApp + \"HotUpdate\",\n chunkLoadingGlobal: camelApp + \"ChunkLoading\",\n uniqueName: kebabApp,\n clean: config.command === Command.Build,\n },\n } satisfies RspackConfig;\n },\n };\n});\n"],"mappings":"AAAA,OAAO,OAAO;AAGd,SAAQ,oBAAmB;AAE3B,SAAQ,2BAA0B;AAClC,SAAQ,eAAe,sBAAqB;AAE5C,SAAQ,eAAc;AAEtB,IAAO,iBAAQ,aAAa,MAAM;AAC9B,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,YAAM,EAAC,KAAK,OAAO,WAAU,IAAI;AAEjC,YAAM,WAAW,EAAE,UAAU,GAAG;AAChC,YAAM,WAAW,EAAE,UAAU,GAAG;AAEhC,YAAM,WAAW,oBAAoB,KAAK,YAAY,KAAK;AAE3D,aAAO;AAAA,QACH,QAAQ;AAAA,UACJ,MAAM,eAAe,cAAc,MAAM,CAAC;AAAA,UAC1C;AAAA,UACA,eAAe;AAAA,UACf,UAAU;AAAA,UACV,iBAAiB,WAAW;AAAA,UAC5B,oBAAoB,WAAW;AAAA,UAC/B,YAAY;AAAA,UACZ,OAAO,OAAO,YAAY,QAAQ;AAAA,QACtC;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
@@ -1,7 +1,6 @@
1
1
  import _ from "lodash";
2
2
  import path from "path";
3
3
  import fs from "fs";
4
- import { createHash } from "crypto";
5
4
  import { CssExtractRspackPlugin } from "@rspack/core";
6
5
  import { definePlugin } from "./../../main/plugin.js";
7
6
  import { appFilenameResolver } from "./../../cli/bundler/index.js";
@@ -39,6 +38,7 @@ var style_default = definePlugin(() => {
39
38
  bundler: ({ config }) => {
40
39
  const { app, cssDir, cssFilename, cssIdentName, mergeStyles } = config;
41
40
  const filename = appFilenameResolver(app, cssFilename, cssDir);
41
+ const kebabApp = _.kebabCase(app);
42
42
  const createSassRuleSet = (rule) => {
43
43
  const rules = [CssExtractRspackPlugin.loader, rule, "sass-loader"];
44
44
  if (mergeStyles) {
@@ -85,8 +85,8 @@ var style_default = definePlugin(() => {
85
85
  modules: {
86
86
  exportLocalsConvention: "as-is",
87
87
  namedExport: false,
88
- localIdentName: cssIdentName.replaceAll("[app]", _.kebabCase(app)),
89
- localIdentHashSalt: createHash("sha256").update(app).digest("hex")
88
+ localIdentName: cssIdentName.replaceAll("[app]", kebabApp),
89
+ localIdentHashSalt: kebabApp
90
90
  }
91
91
  }
92
92
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/plugins/style.ts"],"sourcesContent":["import _ from \"lodash\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport {createHash} from \"crypto\";\nimport {Configuration as RspackConfig, CssExtractRspackPlugin, RuleSetUse, RuleSetUseItem} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {appFilenameResolver} from \"@cli/bundler\";\n\nimport {getAppSourcePath, getResolvePath, getSharedPath} from \"@cli/resolvers/path\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\nimport {toPosix} from \"@cli/utils/path\";\n\n// prettier-ignore\nconst styleMergerLoader =\n (config: ReadonlyConfig) =>\n (sharedStyle: string, sharedPath: string): string | void => {\n const sharedDir = getResolvePath(getSharedPath(config));\n\n if (sharedPath.startsWith(sharedDir)) {\n const relativePath = path.relative(sharedDir, sharedPath);\n\n const appDir = getResolvePath(getAppSourcePath(config));\n const appPath = getResolvePath(path.join(appDir, relativePath));\n\n if (fs.existsSync(appPath)) {\n try {\n let appStyle = fs.readFileSync(appPath, \"utf8\");\n\n appStyle = appStyle.replace(/url\\((['\"]?)(.*?)\\1\\)/g, (match, quote, filePath) => {\n if (\n filePath.startsWith(\"/\") ||\n filePath.startsWith(\"http\") ||\n filePath.startsWith(\"data:\")\n ) {\n return match;\n }\n\n const cssDir = path.dirname(appPath);\n const assetAbs = path.resolve(cssDir, filePath);\n\n const sharedFileDir = path.dirname(sharedPath);\n\n const relativeToSharedFile = path.relative(sharedFileDir, assetAbs);\n\n return `url(\"${toPosix(relativeToSharedFile)}\")`;\n });\n\n return sharedStyle + \"\\n\" + appStyle;\n } catch (error) {\n console.error(error);\n }\n }\n }\n };\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:styles\",\n bundler: ({config}) => {\n const {app, cssDir, cssFilename, cssIdentName, mergeStyles} = config;\n\n const filename = appFilenameResolver(app, cssFilename, cssDir);\n\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]\", _.kebabCase(app)),\n localIdentHashSalt: createHash(\"sha256\").update(app).digest(\"hex\"),\n },\n },\n }),\n },\n ],\n },\n ],\n },\n } satisfies RspackConfig;\n },\n };\n});\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/cli/plugins/style.ts"],"sourcesContent":["import _ from \"lodash\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport {Configuration as RspackConfig, CssExtractRspackPlugin, RuleSetUse, RuleSetUseItem} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {appFilenameResolver} from \"@cli/bundler\";\n\nimport {getAppSourcePath, getResolvePath, getSharedPath} from \"@cli/resolvers/path\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\nimport {toPosix} from \"@cli/utils/path\";\n\n// prettier-ignore\nconst styleMergerLoader =\n (config: ReadonlyConfig) =>\n (sharedStyle: string, sharedPath: string): string | void => {\n const sharedDir = getResolvePath(getSharedPath(config));\n\n if (sharedPath.startsWith(sharedDir)) {\n const relativePath = path.relative(sharedDir, sharedPath);\n\n const appDir = getResolvePath(getAppSourcePath(config));\n const appPath = getResolvePath(path.join(appDir, relativePath));\n\n if (fs.existsSync(appPath)) {\n try {\n let appStyle = fs.readFileSync(appPath, \"utf8\");\n\n appStyle = appStyle.replace(/url\\((['\"]?)(.*?)\\1\\)/g, (match, quote, filePath) => {\n if (\n filePath.startsWith(\"/\") ||\n filePath.startsWith(\"http\") ||\n filePath.startsWith(\"data:\")\n ) {\n return match;\n }\n\n const cssDir = path.dirname(appPath);\n const assetAbs = path.resolve(cssDir, filePath);\n\n const sharedFileDir = path.dirname(sharedPath);\n\n const relativeToSharedFile = path.relative(sharedFileDir, assetAbs);\n\n return `url(\"${toPosix(relativeToSharedFile)}\")`;\n });\n\n return sharedStyle + \"\\n\" + appStyle;\n } catch (error) {\n console.error(error);\n }\n }\n }\n };\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:styles\",\n bundler: ({config}) => {\n const {app, cssDir, cssFilename, cssIdentName, mergeStyles} = config;\n\n const filename = appFilenameResolver(app, cssFilename, cssDir);\n const kebabApp = _.kebabCase(app);\n\n const createSassRuleSet = (rule: RuleSetUseItem): RuleSetUse => {\n const rules: RuleSetUse = [CssExtractRspackPlugin.loader, rule, \"sass-loader\"];\n\n if (mergeStyles) {\n rules.push({\n loader: \"source-modifier-loader\",\n options: {\n modify: styleMergerLoader(config),\n },\n });\n }\n\n return rules;\n };\n\n return {\n resolve: {\n extensions: [\".css\", \".scss\"],\n },\n plugins: [\n new CssExtractRspackPlugin({\n filename,\n chunkFilename: filename,\n }),\n ],\n module: {\n rules: [\n {\n test: /\\.(scss|css)$/,\n type: \"javascript/auto\",\n oneOf: [\n {\n resourceQuery: /asis/,\n use: createSassRuleSet({\n loader: \"css-loader\",\n options: {\n esModule: true,\n modules: false,\n },\n }),\n },\n {\n use: createSassRuleSet({\n loader: \"css-loader\",\n options: {\n esModule: true,\n modules: {\n exportLocalsConvention: \"as-is\",\n namedExport: false,\n localIdentName: cssIdentName.replaceAll(\"[app]\", kebabApp),\n localIdentHashSalt: kebabApp,\n },\n },\n }),\n },\n ],\n },\n ],\n },\n } satisfies RspackConfig;\n },\n };\n});\n"],"mappings":"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","names":[]}
@@ -44,9 +44,7 @@ class AbstractMarker_default {
44
44
  }
45
45
  return this.querySelector(anchor, marked);
46
46
  } catch (e) {
47
- console.error(`Invalid anchor format. Expected a valid string (CSS selector/XPath)
48
-
49
- `, e);
47
+ console.error("Invalid anchor format. Expected a valid string (CSS selector/XPath)", e);
50
48
  return [];
51
49
  }
52
50
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/entry/content/core/AbstractMarker.ts"],"sourcesContent":["import {ContentScriptAnchor, ContentScriptMarkerContract, ContentScriptMarkerValue} from \"@typing/content\";\n\nexport default abstract class implements ContentScriptMarkerContract {\n public abstract mark(element: Element, value: ContentScriptMarkerValue): boolean;\n\n public abstract unmark(element: Element): boolean;\n\n public abstract isMarked(element: Element): boolean;\n\n public abstract value(element: Element): ContentScriptMarkerValue | undefined;\n\n protected constructor(protected anchor: ContentScriptAnchor) {}\n\n public for(anchor: ContentScriptAnchor): ContentScriptMarkerContract {\n this.anchor = anchor;\n\n return this;\n }\n\n public unmarked(): Element[] {\n return this.query(false);\n }\n\n public marked(): Element[] {\n return this.query(true);\n }\n\n public mount(element: Element): boolean {\n return this.mark(element, ContentScriptMarkerValue.Mounted);\n }\n\n public unmount(element: Element): boolean {\n return this.mark(element, ContentScriptMarkerValue.Unmounted);\n }\n\n public reset(): ContentScriptMarkerContract {\n for (const element of this.marked()) {\n this.unmark(element);\n }\n\n return this;\n }\n\n protected query(marked: boolean): Element[] {\n const anchor = this.anchor;\n\n if (anchor instanceof Element) {\n const isMarked = this.isMarked(anchor);\n\n if ((isMarked && marked) || (!isMarked && !marked)) {\n return [anchor];\n }\n } else if (typeof anchor === \"string\") {\n return this.queryAnchor(anchor, marked);\n }\n\n return [];\n }\n\n protected queryAnchor(anchor: string, marked: boolean = false): Element[] {\n try {\n if (anchor.startsWith(\"/\")) {\n return this.queryXpath(anchor, marked);\n }\n\n return this.querySelector(anchor, marked);\n } catch (e) {\n console.error(`Invalid anchor format. Expected a valid string (CSS selector/XPath)\\n\\n`, e);\n\n return [];\n }\n }\n\n protected querySelector(selector: string, _marked: boolean = false): Element[] {\n return Array.from(document.querySelectorAll(selector));\n }\n\n protected queryXpath(xpath: string, _marked: boolean = false): Element[] {\n const elements: Element[] = [];\n\n const result = document.evaluate(xpath, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);\n\n for (let i = 0; i < result.snapshotLength; i++) {\n elements.push(result.snapshotItem(i) as Element);\n }\n\n return elements;\n }\n\n protected isValidValue(value: any): value is ContentScriptMarkerValue {\n return [ContentScriptMarkerValue.Unmounted, ContentScriptMarkerValue.Mounted].includes(value);\n }\n}\n"],"mappings":"AAAA,SAA0D,gCAA+B;AAEzF,MAAO,uBAA8D;AAAA,EASvD,YAAsB,QAA6B;AAA7B;AAAA,EAA8B;AAAA,EAEvD,IAAI,QAA0D;AACjE,SAAK,SAAS;AAEd,WAAO;AAAA,EACX;AAAA,EAEO,WAAsB;AACzB,WAAO,KAAK,MAAM,KAAK;AAAA,EAC3B;AAAA,EAEO,SAAoB;AACvB,WAAO,KAAK,MAAM,IAAI;AAAA,EAC1B;AAAA,EAEO,MAAM,SAA2B;AACpC,WAAO,KAAK,KAAK,SAAS,yBAAyB,OAAO;AAAA,EAC9D;AAAA,EAEO,QAAQ,SAA2B;AACtC,WAAO,KAAK,KAAK,SAAS,yBAAyB,SAAS;AAAA,EAChE;AAAA,EAEO,QAAqC;AACxC,eAAW,WAAW,KAAK,OAAO,GAAG;AACjC,WAAK,OAAO,OAAO;AAAA,IACvB;AAEA,WAAO;AAAA,EACX;AAAA,EAEU,MAAM,QAA4B;AACxC,UAAM,SAAS,KAAK;AAEpB,QAAI,kBAAkB,SAAS;AAC3B,YAAM,WAAW,KAAK,SAAS,MAAM;AAErC,UAAK,YAAY,UAAY,CAAC,YAAY,CAAC,QAAS;AAChD,eAAO,CAAC,MAAM;AAAA,MAClB;AAAA,IACJ,WAAW,OAAO,WAAW,UAAU;AACnC,aAAO,KAAK,YAAY,QAAQ,MAAM;AAAA,IAC1C;AAEA,WAAO,CAAC;AAAA,EACZ;AAAA,EAEU,YAAY,QAAgB,SAAkB,OAAkB;AACtE,QAAI;AACA,UAAI,OAAO,WAAW,GAAG,GAAG;AACxB,eAAO,KAAK,WAAW,QAAQ,MAAM;AAAA,MACzC;AAEA,aAAO,KAAK,cAAc,QAAQ,MAAM;AAAA,IAC5C,SAAS,GAAG;AACR,cAAQ,MAAM;AAAA;AAAA,GAA2E,CAAC;AAE1F,aAAO,CAAC;AAAA,IACZ;AAAA,EACJ;AAAA,EAEU,cAAc,UAAkB,UAAmB,OAAkB;AAC3E,WAAO,MAAM,KAAK,SAAS,iBAAiB,QAAQ,CAAC;AAAA,EACzD;AAAA,EAEU,WAAW,OAAe,UAAmB,OAAkB;AACrE,UAAM,WAAsB,CAAC;AAE7B,UAAM,SAAS,SAAS,SAAS,OAAO,UAAU,MAAM,YAAY,4BAA4B,IAAI;AAEpG,aAAS,IAAI,GAAG,IAAI,OAAO,gBAAgB,KAAK;AAC5C,eAAS,KAAK,OAAO,aAAa,CAAC,CAAY;AAAA,IACnD;AAEA,WAAO;AAAA,EACX;AAAA,EAEU,aAAa,OAA+C;AAClE,WAAO,CAAC,yBAAyB,WAAW,yBAAyB,OAAO,EAAE,SAAS,KAAK;AAAA,EAChG;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/entry/content/core/AbstractMarker.ts"],"sourcesContent":["import {ContentScriptAnchor, ContentScriptMarkerContract, ContentScriptMarkerValue} from \"@typing/content\";\n\nexport default abstract class implements ContentScriptMarkerContract {\n public abstract mark(element: Element, value: ContentScriptMarkerValue): boolean;\n\n public abstract unmark(element: Element): boolean;\n\n public abstract isMarked(element: Element): boolean;\n\n public abstract value(element: Element): ContentScriptMarkerValue | undefined;\n\n protected constructor(protected anchor: ContentScriptAnchor) {}\n\n public for(anchor: ContentScriptAnchor): ContentScriptMarkerContract {\n this.anchor = anchor;\n\n return this;\n }\n\n public unmarked(): Element[] {\n return this.query(false);\n }\n\n public marked(): Element[] {\n return this.query(true);\n }\n\n public mount(element: Element): boolean {\n return this.mark(element, ContentScriptMarkerValue.Mounted);\n }\n\n public unmount(element: Element): boolean {\n return this.mark(element, ContentScriptMarkerValue.Unmounted);\n }\n\n public reset(): ContentScriptMarkerContract {\n for (const element of this.marked()) {\n this.unmark(element);\n }\n\n return this;\n }\n\n protected query(marked: boolean): Element[] {\n const anchor = this.anchor;\n\n if (anchor instanceof Element) {\n const isMarked = this.isMarked(anchor);\n\n if ((isMarked && marked) || (!isMarked && !marked)) {\n return [anchor];\n }\n } else if (typeof anchor === \"string\") {\n return this.queryAnchor(anchor, marked);\n }\n\n return [];\n }\n\n protected queryAnchor(anchor: string, marked: boolean = false): Element[] {\n try {\n if (anchor.startsWith(\"/\")) {\n return this.queryXpath(anchor, marked);\n }\n\n return this.querySelector(anchor, marked);\n } catch (e) {\n console.error(\"Invalid anchor format. Expected a valid string (CSS selector/XPath)\", e);\n\n return [];\n }\n }\n\n protected querySelector(selector: string, _marked: boolean = false): Element[] {\n return Array.from(document.querySelectorAll(selector));\n }\n\n protected queryXpath(xpath: string, _marked: boolean = false): Element[] {\n const elements: Element[] = [];\n\n const result = document.evaluate(xpath, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);\n\n for (let i = 0; i < result.snapshotLength; i++) {\n elements.push(result.snapshotItem(i) as Element);\n }\n\n return elements;\n }\n\n protected isValidValue(value: any): value is ContentScriptMarkerValue {\n return [ContentScriptMarkerValue.Unmounted, ContentScriptMarkerValue.Mounted].includes(value);\n }\n}\n"],"mappings":"AAAA,SAA0D,gCAA+B;AAEzF,MAAO,uBAA8D;AAAA,EASvD,YAAsB,QAA6B;AAA7B;AAAA,EAA8B;AAAA,EAEvD,IAAI,QAA0D;AACjE,SAAK,SAAS;AAEd,WAAO;AAAA,EACX;AAAA,EAEO,WAAsB;AACzB,WAAO,KAAK,MAAM,KAAK;AAAA,EAC3B;AAAA,EAEO,SAAoB;AACvB,WAAO,KAAK,MAAM,IAAI;AAAA,EAC1B;AAAA,EAEO,MAAM,SAA2B;AACpC,WAAO,KAAK,KAAK,SAAS,yBAAyB,OAAO;AAAA,EAC9D;AAAA,EAEO,QAAQ,SAA2B;AACtC,WAAO,KAAK,KAAK,SAAS,yBAAyB,SAAS;AAAA,EAChE;AAAA,EAEO,QAAqC;AACxC,eAAW,WAAW,KAAK,OAAO,GAAG;AACjC,WAAK,OAAO,OAAO;AAAA,IACvB;AAEA,WAAO;AAAA,EACX;AAAA,EAEU,MAAM,QAA4B;AACxC,UAAM,SAAS,KAAK;AAEpB,QAAI,kBAAkB,SAAS;AAC3B,YAAM,WAAW,KAAK,SAAS,MAAM;AAErC,UAAK,YAAY,UAAY,CAAC,YAAY,CAAC,QAAS;AAChD,eAAO,CAAC,MAAM;AAAA,MAClB;AAAA,IACJ,WAAW,OAAO,WAAW,UAAU;AACnC,aAAO,KAAK,YAAY,QAAQ,MAAM;AAAA,IAC1C;AAEA,WAAO,CAAC;AAAA,EACZ;AAAA,EAEU,YAAY,QAAgB,SAAkB,OAAkB;AACtE,QAAI;AACA,UAAI,OAAO,WAAW,GAAG,GAAG;AACxB,eAAO,KAAK,WAAW,QAAQ,MAAM;AAAA,MACzC;AAEA,aAAO,KAAK,cAAc,QAAQ,MAAM;AAAA,IAC5C,SAAS,GAAG;AACR,cAAQ,MAAM,uEAAuE,CAAC;AAEtF,aAAO,CAAC;AAAA,IACZ;AAAA,EACJ;AAAA,EAEU,cAAc,UAAkB,UAAmB,OAAkB;AAC3E,WAAO,MAAM,KAAK,SAAS,iBAAiB,QAAQ,CAAC;AAAA,EACzD;AAAA,EAEU,WAAW,OAAe,UAAmB,OAAkB;AACrE,UAAM,WAAsB,CAAC;AAE7B,UAAM,SAAS,SAAS,SAAS,OAAO,UAAU,MAAM,YAAY,4BAA4B,IAAI;AAEpG,aAAS,IAAI,GAAG,IAAI,OAAO,gBAAgB,KAAK;AAC5C,eAAS,KAAK,OAAO,aAAa,CAAC,CAAY;AAAA,IACnD;AAEA,WAAO;AAAA,EACX;AAAA,EAEU,aAAa,OAA+C;AAClE,WAAO,CAAC,yBAAyB,WAAW,yBAAyB,OAAO,EAAE,SAAS,KAAK;AAAA,EAChG;AACJ;","names":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adnbn",
3
3
  "type": "module",
4
- "version": "0.5.2",
4
+ "version": "0.5.3",
5
5
  "description": "Addon Bone - Cross-browser web extension framework with shared code base",
6
6
  "homepage": "https://addonbone.com",
7
7
  "license": "MIT",
@@ -121,12 +121,12 @@
121
121
  "@addon-core/browser": "^0.2.1",
122
122
  "@addon-core/inject-script": "^0.3.1",
123
123
  "@addon-core/storage": "^0.4.0",
124
- "@rsdoctor/rspack-plugin": "~1.1.11",
125
- "@rspack/cli": "^1.4.11",
126
- "@rspack/core": "^1.4.11",
124
+ "@rsdoctor/rspack-plugin": "^1.3.11",
125
+ "@rspack/cli": "^1.6.5",
126
+ "@rspack/core": "^1.6.5",
127
127
  "@svgr/webpack": "^8.1.0",
128
128
  "await-lock": "^3.0.0",
129
- "c12": "^3.0.3",
129
+ "c12": "^3.3.2",
130
130
  "cac": "^6.7.14",
131
131
  "consola": "^3.4.2",
132
132
  "css-loader": "^7.1.2",
@@ -134,13 +134,13 @@
134
134
  "file-loader": "^6.2.0",
135
135
  "get-value": "^4.0.1",
136
136
  "html-rspack-tags-plugin": "^0.0.3",
137
- "js-yaml": "^4.1.0",
137
+ "js-yaml": "^4.1.1",
138
138
  "json-stringify-deterministic": "^1.0.12",
139
139
  "lodash": "^4.17.21",
140
140
  "mini-css-extract-plugin": "^2.9.2",
141
141
  "nanoid": "^5.1.4",
142
142
  "pluralize": "^8.0.0",
143
- "rspack-plugin-virtual-module": "^0.1.13",
143
+ "rspack-plugin-virtual-module": "^1.0.1",
144
144
  "sass": "^1.83.4",
145
145
  "sass-loader": "^16.0.4",
146
146
  "semver": "^7.7.3",