@delta-comic/core 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,42 +1,42 @@
1
- ```python
2
- r"""
3
- ___________________________
4
- / ______\ | __ | | ____|
5
- | | _____ | |__| | | |__
6
- | | / _ \| __ \ | __|
7
- | |___| |_| || | \ \| |____
8
- \__________/|_| \________|
9
- ==============================
10
- 空阙虱楼 Copyright © Wenxig
11
- """
12
- ```
13
-
14
- [![GitHub](https://img.shields.io/github/license/delta-comic/delta-comic-core)](https://raw.githubusercontent.com/delta-comic/delta-comic-core/main/LICENSE)
15
- [![NPM Downloads](https://img.shields.io/npm/dm/delta-comic-core)](https://www.npmjs.com/package/delta-comic-core)
16
-
17
- - 工具库
18
-
19
- ## 功能
20
-
21
- - 辅助编写插件
22
- - 提供通用数据结构与默认样式
23
-
24
- ## 如何使用
25
-
26
- ```sh
27
- pnpm add delta-comic-core
28
- ```
29
-
30
- ## 为谁编写插件?
31
-
32
- [![Readme Card](https://wenxig-grs.vercel.app/api/pin/?username=delta-comic&repo=delta-comic&user&theme=transparent)](https://github.com/delta-comic/delta-comic)
33
-
34
- ## 辅助的插件
35
-
36
- ### Layout
37
-
38
- [![Readme Card](https://wenxig-grs.vercel.app/api/pin/?username=delta-comic&repo=delta-comic-plugin-layout&user&theme=transparent)](https://github.com/delta-comic/delta-comic-plugin-bika)
39
-
40
- ## Star History
41
-
1
+ ```python
2
+ r"""
3
+ ___________________________
4
+ / ______\ | __ | | ____|
5
+ | | _____ | |__| | | |__
6
+ | | / _ \| __ \ | __|
7
+ | |___| |_| || | \ \| |____
8
+ \__________/|_| \________|
9
+ ==============================
10
+ 空阙虱楼 Copyright © Wenxig
11
+ """
12
+ ```
13
+
14
+ [![GitHub](https://img.shields.io/github/license/delta-comic/delta-comic-core)](https://raw.githubusercontent.com/delta-comic/delta-comic-core/main/LICENSE)
15
+ [![NPM Downloads](https://img.shields.io/npm/dm/delta-comic-core)](https://www.npmjs.com/package/delta-comic-core)
16
+
17
+ - 工具库
18
+
19
+ ## 功能
20
+
21
+ - 辅助编写插件
22
+ - 提供通用数据结构与默认样式
23
+
24
+ ## 如何使用
25
+
26
+ ```sh
27
+ pnpm add delta-comic-core
28
+ ```
29
+
30
+ ## 为谁编写插件?
31
+
32
+ [![Readme Card](https://wenxig-grs.vercel.app/api/pin/?username=delta-comic&repo=delta-comic&user&theme=transparent)](https://github.com/delta-comic/delta-comic)
33
+
34
+ ## 辅助的插件
35
+
36
+ ### Layout
37
+
38
+ [![Readme Card](https://wenxig-grs.vercel.app/api/pin/?username=delta-comic&repo=delta-comic-plugin-layout&user&theme=transparent)](https://github.com/delta-comic/delta-comic-plugin-bika)
39
+
40
+ ## Star History
41
+
42
42
  [![Star History Chart](https://api.star-history.com/svg?repos=delta-comic/delta-comic-core&type=Date)](https://www.star-history.com/#delta-comic/delta-comic-core&Date)
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import { useGlobalVar } from "@delta-comic/utils";
2
- import { defineStore } from "pinia";
3
- import { reactive, shallowReactive } from "vue";
4
- var _useTemp = useGlobalVar(defineStore("core:temp", (e) => {
5
- let t = shallowReactive(/* @__PURE__ */ new Map());
1
+ import { useGlobalVar as e } from "@delta-comic/utils";
2
+ import { defineStore as t } from "pinia";
3
+ import { reactive as n, shallowReactive as r, shallowRef as i } from "vue";
4
+ var a = e(t("core:temp", (e) => {
5
+ let t = r(/* @__PURE__ */ new Map());
6
6
  return {
7
- $apply: (e, r) => (e = `reactive:${e}`, t.has(e) || t.set(e, reactive(r())), t.get(e)),
7
+ $apply: (e, r) => (e = `reactive:${e}`, t.has(e) || t.set(e, n(r())), t.get(e)),
8
8
  $has: e.action((e) => (e = `reactive:${e}`, t.has(e)), "has"),
9
9
  $onlyGet: e.action((e) => (e = `reactive:${e}`, t.get(e)), "onlyGet"),
10
10
  $applyRaw: e.action((e, n) => (e = `raw:${e}`, t.has(e) || t.set(e, n()), t.get(e)), "applyRaw"),
@@ -12,21 +12,21 @@ var _useTemp = useGlobalVar(defineStore("core:temp", (e) => {
12
12
  $onlyGetRaw: e.action((e) => (e = `raw:${e}`, t.get(e)), "onlyGetRaw")
13
13
  };
14
14
  }), "store/temp");
15
- const useTemp = () => _useTemp(window.$api.piniaInstance);
16
- function random$1(e, t) {
15
+ const o = () => a(window.$api.piniaInstance);
16
+ function s(e, t) {
17
17
  if (t ?? (t = e, e = 0), e >= t) throw Error("Invalid input: The maximum value must be greater than the minimum value.");
18
18
  return Math.random() * (t - e) + e;
19
19
  }
20
- function randomInt(e, t) {
21
- return Math.floor(random$1(e, t));
20
+ function c(e, t) {
21
+ return Math.floor(s(e, t));
22
22
  }
23
- function clamp$1(e, t, n) {
23
+ function l(e, t, n) {
24
24
  return n == null ? Math.min(e, t) : Math.min(Math.max(e, t), n);
25
25
  }
26
- function clamp(e, t, n) {
27
- return Number.isNaN(t) && (t = 0), Number.isNaN(n) && (n = 0), clamp$1(e, t, n);
26
+ function u(e, t, n) {
27
+ return Number.isNaN(t) && (t = 0), Number.isNaN(n) && (n = 0), l(e, t, n);
28
28
  }
29
- function random(...e) {
29
+ function d(...e) {
30
30
  let t = 0, n = 1, r = !1;
31
31
  switch (e.length) {
32
32
  case 1:
@@ -35,10 +35,10 @@ function random(...e) {
35
35
  case 2: typeof e[1] == "boolean" ? (n = e[0], r = e[1]) : (t = e[0], n = e[1]);
36
36
  case 3: typeof e[2] == "object" && e[2] != null && e[2][e[1]] === e[0] ? (t = 0, n = e[0], r = !1) : (t = e[0], n = e[1], r = e[2]);
37
37
  }
38
- return typeof t != "number" && (t = Number(t)), typeof n != "number" && (t = Number(n)), t ||= 0, n ||= 0, t > n && ([t, n] = [n, t]), t = clamp(t, -(2 ** 53 - 1), 2 ** 53 - 1), n = clamp(n, -(2 ** 53 - 1), 2 ** 53 - 1), t === n ? t : r ? random$1(t, n + 1) : randomInt(t, n + 1);
38
+ return typeof t != "number" && (t = Number(t)), typeof n != "number" && (t = Number(n)), t ||= 0, n ||= 0, t > n && ([t, n] = [n, t]), t = u(t, -(2 ** 53 - 1), 2 ** 53 - 1), n = u(n, -(2 ** 53 - 1), 2 ** 53 - 1), t === n ? t : r ? s(t, n + 1) : c(t, n + 1);
39
39
  }
40
- var SharedFunction = class {
41
- static sharedFunctions = useGlobalVar(/* @__PURE__ */ new Map(), "utils/SharedFunction/sharedFunctions");
40
+ var f = class {
41
+ static sharedFunctions = e(/* @__PURE__ */ new Map(), "utils/SharedFunction/sharedFunctions");
42
42
  static define(e, t, n) {
43
43
  return console.debug("[SharedFunction.define] defined new function", t, ":", n, "->", e), this.sharedFunctions.set(n, [...this.sharedFunctions.get(n) ?? [], {
44
44
  fn: e,
@@ -56,7 +56,7 @@ var SharedFunction = class {
56
56
  return Object.assign(n, r);
57
57
  }
58
58
  static callRandom(e, ...t) {
59
- let n = this.sharedFunctions.get(e) ?? [], r = random(0, n.length - 1), i = n[r];
59
+ let n = this.sharedFunctions.get(e) ?? [], r = d(0, n.length - 1), i = n[r];
60
60
  if (!i) throw Error(`[SharedFunction.callRandom] call ${e}, but not resigner any function.`);
61
61
  console.log(`[SharedFunction.callRandom] call index: ${r} in ${n.length}`, i);
62
62
  let a = i.fn(...t), o = {
@@ -80,7 +80,24 @@ var SharedFunction = class {
80
80
  })));
81
81
  return Object.assign(i, a);
82
82
  }
83
- };
84
- export { SharedFunction, useTemp };
83
+ }, p = e((() => {
84
+ let e = i(!!document.fullscreenElement);
85
+ return document.addEventListener("fullscreenchange", () => {
86
+ e.value = !!document.fullscreenElement;
87
+ }), e;
88
+ })(), "core/isFc");
89
+ const m = () => ({
90
+ isFullscreen: p,
91
+ entry() {
92
+ p.value = !0;
93
+ },
94
+ exit() {
95
+ p.value = !1;
96
+ },
97
+ toggle() {
98
+ p.value = !p.value;
99
+ }
100
+ });
101
+ export { f as SharedFunction, m as useFullscreen, o as useTemp };
85
102
 
86
103
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["random","random","clamp"],"sources":["../lib/temp.ts","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/math/random.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/math/randomInt.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/math/clamp.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/compat/math/clamp.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/compat/math/random.mjs","../lib/ipc.ts"],"sourcesContent":["import { useGlobalVar } from '@delta-comic/utils'\r\nimport { defineStore } from 'pinia'\r\nimport { reactive, shallowReactive, type Reactive } from 'vue'\r\n\r\nconst _useTemp = useGlobalVar(\r\n defineStore('core:temp', helper => {\r\n const tempBase = shallowReactive(new Map<string, any>())\r\n const $apply = <T extends object>(id: string, def: () => T) => {\r\n id = `reactive:${id}`\r\n if (!tempBase.has(id)) tempBase.set(id, reactive(def()))\r\n const store: Reactive<T> = tempBase.get(id)\r\n return store\r\n }\r\n const $has = helper.action((id: string): boolean => {\r\n id = `reactive:${id}`\r\n return tempBase.has(id)\r\n }, 'has')\r\n const $onlyGet = helper.action(<T extends object>(id: string): Reactive<T> => {\r\n id = `reactive:${id}`\r\n return tempBase.get(id)\r\n }, 'onlyGet')\r\n const $applyRaw = helper.action(<T extends object>(id: string, def: () => T) => {\r\n id = `raw:${id}`\r\n if (!tempBase.has(id)) tempBase.set(id, def())\r\n const store: T = tempBase.get(id)\r\n return store\r\n }, 'applyRaw')\r\n const $hasRaw = helper.action((id: string): boolean => {\r\n id = `raw:${id}`\r\n return tempBase.has(id)\r\n }, 'hasRaw')\r\n const $onlyGetRaw = helper.action(<T extends object>(id: string): Reactive<T> => {\r\n id = `raw:${id}`\r\n return tempBase.get(id)\r\n }, 'onlyGetRaw')\r\n return { $apply, $has, $onlyGet, $applyRaw, $hasRaw, $onlyGetRaw }\r\n }),\r\n 'store/temp'\r\n)\r\n\r\nexport const useTemp = () => _useTemp(window.$api.piniaInstance)","function random(minimum, maximum) {\n if (maximum == null) {\n maximum = minimum;\n minimum = 0;\n }\n if (minimum >= maximum) {\n throw new Error('Invalid input: The maximum value must be greater than the minimum value.');\n }\n return Math.random() * (maximum - minimum) + minimum;\n}\n\nexport { random };\n","import { random } from './random.mjs';\n\nfunction randomInt(minimum, maximum) {\n return Math.floor(random(minimum, maximum));\n}\n\nexport { randomInt };\n","function clamp(value, bound1, bound2) {\n if (bound2 == null) {\n return Math.min(value, bound1);\n }\n return Math.min(Math.max(value, bound1), bound2);\n}\n\nexport { clamp };\n","import { clamp as clamp$1 } from '../../math/clamp.mjs';\n\nfunction clamp(value, bound1, bound2) {\n if (Number.isNaN(bound1)) {\n bound1 = 0;\n }\n if (Number.isNaN(bound2)) {\n bound2 = 0;\n }\n return clamp$1(value, bound1, bound2);\n}\n\nexport { clamp };\n","import { clamp } from './clamp.mjs';\nimport { random as random$1 } from '../../math/random.mjs';\nimport { randomInt } from '../../math/randomInt.mjs';\n\nfunction random(...args) {\n let minimum = 0;\n let maximum = 1;\n let floating = false;\n switch (args.length) {\n case 1: {\n if (typeof args[0] === 'boolean') {\n floating = args[0];\n }\n else {\n maximum = args[0];\n }\n break;\n }\n case 2: {\n if (typeof args[1] === 'boolean') {\n maximum = args[0];\n floating = args[1];\n }\n else {\n minimum = args[0];\n maximum = args[1];\n }\n }\n case 3: {\n if (typeof args[2] === 'object' && args[2] != null && args[2][args[1]] === args[0]) {\n minimum = 0;\n maximum = args[0];\n floating = false;\n }\n else {\n minimum = args[0];\n maximum = args[1];\n floating = args[2];\n }\n }\n }\n if (typeof minimum !== 'number') {\n minimum = Number(minimum);\n }\n if (typeof maximum !== 'number') {\n minimum = Number(maximum);\n }\n if (!minimum) {\n minimum = 0;\n }\n if (!maximum) {\n maximum = 0;\n }\n if (minimum > maximum) {\n [minimum, maximum] = [maximum, minimum];\n }\n minimum = clamp(minimum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n maximum = clamp(maximum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n if (minimum === maximum) {\n return minimum;\n }\n if (floating) {\n return random$1(minimum, maximum + 1);\n }\n else {\n return randomInt(minimum, maximum + 1);\n }\n}\n\nexport { random };\n","import type { uni } from '@delta-comic/model'\r\n\r\nimport { useGlobalVar } from '@delta-comic/utils'\r\nimport { random } from 'es-toolkit/compat'\r\n\r\nexport type SharedFunctions = {\r\n getRandomProvide(signal?: AbortSignal): PromiseLike<uni.item.Item[]>\r\n\r\n addRecent(item: uni.item.Item): PromiseLike<any>\r\n routeToContent(\r\n contentType_: uni.content.ContentType_,\r\n id: string,\r\n ep: string,\r\n preload?: uni.content.PreloadValue\r\n ): PromiseLike<any>\r\n routeToSearch(\r\n input: string,\r\n source?: [plugin: string, name: string],\r\n sort?: string\r\n ): PromiseLike<any>\r\n\r\n addAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<void>\r\n removeAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<void>\r\n getIsAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<boolean>\r\n\r\n triggerSharePopup(page: uni.content.ContentPage): PromiseLike<void>\r\n triggerShareToken(token: string): PromiseLike<void>\r\n pushShareToken(token: string): PromiseLike<void>\r\n}\r\n\r\nexport class SharedFunction {\r\n private static sharedFunctions = useGlobalVar(\r\n new Map<string, { fn: SharedFunctions[keyof SharedFunctions]; plugin: string }[]>(),\r\n 'utils/SharedFunction/sharedFunctions'\r\n )\r\n public static define<TKey extends keyof SharedFunctions>(\r\n fn: SharedFunctions[TKey],\r\n plugin: string,\r\n name: TKey\r\n ) {\r\n console.debug('[SharedFunction.define] defined new function', plugin, ':', name, '->', fn)\r\n this.sharedFunctions.set(name, [...(this.sharedFunctions.get(name) ?? []), { fn, plugin }])\r\n return fn\r\n }\r\n public static call<TKey extends keyof SharedFunctions>(\r\n name: TKey,\r\n ...args: Parameters<SharedFunctions[TKey]>\r\n ) {\r\n const ins =\r\n this.sharedFunctions.get(name)?.map(v => {\r\n const result: ReturnType<SharedFunctions[TKey]> = (<any>v.fn)(...args)\r\n return { result, ...v }\r\n }) ?? []\r\n const results = Promise.all(ins.map(async v => ({ ...v, result: await v.result })))\r\n return Object.assign(ins, results)\r\n }\r\n public static callRandom<TKey extends keyof SharedFunctions>(\r\n name: TKey,\r\n ...args: Parameters<SharedFunctions[TKey]>\r\n ) {\r\n const all = this.sharedFunctions.get(name) ?? []\r\n const index = random(0, all.length - 1)\r\n const it = all[index]\r\n if (!it)\r\n throw new Error(`[SharedFunction.callRandom] call ${name}, but not resigner any function.`)\r\n console.log(`[SharedFunction.callRandom] call index: ${index} in ${all.length}`, it)\r\n const result: ReturnType<SharedFunctions[TKey]> = (<any>it.fn)(...args)\r\n const ins = { result, ...it }\r\n const results = (async () => ({ ...it, result: await result }))()\r\n return Object.assign(ins, results)\r\n }\r\n public static callWitch<TKey extends keyof SharedFunctions>(\r\n name: TKey,\r\n plugin: string,\r\n ...args: Parameters<SharedFunctions[TKey]>\r\n ) {\r\n const all = this.sharedFunctions.get(name) ?? []\r\n const them = all.filter(c => c.plugin === plugin)\r\n if (!them.length)\r\n throw new Error(\r\n `[SharedFunction.callWitch] not found plugin function (plugin: ${plugin}, name: ${name})`\r\n )\r\n\r\n const ins = them.map(v => {\r\n const result: ReturnType<SharedFunctions[TKey]> = (<any>v.fn)(...args)\r\n return { result, ...v }\r\n })\r\n const results = Promise.all(ins.map(async v => ({ ...v, result: await v.result })))\r\n return Object.assign(ins, results)\r\n }\r\n}"],"x_google_ignoreList":[1,2,3,4,5],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["random","random","clamp"],"sources":["../lib/temp.ts","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/math/random.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/math/randomInt.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/math/clamp.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/compat/math/clamp.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/compat/math/random.mjs","../lib/ipc.ts","../lib/fc.ts"],"sourcesContent":["import { useGlobalVar } from '@delta-comic/utils'\nimport { defineStore } from 'pinia'\nimport { reactive, shallowReactive, type Reactive } from 'vue'\n\nconst _useTemp = useGlobalVar(\n defineStore('core:temp', helper => {\n const tempBase = shallowReactive(new Map<string, any>())\n const $apply = <T extends object>(id: string, def: () => T) => {\n id = `reactive:${id}`\n if (!tempBase.has(id)) tempBase.set(id, reactive(def()))\n const store: Reactive<T> = tempBase.get(id)\n return store\n }\n const $has = helper.action((id: string): boolean => {\n id = `reactive:${id}`\n return tempBase.has(id)\n }, 'has')\n const $onlyGet = helper.action(<T extends object>(id: string): Reactive<T> => {\n id = `reactive:${id}`\n return tempBase.get(id)\n }, 'onlyGet')\n const $applyRaw = helper.action(<T extends object>(id: string, def: () => T) => {\n id = `raw:${id}`\n if (!tempBase.has(id)) tempBase.set(id, def())\n const store: T = tempBase.get(id)\n return store\n }, 'applyRaw')\n const $hasRaw = helper.action((id: string): boolean => {\n id = `raw:${id}`\n return tempBase.has(id)\n }, 'hasRaw')\n const $onlyGetRaw = helper.action(<T extends object>(id: string): Reactive<T> => {\n id = `raw:${id}`\n return tempBase.get(id)\n }, 'onlyGetRaw')\n return { $apply, $has, $onlyGet, $applyRaw, $hasRaw, $onlyGetRaw }\n }),\n 'store/temp'\n)\n\nexport const useTemp = () => _useTemp(window.$api.piniaInstance)","function random(minimum, maximum) {\n if (maximum == null) {\n maximum = minimum;\n minimum = 0;\n }\n if (minimum >= maximum) {\n throw new Error('Invalid input: The maximum value must be greater than the minimum value.');\n }\n return Math.random() * (maximum - minimum) + minimum;\n}\n\nexport { random };\n","import { random } from './random.mjs';\n\nfunction randomInt(minimum, maximum) {\n return Math.floor(random(minimum, maximum));\n}\n\nexport { randomInt };\n","function clamp(value, bound1, bound2) {\n if (bound2 == null) {\n return Math.min(value, bound1);\n }\n return Math.min(Math.max(value, bound1), bound2);\n}\n\nexport { clamp };\n","import { clamp as clamp$1 } from '../../math/clamp.mjs';\n\nfunction clamp(value, bound1, bound2) {\n if (Number.isNaN(bound1)) {\n bound1 = 0;\n }\n if (Number.isNaN(bound2)) {\n bound2 = 0;\n }\n return clamp$1(value, bound1, bound2);\n}\n\nexport { clamp };\n","import { clamp } from './clamp.mjs';\nimport { random as random$1 } from '../../math/random.mjs';\nimport { randomInt } from '../../math/randomInt.mjs';\n\nfunction random(...args) {\n let minimum = 0;\n let maximum = 1;\n let floating = false;\n switch (args.length) {\n case 1: {\n if (typeof args[0] === 'boolean') {\n floating = args[0];\n }\n else {\n maximum = args[0];\n }\n break;\n }\n case 2: {\n if (typeof args[1] === 'boolean') {\n maximum = args[0];\n floating = args[1];\n }\n else {\n minimum = args[0];\n maximum = args[1];\n }\n }\n case 3: {\n if (typeof args[2] === 'object' && args[2] != null && args[2][args[1]] === args[0]) {\n minimum = 0;\n maximum = args[0];\n floating = false;\n }\n else {\n minimum = args[0];\n maximum = args[1];\n floating = args[2];\n }\n }\n }\n if (typeof minimum !== 'number') {\n minimum = Number(minimum);\n }\n if (typeof maximum !== 'number') {\n minimum = Number(maximum);\n }\n if (!minimum) {\n minimum = 0;\n }\n if (!maximum) {\n maximum = 0;\n }\n if (minimum > maximum) {\n [minimum, maximum] = [maximum, minimum];\n }\n minimum = clamp(minimum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n maximum = clamp(maximum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n if (minimum === maximum) {\n return minimum;\n }\n if (floating) {\n return random$1(minimum, maximum + 1);\n }\n else {\n return randomInt(minimum, maximum + 1);\n }\n}\n\nexport { random };\n","import type { uni } from '@delta-comic/model'\n\nimport { useGlobalVar } from '@delta-comic/utils'\nimport { random } from 'es-toolkit/compat'\n\nexport type SharedFunctions = {\n getRandomProvide(signal?: AbortSignal): PromiseLike<uni.item.Item[]>\n\n addRecent(item: uni.item.Item): PromiseLike<any>\n routeToContent(\n contentType_: uni.content.ContentType_,\n id: string,\n ep: string,\n preload?: uni.content.PreloadValue\n ): PromiseLike<any>\n routeToSearch(\n input: string,\n source?: [plugin: string, name: string],\n sort?: string\n ): PromiseLike<any>\n\n addAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<void>\n removeAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<void>\n getIsAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<boolean>\n\n triggerSharePopup(page: uni.content.ContentPage): PromiseLike<void>\n triggerShareToken(token: string): PromiseLike<void>\n pushShareToken(token: string): PromiseLike<void>\n}\n\nexport class SharedFunction {\n private static sharedFunctions = useGlobalVar(\n new Map<string, { fn: SharedFunctions[keyof SharedFunctions]; plugin: string }[]>(),\n 'utils/SharedFunction/sharedFunctions'\n )\n public static define<TKey extends keyof SharedFunctions>(\n fn: SharedFunctions[TKey],\n plugin: string,\n name: TKey\n ) {\n console.debug('[SharedFunction.define] defined new function', plugin, ':', name, '->', fn)\n this.sharedFunctions.set(name, [...(this.sharedFunctions.get(name) ?? []), { fn, plugin }])\n return fn\n }\n public static call<TKey extends keyof SharedFunctions>(\n name: TKey,\n ...args: Parameters<SharedFunctions[TKey]>\n ) {\n const ins =\n this.sharedFunctions.get(name)?.map(v => {\n const result: ReturnType<SharedFunctions[TKey]> = (<any>v.fn)(...args)\n return { result, ...v }\n }) ?? []\n const results = Promise.all(ins.map(async v => ({ ...v, result: await v.result })))\n return Object.assign(ins, results)\n }\n public static callRandom<TKey extends keyof SharedFunctions>(\n name: TKey,\n ...args: Parameters<SharedFunctions[TKey]>\n ) {\n const all = this.sharedFunctions.get(name) ?? []\n const index = random(0, all.length - 1)\n const it = all[index]\n if (!it)\n throw new Error(`[SharedFunction.callRandom] call ${name}, but not resigner any function.`)\n console.log(`[SharedFunction.callRandom] call index: ${index} in ${all.length}`, it)\n const result: ReturnType<SharedFunctions[TKey]> = (<any>it.fn)(...args)\n const ins = { result, ...it }\n const results = (async () => ({ ...it, result: await result }))()\n return Object.assign(ins, results)\n }\n public static callWitch<TKey extends keyof SharedFunctions>(\n name: TKey,\n plugin: string,\n ...args: Parameters<SharedFunctions[TKey]>\n ) {\n const all = this.sharedFunctions.get(name) ?? []\n const them = all.filter(c => c.plugin === plugin)\n if (!them.length)\n throw new Error(\n `[SharedFunction.callWitch] not found plugin function (plugin: ${plugin}, name: ${name})`\n )\n\n const ins = them.map(v => {\n const result: ReturnType<SharedFunctions[TKey]> = (<any>v.fn)(...args)\n return { result, ...v }\n })\n const results = Promise.all(ins.map(async v => ({ ...v, result: await v.result })))\n return Object.assign(ins, results)\n }\n}","import { useGlobalVar } from '@delta-comic/utils'\nimport { shallowRef } from 'vue'\n\nconst isFullscreen = useGlobalVar(\n (() => {\n const isFc = shallowRef(!!document.fullscreenElement)\n document.addEventListener('fullscreenchange', () => {\n isFc.value = !!document.fullscreenElement\n })\n return isFc\n })(),\n 'core/isFc'\n)\n\nexport const useFullscreen = () => ({\n isFullscreen,\n entry() {\n isFullscreen.value = true\n },\n exit() {\n isFullscreen.value = false\n },\n toggle() {\n isFullscreen.value = !isFullscreen.value\n }\n})"],"x_google_ignoreList":[1,2,3,4,5],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@delta-comic/utils`),require(`pinia`),require(`vue`)):typeof define==`function`&&define.amd?define([`exports`,`@delta-comic/utils`,`pinia`,`vue`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.DcCore={},e.window.$$lib$$.DcUtils,e.window.$$lib$$.Pinia,e.window.$$lib$$.Vue))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var i=(0,t.useGlobalVar)((0,n.defineStore)(`core:temp`,e=>{let t=(0,r.shallowReactive)(new Map);return{$apply:(e,n)=>(e=`reactive:${e}`,t.has(e)||t.set(e,(0,r.reactive)(n())),t.get(e)),$has:e.action(e=>(e=`reactive:${e}`,t.has(e)),`has`),$onlyGet:e.action(e=>(e=`reactive:${e}`,t.get(e)),`onlyGet`),$applyRaw:e.action((e,n)=>(e=`raw:${e}`,t.has(e)||t.set(e,n()),t.get(e)),`applyRaw`),$hasRaw:e.action(e=>(e=`raw:${e}`,t.has(e)),`hasRaw`),$onlyGetRaw:e.action(e=>(e=`raw:${e}`,t.get(e)),`onlyGetRaw`)}}),`store/temp`);let a=()=>i(window.$api.piniaInstance);function o(e,t){if(t??(t=e,e=0),e>=t)throw Error(`Invalid input: The maximum value must be greater than the minimum value.`);return Math.random()*(t-e)+e}function s(e,t){return Math.floor(o(e,t))}function c(e,t,n){return n==null?Math.min(e,t):Math.min(Math.max(e,t),n)}function l(e,t,n){return Number.isNaN(t)&&(t=0),Number.isNaN(n)&&(n=0),c(e,t,n)}function u(...e){let t=0,n=1,r=!1;switch(e.length){case 1:typeof e[0]==`boolean`?r=e[0]:n=e[0];break;case 2:typeof e[1]==`boolean`?(n=e[0],r=e[1]):(t=e[0],n=e[1]);case 3:typeof e[2]==`object`&&e[2]!=null&&e[2][e[1]]===e[0]?(t=0,n=e[0],r=!1):(t=e[0],n=e[1],r=e[2])}return typeof t!=`number`&&(t=Number(t)),typeof n!=`number`&&(t=Number(n)),t||=0,n||=0,t>n&&([t,n]=[n,t]),t=l(t,-(2**53-1),2**53-1),n=l(n,-(2**53-1),2**53-1),t===n?t:r?o(t,n+1):s(t,n+1)}e.SharedFunction=class{static sharedFunctions=(0,t.useGlobalVar)(new Map,`utils/SharedFunction/sharedFunctions`);static define(e,t,n){return console.debug(`[SharedFunction.define] defined new function`,t,`:`,n,`->`,e),this.sharedFunctions.set(n,[...this.sharedFunctions.get(n)??[],{fn:e,plugin:t}]),e}static call(e,...t){let n=this.sharedFunctions.get(e)?.map(e=>({result:e.fn(...t),...e}))??[],r=Promise.all(n.map(async e=>({...e,result:await e.result})));return Object.assign(n,r)}static callRandom(e,...t){let n=this.sharedFunctions.get(e)??[],r=u(0,n.length-1),i=n[r];if(!i)throw Error(`[SharedFunction.callRandom] call ${e}, but not resigner any function.`);console.log(`[SharedFunction.callRandom] call index: ${r} in ${n.length}`,i);let a=i.fn(...t),o={result:a,...i},s=(async()=>({...i,result:await a}))();return Object.assign(o,s)}static callWitch(e,t,...n){let r=(this.sharedFunctions.get(e)??[]).filter(e=>e.plugin===t);if(!r.length)throw Error(`[SharedFunction.callWitch] not found plugin function (plugin: ${t}, name: ${e})`);let i=r.map(e=>({result:e.fn(...n),...e})),a=Promise.all(i.map(async e=>({...e,result:await e.result})));return Object.assign(i,a)}},e.useTemp=a});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@delta-comic/utils`),require(`pinia`),require(`vue`)):typeof define==`function`&&define.amd?define([`exports`,`@delta-comic/utils`,`pinia`,`vue`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.DcCore={},e.window.$$lib$$.DcUtils,e.window.$$lib$$.Pinia,e.window.$$lib$$.Vue))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var i=(0,t.useGlobalVar)((0,n.defineStore)(`core:temp`,e=>{let t=(0,r.shallowReactive)(new Map);return{$apply:(e,n)=>(e=`reactive:${e}`,t.has(e)||t.set(e,(0,r.reactive)(n())),t.get(e)),$has:e.action(e=>(e=`reactive:${e}`,t.has(e)),`has`),$onlyGet:e.action(e=>(e=`reactive:${e}`,t.get(e)),`onlyGet`),$applyRaw:e.action((e,n)=>(e=`raw:${e}`,t.has(e)||t.set(e,n()),t.get(e)),`applyRaw`),$hasRaw:e.action(e=>(e=`raw:${e}`,t.has(e)),`hasRaw`),$onlyGetRaw:e.action(e=>(e=`raw:${e}`,t.get(e)),`onlyGetRaw`)}}),`store/temp`);let a=()=>i(window.$api.piniaInstance);function o(e,t){if(t??(t=e,e=0),e>=t)throw Error(`Invalid input: The maximum value must be greater than the minimum value.`);return Math.random()*(t-e)+e}function s(e,t){return Math.floor(o(e,t))}function c(e,t,n){return n==null?Math.min(e,t):Math.min(Math.max(e,t),n)}function l(e,t,n){return Number.isNaN(t)&&(t=0),Number.isNaN(n)&&(n=0),c(e,t,n)}function u(...e){let t=0,n=1,r=!1;switch(e.length){case 1:typeof e[0]==`boolean`?r=e[0]:n=e[0];break;case 2:typeof e[1]==`boolean`?(n=e[0],r=e[1]):(t=e[0],n=e[1]);case 3:typeof e[2]==`object`&&e[2]!=null&&e[2][e[1]]===e[0]?(t=0,n=e[0],r=!1):(t=e[0],n=e[1],r=e[2])}return typeof t!=`number`&&(t=Number(t)),typeof n!=`number`&&(t=Number(n)),t||=0,n||=0,t>n&&([t,n]=[n,t]),t=l(t,-(2**53-1),2**53-1),n=l(n,-(2**53-1),2**53-1),t===n?t:r?o(t,n+1):s(t,n+1)}var d=class{static sharedFunctions=(0,t.useGlobalVar)(new Map,`utils/SharedFunction/sharedFunctions`);static define(e,t,n){return console.debug(`[SharedFunction.define] defined new function`,t,`:`,n,`->`,e),this.sharedFunctions.set(n,[...this.sharedFunctions.get(n)??[],{fn:e,plugin:t}]),e}static call(e,...t){let n=this.sharedFunctions.get(e)?.map(e=>({result:e.fn(...t),...e}))??[],r=Promise.all(n.map(async e=>({...e,result:await e.result})));return Object.assign(n,r)}static callRandom(e,...t){let n=this.sharedFunctions.get(e)??[],r=u(0,n.length-1),i=n[r];if(!i)throw Error(`[SharedFunction.callRandom] call ${e}, but not resigner any function.`);console.log(`[SharedFunction.callRandom] call index: ${r} in ${n.length}`,i);let a=i.fn(...t),o={result:a,...i},s=(async()=>({...i,result:await a}))();return Object.assign(o,s)}static callWitch(e,t,...n){let r=(this.sharedFunctions.get(e)??[]).filter(e=>e.plugin===t);if(!r.length)throw Error(`[SharedFunction.callWitch] not found plugin function (plugin: ${t}, name: ${e})`);let i=r.map(e=>({result:e.fn(...n),...e})),a=Promise.all(i.map(async e=>({...e,result:await e.result})));return Object.assign(i,a)}},f=(0,t.useGlobalVar)((()=>{let e=(0,r.shallowRef)(!!document.fullscreenElement);return document.addEventListener(`fullscreenchange`,()=>{e.value=!!document.fullscreenElement}),e})(),`core/isFc`);e.SharedFunction=d,e.useFullscreen=()=>({isFullscreen:f,entry(){f.value=!0},exit(){f.value=!1},toggle(){f.value=!f.value}}),e.useTemp=a});
2
2
  //# sourceMappingURL=index.umd.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.cjs","names":["random","random","clamp"],"sources":["../lib/temp.ts","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/math/random.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/math/randomInt.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/math/clamp.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/compat/math/clamp.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/compat/math/random.mjs","../lib/ipc.ts"],"sourcesContent":["import { useGlobalVar } from '@delta-comic/utils'\r\nimport { defineStore } from 'pinia'\r\nimport { reactive, shallowReactive, type Reactive } from 'vue'\r\n\r\nconst _useTemp = useGlobalVar(\r\n defineStore('core:temp', helper => {\r\n const tempBase = shallowReactive(new Map<string, any>())\r\n const $apply = <T extends object>(id: string, def: () => T) => {\r\n id = `reactive:${id}`\r\n if (!tempBase.has(id)) tempBase.set(id, reactive(def()))\r\n const store: Reactive<T> = tempBase.get(id)\r\n return store\r\n }\r\n const $has = helper.action((id: string): boolean => {\r\n id = `reactive:${id}`\r\n return tempBase.has(id)\r\n }, 'has')\r\n const $onlyGet = helper.action(<T extends object>(id: string): Reactive<T> => {\r\n id = `reactive:${id}`\r\n return tempBase.get(id)\r\n }, 'onlyGet')\r\n const $applyRaw = helper.action(<T extends object>(id: string, def: () => T) => {\r\n id = `raw:${id}`\r\n if (!tempBase.has(id)) tempBase.set(id, def())\r\n const store: T = tempBase.get(id)\r\n return store\r\n }, 'applyRaw')\r\n const $hasRaw = helper.action((id: string): boolean => {\r\n id = `raw:${id}`\r\n return tempBase.has(id)\r\n }, 'hasRaw')\r\n const $onlyGetRaw = helper.action(<T extends object>(id: string): Reactive<T> => {\r\n id = `raw:${id}`\r\n return tempBase.get(id)\r\n }, 'onlyGetRaw')\r\n return { $apply, $has, $onlyGet, $applyRaw, $hasRaw, $onlyGetRaw }\r\n }),\r\n 'store/temp'\r\n)\r\n\r\nexport const useTemp = () => _useTemp(window.$api.piniaInstance)","function random(minimum, maximum) {\n if (maximum == null) {\n maximum = minimum;\n minimum = 0;\n }\n if (minimum >= maximum) {\n throw new Error('Invalid input: The maximum value must be greater than the minimum value.');\n }\n return Math.random() * (maximum - minimum) + minimum;\n}\n\nexport { random };\n","import { random } from './random.mjs';\n\nfunction randomInt(minimum, maximum) {\n return Math.floor(random(minimum, maximum));\n}\n\nexport { randomInt };\n","function clamp(value, bound1, bound2) {\n if (bound2 == null) {\n return Math.min(value, bound1);\n }\n return Math.min(Math.max(value, bound1), bound2);\n}\n\nexport { clamp };\n","import { clamp as clamp$1 } from '../../math/clamp.mjs';\n\nfunction clamp(value, bound1, bound2) {\n if (Number.isNaN(bound1)) {\n bound1 = 0;\n }\n if (Number.isNaN(bound2)) {\n bound2 = 0;\n }\n return clamp$1(value, bound1, bound2);\n}\n\nexport { clamp };\n","import { clamp } from './clamp.mjs';\nimport { random as random$1 } from '../../math/random.mjs';\nimport { randomInt } from '../../math/randomInt.mjs';\n\nfunction random(...args) {\n let minimum = 0;\n let maximum = 1;\n let floating = false;\n switch (args.length) {\n case 1: {\n if (typeof args[0] === 'boolean') {\n floating = args[0];\n }\n else {\n maximum = args[0];\n }\n break;\n }\n case 2: {\n if (typeof args[1] === 'boolean') {\n maximum = args[0];\n floating = args[1];\n }\n else {\n minimum = args[0];\n maximum = args[1];\n }\n }\n case 3: {\n if (typeof args[2] === 'object' && args[2] != null && args[2][args[1]] === args[0]) {\n minimum = 0;\n maximum = args[0];\n floating = false;\n }\n else {\n minimum = args[0];\n maximum = args[1];\n floating = args[2];\n }\n }\n }\n if (typeof minimum !== 'number') {\n minimum = Number(minimum);\n }\n if (typeof maximum !== 'number') {\n minimum = Number(maximum);\n }\n if (!minimum) {\n minimum = 0;\n }\n if (!maximum) {\n maximum = 0;\n }\n if (minimum > maximum) {\n [minimum, maximum] = [maximum, minimum];\n }\n minimum = clamp(minimum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n maximum = clamp(maximum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n if (minimum === maximum) {\n return minimum;\n }\n if (floating) {\n return random$1(minimum, maximum + 1);\n }\n else {\n return randomInt(minimum, maximum + 1);\n }\n}\n\nexport { random };\n","import type { uni } from '@delta-comic/model'\r\n\r\nimport { useGlobalVar } from '@delta-comic/utils'\r\nimport { random } from 'es-toolkit/compat'\r\n\r\nexport type SharedFunctions = {\r\n getRandomProvide(signal?: AbortSignal): PromiseLike<uni.item.Item[]>\r\n\r\n addRecent(item: uni.item.Item): PromiseLike<any>\r\n routeToContent(\r\n contentType_: uni.content.ContentType_,\r\n id: string,\r\n ep: string,\r\n preload?: uni.content.PreloadValue\r\n ): PromiseLike<any>\r\n routeToSearch(\r\n input: string,\r\n source?: [plugin: string, name: string],\r\n sort?: string\r\n ): PromiseLike<any>\r\n\r\n addAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<void>\r\n removeAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<void>\r\n getIsAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<boolean>\r\n\r\n triggerSharePopup(page: uni.content.ContentPage): PromiseLike<void>\r\n triggerShareToken(token: string): PromiseLike<void>\r\n pushShareToken(token: string): PromiseLike<void>\r\n}\r\n\r\nexport class SharedFunction {\r\n private static sharedFunctions = useGlobalVar(\r\n new Map<string, { fn: SharedFunctions[keyof SharedFunctions]; plugin: string }[]>(),\r\n 'utils/SharedFunction/sharedFunctions'\r\n )\r\n public static define<TKey extends keyof SharedFunctions>(\r\n fn: SharedFunctions[TKey],\r\n plugin: string,\r\n name: TKey\r\n ) {\r\n console.debug('[SharedFunction.define] defined new function', plugin, ':', name, '->', fn)\r\n this.sharedFunctions.set(name, [...(this.sharedFunctions.get(name) ?? []), { fn, plugin }])\r\n return fn\r\n }\r\n public static call<TKey extends keyof SharedFunctions>(\r\n name: TKey,\r\n ...args: Parameters<SharedFunctions[TKey]>\r\n ) {\r\n const ins =\r\n this.sharedFunctions.get(name)?.map(v => {\r\n const result: ReturnType<SharedFunctions[TKey]> = (<any>v.fn)(...args)\r\n return { result, ...v }\r\n }) ?? []\r\n const results = Promise.all(ins.map(async v => ({ ...v, result: await v.result })))\r\n return Object.assign(ins, results)\r\n }\r\n public static callRandom<TKey extends keyof SharedFunctions>(\r\n name: TKey,\r\n ...args: Parameters<SharedFunctions[TKey]>\r\n ) {\r\n const all = this.sharedFunctions.get(name) ?? []\r\n const index = random(0, all.length - 1)\r\n const it = all[index]\r\n if (!it)\r\n throw new Error(`[SharedFunction.callRandom] call ${name}, but not resigner any function.`)\r\n console.log(`[SharedFunction.callRandom] call index: ${index} in ${all.length}`, it)\r\n const result: ReturnType<SharedFunctions[TKey]> = (<any>it.fn)(...args)\r\n const ins = { result, ...it }\r\n const results = (async () => ({ ...it, result: await result }))()\r\n return Object.assign(ins, results)\r\n }\r\n public static callWitch<TKey extends keyof SharedFunctions>(\r\n name: TKey,\r\n plugin: string,\r\n ...args: Parameters<SharedFunctions[TKey]>\r\n ) {\r\n const all = this.sharedFunctions.get(name) ?? []\r\n const them = all.filter(c => c.plugin === plugin)\r\n if (!them.length)\r\n throw new Error(\r\n `[SharedFunction.callWitch] not found plugin function (plugin: ${plugin}, name: ${name})`\r\n )\r\n\r\n const ins = them.map(v => {\r\n const result: ReturnType<SharedFunctions[TKey]> = (<any>v.fn)(...args)\r\n return { result, ...v }\r\n })\r\n const results = Promise.all(ins.map(async v => ({ ...v, result: await v.result })))\r\n return Object.assign(ins, results)\r\n }\r\n}"],"x_google_ignoreList":[1,2,3,4,5],"mappings":"0bAIA,IAAM,GAAA,EAAA,EAAA,eAAA,EAAA,EAAA,aACQ,YAAa,GAAU,CACjC,IAAM,GAAA,EAAA,EAAA,iBAA2B,IAAI,IAAmB,CA6BxD,MAAO,CAAE,QA5ByB,EAAY,KAC5C,EAAK,YAAY,IACZ,EAAS,IAAI,EAAG,EAAE,EAAS,IAAI,GAAA,EAAA,EAAA,UAAa,GAAK,CAAC,CAAC,CAC7B,EAAS,IAAI,EAAG,EAyB5B,KAtBJ,EAAO,OAAQ,IAC1B,EAAK,YAAY,IACV,EAAS,IAAI,EAAG,EACtB,MAAM,CAmBc,SAlBN,EAAO,OAA0B,IAChD,EAAK,YAAY,IACV,EAAS,IAAI,EAAG,EACtB,UAAU,CAeoB,UAdf,EAAO,QAA0B,EAAY,KAC7D,EAAK,OAAO,IACP,EAAS,IAAI,EAAG,EAAE,EAAS,IAAI,EAAI,GAAK,CAAC,CAC7B,EAAS,IAAI,EAAG,EAEhC,WAAW,CAS8B,QAR5B,EAAO,OAAQ,IAC7B,EAAK,OAAO,IACL,EAAS,IAAI,EAAG,EACtB,SAAS,CAKyC,YAJjC,EAAO,OAA0B,IACnD,EAAK,OAAO,IACL,EAAS,IAAI,EAAG,EACtB,aAAa,CACkD,EAClE,CACF,aACD,CAED,IAAa,MAAgB,EAAS,OAAO,KAAK,cAAA,CCxClD,SAASA,EAAO,EAAS,EAAS,CAK9B,GAJI,IACA,EAAU,EACV,EAAU,GAEV,GAAW,EACX,MAAU,MAAM,2EAA2E,CAE/F,OAAO,KAAK,QAAQ,EAAI,EAAU,GAAW,ECNjD,SAAS,EAAU,EAAS,EAAS,CACjC,OAAO,KAAK,MAAMC,EAAO,EAAS,EAAQ,CAAC,CCH/C,SAASC,EAAM,EAAO,EAAQ,EAAQ,CAIlC,OAHI,GAAU,KACH,KAAK,IAAI,EAAO,EAAO,CAE3B,KAAK,IAAI,KAAK,IAAI,EAAO,EAAO,CAAE,EAAO,CCFpD,SAAS,EAAM,EAAO,EAAQ,EAAQ,CAOlC,OANI,OAAO,MAAM,EAAO,GACpB,EAAS,GAET,OAAO,MAAM,EAAO,GACpB,EAAS,GAEN,EAAQ,EAAO,EAAQ,EAAO,CCLzC,SAAS,EAAO,GAAG,EAAM,CACrB,IAAI,EAAU,EACV,EAAU,EACV,EAAW,GACf,OAAQ,EAAK,OAAb,CACI,IAAK,GACG,OAAO,EAAK,IAAO,UACnB,EAAW,EAAK,GAGhB,EAAU,EAAK,GAEnB,MAEJ,IAAK,GACG,OAAO,EAAK,IAAO,WACnB,EAAU,EAAK,GACf,EAAW,EAAK,KAGhB,EAAU,EAAK,GACf,EAAU,EAAK,IAGvB,IAAK,GACG,OAAO,EAAK,IAAO,UAAY,EAAK,IAAM,MAAQ,EAAK,GAAG,EAAK,MAAQ,EAAK,IAC5E,EAAU,EACV,EAAU,EAAK,GACf,EAAW,KAGX,EAAU,EAAK,GACf,EAAU,EAAK,GACf,EAAW,EAAK,IA4BxB,OAxBA,OAAO,GAAY,WACnB,EAAU,OAAO,EAAQ,EAEzB,OAAO,GAAY,WACnB,EAAU,OAAO,EAAQ,EAE7B,AACI,IAAU,EAEd,AACI,IAAU,EAEV,EAAU,IACV,CAAC,EAAS,GAAW,CAAC,EAAS,EAAQ,EAE3C,EAAU,EAAM,EAAS,mBAAkD,CAC3E,EAAU,EAAM,EAAS,mBAAkD,CACvE,IAAY,EACL,EAEP,EACO,EAAS,EAAS,EAAU,EAAE,CAG9B,EAAU,EAAS,EAAU,EAAE,kBCnC9C,KAA4B,CAC1B,OAAe,iBAAA,EAAA,EAAA,cACb,IAAI,IACJ,uCACD,CACD,OAAc,OACZ,EACA,EACA,EACA,CAGA,OAFA,QAAQ,MAAM,+CAAgD,EAAQ,IAAK,EAAM,KAAM,EAAG,CAC1F,KAAK,gBAAgB,IAAI,EAAM,CAAC,GAAI,KAAK,gBAAgB,IAAI,EAAK,EAAI,EAAE,CAAG,CAAE,KAAI,SAAQ,CAAC,CAAC,CACpF,EAET,OAAc,KACZ,EACA,GAAG,EACH,CACA,IAAM,EACJ,KAAK,gBAAgB,IAAI,EAAK,EAAE,IAAI,IAE3B,CAAE,OAD+C,EAAE,GAAI,GAAG,EAAK,CACrD,GAAG,EAAG,EACvB,EAAI,EAAE,CACJ,EAAU,QAAQ,IAAI,EAAI,IAAI,KAAM,KAAM,CAAE,GAAG,EAAG,OAAQ,MAAM,EAAE,OAAQ,EAAE,CAAC,CACnF,OAAO,OAAO,OAAO,EAAK,EAAQ,CAEpC,OAAc,WACZ,EACA,GAAG,EACH,CACA,IAAM,EAAM,KAAK,gBAAgB,IAAI,EAAK,EAAI,EAAE,CAC1C,EAAQ,EAAO,EAAG,EAAI,OAAS,EAAE,CACjC,EAAK,EAAI,GACf,GAAI,CAAC,EACH,MAAU,MAAM,oCAAoC,EAAK,kCAAkC,CAC7F,QAAQ,IAAI,2CAA2C,EAAM,MAAM,EAAI,SAAU,EAAG,CACpF,IAAM,EAAkD,EAAG,GAAI,GAAG,EAAK,CACjE,EAAM,CAAE,SAAQ,GAAG,EAAI,CACvB,GAAW,UAAa,CAAE,GAAG,EAAI,OAAQ,MAAM,EAAQ,IAAI,CACjE,OAAO,OAAO,OAAO,EAAK,EAAQ,CAEpC,OAAc,UACZ,EACA,EACA,GAAG,EACH,CAEA,IAAM,GADM,KAAK,gBAAgB,IAAI,EAAK,EAAI,EAAE,EAC/B,OAAO,GAAK,EAAE,SAAW,EAAO,CACjD,GAAI,CAAC,EAAK,OACR,MAAU,MACR,iEAAiE,EAAO,UAAU,EAAK,GACxF,CAEH,IAAM,EAAM,EAAK,IAAI,IAEZ,CAAE,OAD+C,EAAE,GAAI,GAAG,EAAK,CACrD,GAAG,EAAG,EACvB,CACI,EAAU,QAAQ,IAAI,EAAI,IAAI,KAAM,KAAM,CAAE,GAAG,EAAG,OAAQ,MAAM,EAAE,OAAQ,EAAE,CAAC,CACnF,OAAO,OAAO,OAAO,EAAK,EAAQ"}
1
+ {"version":3,"file":"index.umd.cjs","names":["random","random","clamp"],"sources":["../lib/temp.ts","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/math/random.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/math/randomInt.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/math/clamp.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/compat/math/clamp.mjs","../../../node_modules/.pnpm/es-toolkit@1.40.0/node_modules/es-toolkit/dist/compat/math/random.mjs","../lib/ipc.ts","../lib/fc.ts"],"sourcesContent":["import { useGlobalVar } from '@delta-comic/utils'\nimport { defineStore } from 'pinia'\nimport { reactive, shallowReactive, type Reactive } from 'vue'\n\nconst _useTemp = useGlobalVar(\n defineStore('core:temp', helper => {\n const tempBase = shallowReactive(new Map<string, any>())\n const $apply = <T extends object>(id: string, def: () => T) => {\n id = `reactive:${id}`\n if (!tempBase.has(id)) tempBase.set(id, reactive(def()))\n const store: Reactive<T> = tempBase.get(id)\n return store\n }\n const $has = helper.action((id: string): boolean => {\n id = `reactive:${id}`\n return tempBase.has(id)\n }, 'has')\n const $onlyGet = helper.action(<T extends object>(id: string): Reactive<T> => {\n id = `reactive:${id}`\n return tempBase.get(id)\n }, 'onlyGet')\n const $applyRaw = helper.action(<T extends object>(id: string, def: () => T) => {\n id = `raw:${id}`\n if (!tempBase.has(id)) tempBase.set(id, def())\n const store: T = tempBase.get(id)\n return store\n }, 'applyRaw')\n const $hasRaw = helper.action((id: string): boolean => {\n id = `raw:${id}`\n return tempBase.has(id)\n }, 'hasRaw')\n const $onlyGetRaw = helper.action(<T extends object>(id: string): Reactive<T> => {\n id = `raw:${id}`\n return tempBase.get(id)\n }, 'onlyGetRaw')\n return { $apply, $has, $onlyGet, $applyRaw, $hasRaw, $onlyGetRaw }\n }),\n 'store/temp'\n)\n\nexport const useTemp = () => _useTemp(window.$api.piniaInstance)","function random(minimum, maximum) {\n if (maximum == null) {\n maximum = minimum;\n minimum = 0;\n }\n if (minimum >= maximum) {\n throw new Error('Invalid input: The maximum value must be greater than the minimum value.');\n }\n return Math.random() * (maximum - minimum) + minimum;\n}\n\nexport { random };\n","import { random } from './random.mjs';\n\nfunction randomInt(minimum, maximum) {\n return Math.floor(random(minimum, maximum));\n}\n\nexport { randomInt };\n","function clamp(value, bound1, bound2) {\n if (bound2 == null) {\n return Math.min(value, bound1);\n }\n return Math.min(Math.max(value, bound1), bound2);\n}\n\nexport { clamp };\n","import { clamp as clamp$1 } from '../../math/clamp.mjs';\n\nfunction clamp(value, bound1, bound2) {\n if (Number.isNaN(bound1)) {\n bound1 = 0;\n }\n if (Number.isNaN(bound2)) {\n bound2 = 0;\n }\n return clamp$1(value, bound1, bound2);\n}\n\nexport { clamp };\n","import { clamp } from './clamp.mjs';\nimport { random as random$1 } from '../../math/random.mjs';\nimport { randomInt } from '../../math/randomInt.mjs';\n\nfunction random(...args) {\n let minimum = 0;\n let maximum = 1;\n let floating = false;\n switch (args.length) {\n case 1: {\n if (typeof args[0] === 'boolean') {\n floating = args[0];\n }\n else {\n maximum = args[0];\n }\n break;\n }\n case 2: {\n if (typeof args[1] === 'boolean') {\n maximum = args[0];\n floating = args[1];\n }\n else {\n minimum = args[0];\n maximum = args[1];\n }\n }\n case 3: {\n if (typeof args[2] === 'object' && args[2] != null && args[2][args[1]] === args[0]) {\n minimum = 0;\n maximum = args[0];\n floating = false;\n }\n else {\n minimum = args[0];\n maximum = args[1];\n floating = args[2];\n }\n }\n }\n if (typeof minimum !== 'number') {\n minimum = Number(minimum);\n }\n if (typeof maximum !== 'number') {\n minimum = Number(maximum);\n }\n if (!minimum) {\n minimum = 0;\n }\n if (!maximum) {\n maximum = 0;\n }\n if (minimum > maximum) {\n [minimum, maximum] = [maximum, minimum];\n }\n minimum = clamp(minimum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n maximum = clamp(maximum, -Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n if (minimum === maximum) {\n return minimum;\n }\n if (floating) {\n return random$1(minimum, maximum + 1);\n }\n else {\n return randomInt(minimum, maximum + 1);\n }\n}\n\nexport { random };\n","import type { uni } from '@delta-comic/model'\n\nimport { useGlobalVar } from '@delta-comic/utils'\nimport { random } from 'es-toolkit/compat'\n\nexport type SharedFunctions = {\n getRandomProvide(signal?: AbortSignal): PromiseLike<uni.item.Item[]>\n\n addRecent(item: uni.item.Item): PromiseLike<any>\n routeToContent(\n contentType_: uni.content.ContentType_,\n id: string,\n ep: string,\n preload?: uni.content.PreloadValue\n ): PromiseLike<any>\n routeToSearch(\n input: string,\n source?: [plugin: string, name: string],\n sort?: string\n ): PromiseLike<any>\n\n addAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<void>\n removeAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<void>\n getIsAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<boolean>\n\n triggerSharePopup(page: uni.content.ContentPage): PromiseLike<void>\n triggerShareToken(token: string): PromiseLike<void>\n pushShareToken(token: string): PromiseLike<void>\n}\n\nexport class SharedFunction {\n private static sharedFunctions = useGlobalVar(\n new Map<string, { fn: SharedFunctions[keyof SharedFunctions]; plugin: string }[]>(),\n 'utils/SharedFunction/sharedFunctions'\n )\n public static define<TKey extends keyof SharedFunctions>(\n fn: SharedFunctions[TKey],\n plugin: string,\n name: TKey\n ) {\n console.debug('[SharedFunction.define] defined new function', plugin, ':', name, '->', fn)\n this.sharedFunctions.set(name, [...(this.sharedFunctions.get(name) ?? []), { fn, plugin }])\n return fn\n }\n public static call<TKey extends keyof SharedFunctions>(\n name: TKey,\n ...args: Parameters<SharedFunctions[TKey]>\n ) {\n const ins =\n this.sharedFunctions.get(name)?.map(v => {\n const result: ReturnType<SharedFunctions[TKey]> = (<any>v.fn)(...args)\n return { result, ...v }\n }) ?? []\n const results = Promise.all(ins.map(async v => ({ ...v, result: await v.result })))\n return Object.assign(ins, results)\n }\n public static callRandom<TKey extends keyof SharedFunctions>(\n name: TKey,\n ...args: Parameters<SharedFunctions[TKey]>\n ) {\n const all = this.sharedFunctions.get(name) ?? []\n const index = random(0, all.length - 1)\n const it = all[index]\n if (!it)\n throw new Error(`[SharedFunction.callRandom] call ${name}, but not resigner any function.`)\n console.log(`[SharedFunction.callRandom] call index: ${index} in ${all.length}`, it)\n const result: ReturnType<SharedFunctions[TKey]> = (<any>it.fn)(...args)\n const ins = { result, ...it }\n const results = (async () => ({ ...it, result: await result }))()\n return Object.assign(ins, results)\n }\n public static callWitch<TKey extends keyof SharedFunctions>(\n name: TKey,\n plugin: string,\n ...args: Parameters<SharedFunctions[TKey]>\n ) {\n const all = this.sharedFunctions.get(name) ?? []\n const them = all.filter(c => c.plugin === plugin)\n if (!them.length)\n throw new Error(\n `[SharedFunction.callWitch] not found plugin function (plugin: ${plugin}, name: ${name})`\n )\n\n const ins = them.map(v => {\n const result: ReturnType<SharedFunctions[TKey]> = (<any>v.fn)(...args)\n return { result, ...v }\n })\n const results = Promise.all(ins.map(async v => ({ ...v, result: await v.result })))\n return Object.assign(ins, results)\n }\n}","import { useGlobalVar } from '@delta-comic/utils'\nimport { shallowRef } from 'vue'\n\nconst isFullscreen = useGlobalVar(\n (() => {\n const isFc = shallowRef(!!document.fullscreenElement)\n document.addEventListener('fullscreenchange', () => {\n isFc.value = !!document.fullscreenElement\n })\n return isFc\n })(),\n 'core/isFc'\n)\n\nexport const useFullscreen = () => ({\n isFullscreen,\n entry() {\n isFullscreen.value = true\n },\n exit() {\n isFullscreen.value = false\n },\n toggle() {\n isFullscreen.value = !isFullscreen.value\n }\n})"],"x_google_ignoreList":[1,2,3,4,5],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const useFullscreen: () => {
2
+ isFullscreen: import('vue').ShallowRef<boolean, boolean>;
3
+ entry(): void;
4
+ exit(): void;
5
+ toggle(): void;
6
+ };
@@ -0,0 +1,3 @@
1
+ export * from './temp';
2
+ export * from './ipc';
3
+ export * from './fc';
@@ -1,73 +1,44 @@
1
- import { Reactive } from 'vue';
2
- import { Store } from 'pinia';
3
- import { uni } from '@delta-comic/model';
4
-
5
- export declare class SharedFunction {
6
- private static sharedFunctions;
7
- static define<TKey extends keyof SharedFunctions>(fn: SharedFunctions[TKey], plugin: string, name: TKey): SharedFunctions[TKey];
8
- static call<TKey extends keyof SharedFunctions>(name: TKey, ...args: Parameters<SharedFunctions[TKey]>): {
9
- fn: SharedFunctions[keyof SharedFunctions];
10
- plugin: string;
11
- result: ReturnType<SharedFunctions[TKey]>;
12
- }[] & Promise<{
13
- result: Awaited<ReturnType<SharedFunctions[TKey]>>;
14
- fn: SharedFunctions[keyof SharedFunctions];
15
- plugin: string;
16
- }[]>;
17
- static callRandom<TKey extends keyof SharedFunctions>(name: TKey, ...args: Parameters<SharedFunctions[TKey]>): {
18
- fn: SharedFunctions[keyof SharedFunctions];
19
- plugin: string;
20
- result: ReturnType<SharedFunctions[TKey]>;
21
- } & Promise<{
22
- result: Awaited<ReturnType<SharedFunctions[TKey]>>;
23
- fn: SharedFunctions[keyof SharedFunctions];
24
- plugin: string;
25
- }>;
26
- static callWitch<TKey extends keyof SharedFunctions>(name: TKey, plugin: string, ...args: Parameters<SharedFunctions[TKey]>): {
27
- fn: SharedFunctions[keyof SharedFunctions];
28
- plugin: string;
29
- result: ReturnType<SharedFunctions[TKey]>;
30
- }[] & Promise<{
31
- result: Awaited<ReturnType<SharedFunctions[TKey]>>;
32
- fn: SharedFunctions[keyof SharedFunctions];
33
- plugin: string;
34
- }[]>;
35
- }
36
-
37
- export declare type SharedFunctions = {
38
- getRandomProvide(signal?: AbortSignal): PromiseLike<uni.item.Item[]>;
39
- addRecent(item: uni.item.Item): PromiseLike<any>;
40
- routeToContent(contentType_: uni.content.ContentType_, id: string, ep: string, preload?: uni.content.PreloadValue): PromiseLike<any>;
41
- routeToSearch(input: string, source?: [plugin: string, name: string], sort?: string): PromiseLike<any>;
42
- addAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<void>;
43
- removeAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<void>;
44
- getIsAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<boolean>;
45
- triggerSharePopup(page: uni.content.ContentPage): PromiseLike<void>;
46
- triggerShareToken(token: string): PromiseLike<void>;
47
- pushShareToken(token: string): PromiseLike<void>;
48
- };
49
-
50
- export declare const useTemp: () => Store<"core:temp", Pick<{
51
- $apply: <T extends object>(id: string, def: () => T) => Reactive<T>;
52
- $has: (id: string) => boolean;
53
- $onlyGet: <T extends object>(id: string) => Reactive<T>;
54
- $applyRaw: <T extends object>(id: string, def: () => T) => T;
55
- $hasRaw: (id: string) => boolean;
56
- $onlyGetRaw: <T extends object>(id: string) => Reactive<T>;
57
- }, never>, Pick<{
58
- $apply: <T extends object>(id: string, def: () => T) => Reactive<T>;
59
- $has: (id: string) => boolean;
60
- $onlyGet: <T extends object>(id: string) => Reactive<T>;
61
- $applyRaw: <T extends object>(id: string, def: () => T) => T;
62
- $hasRaw: (id: string) => boolean;
63
- $onlyGetRaw: <T extends object>(id: string) => Reactive<T>;
64
- }, never>, Pick<{
65
- $apply: <T extends object>(id: string, def: () => T) => Reactive<T>;
66
- $has: (id: string) => boolean;
67
- $onlyGet: <T extends object>(id: string) => Reactive<T>;
68
- $applyRaw: <T extends object>(id: string, def: () => T) => T;
69
- $hasRaw: (id: string) => boolean;
70
- $onlyGetRaw: <T extends object>(id: string) => Reactive<T>;
71
- }, "$apply" | "$has" | "$onlyGet" | "$applyRaw" | "$hasRaw" | "$onlyGetRaw">>;
72
-
73
- export { }
1
+ import { uni } from '@delta-comic/model';
2
+ export type SharedFunctions = {
3
+ getRandomProvide(signal?: AbortSignal): PromiseLike<uni.item.Item[]>;
4
+ addRecent(item: uni.item.Item): PromiseLike<any>;
5
+ routeToContent(contentType_: uni.content.ContentType_, id: string, ep: string, preload?: uni.content.PreloadValue): PromiseLike<any>;
6
+ routeToSearch(input: string, source?: [plugin: string, name: string], sort?: string): PromiseLike<any>;
7
+ addAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<void>;
8
+ removeAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<void>;
9
+ getIsAuthorSubscribe(author: uni.item.Author, plugin: string): PromiseLike<boolean>;
10
+ triggerSharePopup(page: uni.content.ContentPage): PromiseLike<void>;
11
+ triggerShareToken(token: string): PromiseLike<void>;
12
+ pushShareToken(token: string): PromiseLike<void>;
13
+ };
14
+ export declare class SharedFunction {
15
+ private static sharedFunctions;
16
+ static define<TKey extends keyof SharedFunctions>(fn: SharedFunctions[TKey], plugin: string, name: TKey): SharedFunctions[TKey];
17
+ static call<TKey extends keyof SharedFunctions>(name: TKey, ...args: Parameters<SharedFunctions[TKey]>): {
18
+ fn: SharedFunctions[keyof SharedFunctions];
19
+ plugin: string;
20
+ result: ReturnType<SharedFunctions[TKey]>;
21
+ }[] & Promise<{
22
+ result: Awaited<ReturnType<SharedFunctions[TKey]>>;
23
+ fn: SharedFunctions[keyof SharedFunctions];
24
+ plugin: string;
25
+ }[]>;
26
+ static callRandom<TKey extends keyof SharedFunctions>(name: TKey, ...args: Parameters<SharedFunctions[TKey]>): {
27
+ fn: SharedFunctions[keyof SharedFunctions];
28
+ plugin: string;
29
+ result: ReturnType<SharedFunctions[TKey]>;
30
+ } & Promise<{
31
+ result: Awaited<ReturnType<SharedFunctions[TKey]>>;
32
+ fn: SharedFunctions[keyof SharedFunctions];
33
+ plugin: string;
34
+ }>;
35
+ static callWitch<TKey extends keyof SharedFunctions>(name: TKey, plugin: string, ...args: Parameters<SharedFunctions[TKey]>): {
36
+ fn: SharedFunctions[keyof SharedFunctions];
37
+ plugin: string;
38
+ result: ReturnType<SharedFunctions[TKey]>;
39
+ }[] & Promise<{
40
+ result: Awaited<ReturnType<SharedFunctions[TKey]>>;
41
+ fn: SharedFunctions[keyof SharedFunctions];
42
+ plugin: string;
43
+ }[]>;
44
+ }
@@ -0,0 +1,23 @@
1
+ import { Reactive } from 'vue';
2
+ export declare const useTemp: () => import('pinia').Store<"core:temp", Pick<{
3
+ $apply: <T extends object>(id: string, def: () => T) => Reactive<T>;
4
+ $has: (id: string) => boolean;
5
+ $onlyGet: <T extends object>(id: string) => Reactive<T>;
6
+ $applyRaw: <T extends object>(id: string, def: () => T) => T;
7
+ $hasRaw: (id: string) => boolean;
8
+ $onlyGetRaw: <T extends object>(id: string) => Reactive<T>;
9
+ }, never>, Pick<{
10
+ $apply: <T extends object>(id: string, def: () => T) => Reactive<T>;
11
+ $has: (id: string) => boolean;
12
+ $onlyGet: <T extends object>(id: string) => Reactive<T>;
13
+ $applyRaw: <T extends object>(id: string, def: () => T) => T;
14
+ $hasRaw: (id: string) => boolean;
15
+ $onlyGetRaw: <T extends object>(id: string) => Reactive<T>;
16
+ }, never>, Pick<{
17
+ $apply: <T extends object>(id: string, def: () => T) => Reactive<T>;
18
+ $has: (id: string) => boolean;
19
+ $onlyGet: <T extends object>(id: string) => Reactive<T>;
20
+ $applyRaw: <T extends object>(id: string, def: () => T) => T;
21
+ $hasRaw: (id: string) => boolean;
22
+ $onlyGetRaw: <T extends object>(id: string) => Reactive<T>;
23
+ }, "$apply" | "$has" | "$onlyGet" | "$applyRaw" | "$hasRaw" | "$onlyGetRaw">>;
package/dist/pack.tgz CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delta-comic/core",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "空阙虱楼",
5
5
  "homepage": "https://github.com/delta-comic/delta-comic-core",
6
6
  "license": "AGPL-3.0-only",
@@ -42,9 +42,6 @@
42
42
  "tarball": "./dist/pack.tgz"
43
43
  },
44
44
  "readme": "./README.md",
45
- "dependencies": {
46
- "@tauri-apps/api": "^2.10.1"
47
- },
48
45
  "scripts": {
49
46
  "build": "vite build && pnpm pack --out ./dist/pack.tgz",
50
47
  "version:major": "pnpm version major --no-git-tag-version",