ranuts 0.4.1-alpha.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +23 -16
- package/README.de.md +62 -0
- package/README.es.md +62 -0
- package/README.fa.md +62 -0
- package/README.ja.md +62 -0
- package/README.ko.md +62 -0
- package/README.md +35 -92
- package/README.pt.md +62 -0
- package/README.zh-CN.md +35 -91
- package/dist/iife/index.iife.js +4 -0
- package/dist/iife/utils.iife.js +4 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +306 -1
- package/dist/src/_virtual/_rolldown/runtime/index.js +12 -0
- package/dist/src/conversation/engine.d.ts +1 -1
- package/dist/src/conversation/engine.js +101 -0
- package/dist/src/conversation/index.d.ts +3 -3
- package/dist/src/conversation/index.js +4 -1
- package/dist/src/stream/accumulator.d.ts +1 -1
- package/dist/src/stream/accumulator.js +79 -0
- package/dist/src/stream/budget.d.ts +1 -1
- package/dist/src/stream/budget.js +45 -0
- package/dist/src/stream/index.d.ts +7 -7
- package/dist/src/stream/index.js +11 -1
- package/dist/src/stream/sse.d.ts +1 -1
- package/dist/src/stream/sse.js +61 -0
- package/dist/src/sw/index.js +52 -1
- package/dist/src/utils/async.js +49 -0
- package/dist/src/utils/audioRecorder.js +1121 -0
- package/dist/src/utils/behavior.js +9 -0
- package/dist/src/utils/binary.js +89 -0
- package/dist/src/utils/bom.d.ts +31 -9
- package/dist/src/utils/bom.js +165 -0
- package/dist/src/utils/bridge.js +310 -0
- package/dist/src/utils/canvas.js +103 -0
- package/dist/src/utils/chain.js +76 -0
- package/dist/src/utils/color.d.ts +0 -1
- package/dist/src/utils/color.js +312 -0
- package/dist/src/utils/compose.js +22 -0
- package/dist/src/utils/console.js +22 -0
- package/dist/src/utils/debounce.js +18 -0
- package/dist/src/utils/device.d.ts +0 -9
- package/dist/src/utils/device.js +31 -0
- package/dist/src/utils/diff.js +110 -0
- package/dist/src/utils/dom.d.ts +1 -1
- package/dist/src/utils/dom.js +89 -0
- package/dist/src/utils/error.js +11 -0
- package/dist/src/utils/event.d.ts +3 -3
- package/dist/src/utils/event.js +39 -0
- package/dist/src/utils/file.js +14 -0
- package/dist/src/utils/func.js +4 -0
- package/dist/src/utils/i18n/index.js +79 -1
- package/dist/src/utils/idb.js +177 -0
- package/dist/src/utils/img.d.ts +1 -1
- package/dist/src/utils/img.js +68 -0
- package/dist/src/utils/index.d.ts +80 -80
- package/dist/src/utils/index.js +306 -1
- package/dist/src/utils/lang.d.ts +23 -6
- package/dist/src/utils/lang.js +42 -0
- package/dist/src/utils/localePath.js +48 -0
- package/dist/src/utils/memoize.d.ts +1 -7
- package/dist/src/utils/memoize.js +16 -0
- package/dist/src/utils/mimeType.js +841 -0
- package/dist/src/utils/monitor.js +84 -0
- package/dist/src/utils/network.js +117 -0
- package/dist/src/utils/noop.js +5 -0
- package/dist/src/utils/number.js +185 -0
- package/dist/src/utils/obj.d.ts +2 -2
- package/dist/src/utils/obj.js +140 -0
- package/dist/src/utils/paginate.js +93 -0
- package/dist/src/utils/performance.js +26 -0
- package/dist/src/utils/placement.js +37 -0
- package/dist/src/utils/prefetch.js +69 -0
- package/dist/src/utils/queue.js +46 -0
- package/dist/src/utils/report.js +44 -0
- package/dist/src/utils/request.js +35 -0
- package/dist/src/utils/script.d.ts +1 -1
- package/dist/src/utils/script.js +46 -0
- package/dist/src/utils/scroll.js +62 -0
- package/dist/src/utils/secure.js +36 -0
- package/dist/src/utils/segment.js +43 -0
- package/dist/src/utils/signal.d.ts +1 -1
- package/dist/src/utils/signal.js +13 -0
- package/dist/src/utils/speech.js +59 -0
- package/dist/src/utils/storage.js +53 -0
- package/dist/src/utils/str.d.ts +0 -6
- package/dist/src/utils/str.js +395 -0
- package/dist/src/utils/style.js +29 -0
- package/dist/src/utils/subscribe.js +58 -0
- package/dist/src/utils/throttle.js +17 -0
- package/dist/src/utils/time.d.ts +0 -21
- package/dist/src/utils/time.js +97 -0
- package/dist/src/utils/totp/sha/common.d.ts +1 -1
- package/dist/src/utils/totp/sha/common.js +201 -0
- package/dist/src/utils/totp/sha/converters.d.ts +1 -1
- package/dist/src/utils/totp/sha/converters.js +188 -0
- package/dist/src/utils/totp/sha/primitives_32.js +55 -0
- package/dist/src/utils/totp/sha/primitives_64.js +85 -0
- package/dist/src/utils/totp/sha/sha.d.ts +1 -1
- package/dist/src/utils/totp/sha/sha.js +30 -0
- package/dist/src/utils/totp/sha/sha1.d.ts +2 -2
- package/dist/src/utils/totp/sha/sha1.js +51 -0
- package/dist/src/utils/totp/sha/sha256.d.ts +2 -2
- package/dist/src/utils/totp/sha/sha256.js +56 -0
- package/dist/src/utils/totp/sha/sha3.d.ts +3 -3
- package/dist/src/utils/totp/sha/sha3.js +253 -0
- package/dist/src/utils/totp/sha/sha512.d.ts +3 -3
- package/dist/src/utils/totp/sha/sha512.js +177 -0
- package/dist/src/utils/totp/totp.js +49 -0
- package/dist/src/utils/tween.js +59 -0
- package/dist/src/utils/visual/application.d.ts +4 -4
- package/dist/src/utils/visual/application.js +42 -0
- package/dist/src/utils/visual/enums.js +19 -0
- package/dist/src/utils/visual/event/boundary.d.ts +2 -2
- package/dist/src/utils/visual/event/boundary.js +93 -0
- package/dist/src/utils/visual/event/event.d.ts +1 -1
- package/dist/src/utils/visual/event/event.js +34 -0
- package/dist/src/utils/visual/event/index.d.ts +4 -4
- package/dist/src/utils/visual/event/types.d.ts +2 -2
- package/dist/src/utils/visual/event/types.js +23 -0
- package/dist/src/utils/visual/graphics/graphics.d.ts +8 -8
- package/dist/src/utils/visual/graphics/graphics.js +168 -0
- package/dist/src/utils/visual/graphics/graphicsData.d.ts +3 -3
- package/dist/src/utils/visual/graphics/graphicsData.js +12 -0
- package/dist/src/utils/visual/graphics/graphicsGeometry.d.ts +7 -7
- package/dist/src/utils/visual/graphics/graphicsGeometry.js +39 -0
- package/dist/src/utils/visual/graphics/index.d.ts +3 -3
- package/dist/src/utils/visual/index.d.ts +8 -8
- package/dist/src/utils/visual/index.js +20 -1
- package/dist/src/utils/visual/math/bezier.js +15 -0
- package/dist/src/utils/visual/math/enums.js +6 -0
- package/dist/src/utils/visual/math/index.d.ts +4 -4
- package/dist/src/utils/visual/math/matrix.d.ts +1 -1
- package/dist/src/utils/visual/math/matrix.js +59 -0
- package/dist/src/utils/visual/math/transform.d.ts +2 -2
- package/dist/src/utils/visual/math/transform.js +50 -0
- package/dist/src/utils/visual/render/batchRenderer.d.ts +4 -4
- package/dist/src/utils/visual/render/batchRenderer.js +59 -0
- package/dist/src/utils/visual/render/canvasRenderer.d.ts +3 -3
- package/dist/src/utils/visual/render/canvasRenderer.js +17 -0
- package/dist/src/utils/visual/render/filter.d.ts +1 -1
- package/dist/src/utils/visual/render/filter.js +92 -0
- package/dist/src/utils/visual/render/index.d.ts +2 -2
- package/dist/src/utils/visual/render/index.js +20 -0
- package/dist/src/utils/visual/render/render.d.ts +4 -4
- package/dist/src/utils/visual/render/render.js +19 -0
- package/dist/src/utils/visual/render/renderTarget.js +28 -0
- package/dist/src/utils/visual/render/utils/batch/index.d.ts +4 -4
- package/dist/src/utils/visual/render/utils/batch/index.js +88 -0
- package/dist/src/utils/visual/render/utils/earcut.js +328 -0
- package/dist/src/utils/visual/render/utils/float.js +65 -0
- package/dist/src/utils/visual/render/utils/index.js +50 -0
- package/dist/src/utils/visual/render/utils/verticy.d.ts +2 -2
- package/dist/src/utils/visual/render/utils/verticy.js +162 -0
- package/dist/src/utils/visual/render/utils/webgl/initShader.d.ts +1 -1
- package/dist/src/utils/visual/render/utils/webgl/initShader.js +31 -0
- package/dist/src/utils/visual/render/utils/webgl/shaders.js +22 -0
- package/dist/src/utils/visual/render/utils/webgpu/shaders.js +32 -0
- package/dist/src/utils/visual/render/webGPURenderer.d.ts +2 -2
- package/dist/src/utils/visual/render/webGPURenderer.js +185 -0
- package/dist/src/utils/visual/render/webGlRenderer.d.ts +2 -2
- package/dist/src/utils/visual/render/webGlRenderer.js +88 -0
- package/dist/src/utils/visual/shape/circle.d.ts +3 -3
- package/dist/src/utils/visual/shape/circle.js +17 -0
- package/dist/src/utils/visual/shape/ellipse.d.ts +3 -3
- package/dist/src/utils/visual/shape/ellipse.js +18 -0
- package/dist/src/utils/visual/shape/index.d.ts +6 -6
- package/dist/src/utils/visual/shape/polygon.d.ts +3 -3
- package/dist/src/utils/visual/shape/polygon.js +29 -0
- package/dist/src/utils/visual/shape/rectangle.d.ts +3 -3
- package/dist/src/utils/visual/shape/rectangle.js +18 -0
- package/dist/src/utils/visual/shape/roundedRectangle.d.ts +3 -3
- package/dist/src/utils/visual/shape/roundedRectangle.js +32 -0
- package/dist/src/utils/visual/shape/shape.d.ts +2 -2
- package/dist/src/utils/visual/shape/shape.js +5 -0
- package/dist/src/utils/visual/style/fill.js +18 -0
- package/dist/src/utils/visual/style/index.d.ts +2 -2
- package/dist/src/utils/visual/style/line.d.ts +2 -2
- package/dist/src/utils/visual/style/line.js +18 -0
- package/dist/src/utils/visual/types.d.ts +1 -1
- package/dist/src/utils/visual/vertex/container.d.ts +5 -5
- package/dist/src/utils/visual/vertex/container.js +54 -0
- package/dist/src/utils/visual/vertex/point.js +37 -0
- package/dist/src/utils/visual/vertex/vertex.d.ts +7 -7
- package/dist/src/utils/visual/vertex/vertex.js +76 -0
- package/dist/src/utils/worker.js +89 -0
- package/dist/src/utils/zip.js +161 -0
- package/dist/src/vnode/h.d.ts +1 -1
- package/dist/src/vnode/h.js +22 -0
- package/dist/src/vnode/hooks.d.ts +1 -1
- package/dist/src/vnode/htmlDomApi.js +94 -0
- package/dist/src/vnode/index.d.ts +16 -16
- package/dist/src/vnode/index.js +28 -1
- package/dist/src/vnode/init.d.ts +1 -1
- package/dist/src/vnode/init.js +104 -0
- package/dist/src/vnode/is.d.ts +1 -1
- package/dist/src/vnode/is.js +20 -0
- package/dist/src/vnode/modules/attributes.d.ts +1 -1
- package/dist/src/vnode/modules/attributes.js +21 -0
- package/dist/src/vnode/modules/class.d.ts +1 -1
- package/dist/src/vnode/modules/class.js +18 -0
- package/dist/src/vnode/modules/index.js +15 -0
- package/dist/src/vnode/modules/listeners.d.ts +1 -1
- package/dist/src/vnode/modules/listeners.js +36 -0
- package/dist/src/vnode/modules/props.d.ts +1 -1
- package/dist/src/vnode/modules/props.js +17 -0
- package/dist/src/vnode/modules/style.d.ts +1 -1
- package/dist/src/vnode/modules/style.js +52 -0
- package/dist/src/vnode/vnode.d.ts +6 -6
- package/dist/src/vnode/vnode.js +13 -0
- package/dist/third-party/jschardet/LICENSE.txt +504 -0
- package/dist/third-party/jschardet/NOTICE.txt +33 -0
- package/docs/API.md +8 -64
- package/package.json +12 -16
- package/dist/bin/generate-api-docs.d.ts +0 -1
- package/dist/build/build.es.d.ts +0 -2
- package/dist/build/build.umd.d.ts +0 -2
- package/dist/build/build.umd.node.d.ts +0 -2
- package/dist/build/build.umd.utils.d.ts +0 -2
- package/dist/chain-CTywmh_H.js +0 -1
- package/dist/color-BTvZUuf-.js +0 -1
- package/dist/enums-BAgbyGdH.js +0 -1
- package/dist/examples/clone-deep-example.d.ts +0 -1
- package/dist/examples/is-equal-example.d.ts +0 -1
- package/dist/i18n-DW21b_DJ.js +0 -1
- package/dist/plugins/vite-plugins-banner.d.ts +0 -2
- package/dist/rolldown-runtime-I3TIJKkN.js +0 -1
- package/dist/src/node/appendFile.d.ts +0 -7
- package/dist/src/node/body.d.ts +0 -9
- package/dist/src/node/color.d.ts +0 -7
- package/dist/src/node/command.d.ts +0 -8
- package/dist/src/node/ctx2req.d.ts +0 -5
- package/dist/src/node/fileInfo.d.ts +0 -7
- package/dist/src/node/fs.d.ts +0 -7
- package/dist/src/node/get.d.ts +0 -10
- package/dist/src/node/getIPAdress.d.ts +0 -1
- package/dist/src/node/index.d.ts +0 -25
- package/dist/src/node/index.js +0 -1
- package/dist/src/node/isColorSupported.d.ts +0 -2
- package/dist/src/node/paresUrl.d.ts +0 -19
- package/dist/src/node/readDir.d.ts +0 -6
- package/dist/src/node/readFile.d.ts +0 -9
- package/dist/src/node/router.d.ts +0 -42
- package/dist/src/node/send.d.ts +0 -7
- package/dist/src/node/server.d.ts +0 -18
- package/dist/src/node/startTask.d.ts +0 -2
- package/dist/src/node/stream.d.ts +0 -15
- package/dist/src/node/taskEnd.d.ts +0 -2
- package/dist/src/node/traverse.d.ts +0 -17
- package/dist/src/node/watchFile.d.ts +0 -8
- package/dist/src/node/writeFile.d.ts +0 -8
- package/dist/src/node/ws.d.ts +0 -8
- package/dist/src/utils/visual/render/utils/batch/index.test.d.ts +0 -1
- package/dist/src/utils/visual/render/utils/index.test.d.ts +0 -1
- package/dist/test/binary.test.d.ts +0 -1
- package/dist/test/bridge.test.d.ts +0 -1
- package/dist/test/budget.test.d.ts +0 -1
- package/dist/test/canvas.test.d.ts +0 -1
- package/dist/test/clearBr.test.d.ts +0 -1
- package/dist/test/cloneDeep.test.d.ts +0 -1
- package/dist/test/color.test.d.ts +0 -1
- package/dist/test/command.test.d.ts +0 -1
- package/dist/test/conversation.test.d.ts +0 -1
- package/dist/test/diff.test.d.ts +0 -1
- package/dist/test/encodeUrl.test.d.ts +0 -1
- package/dist/test/escapeHtml.test.d.ts +0 -1
- package/dist/test/formatBytes.test.d.ts +0 -1
- package/dist/test/is-equal.test.d.ts +0 -1
- package/dist/test/mimeType.test.d.ts +0 -1
- package/dist/test/package-exports.test.d.ts +0 -1
- package/dist/test/scroll.test.d.ts +0 -1
- package/dist/test/server.test.d.ts +0 -1
- package/dist/test/status.test.d.ts +0 -1
- package/dist/test/stream.test.d.ts +0 -1
- package/dist/test/sw.test.d.ts +0 -1
- package/dist/test/totp.test.d.ts +0 -1
- package/dist/test/tween.test.d.ts +0 -1
- package/dist/test/utils/async.test.d.ts +0 -1
- package/dist/test/utils/autosize.test.d.ts +0 -1
- package/dist/test/utils/color-grade.test.d.ts +0 -1
- package/dist/test/utils/compose.test.d.ts +0 -1
- package/dist/test/utils/event.test.d.ts +0 -1
- package/dist/test/utils/file-read.test.d.ts +0 -1
- package/dist/test/utils/format.test.d.ts +0 -1
- package/dist/test/utils/i18n.test.d.ts +0 -1
- package/dist/test/utils/idb-collection.test.d.ts +0 -1
- package/dist/test/utils/idb.test.d.ts +0 -1
- package/dist/test/utils/instrumentation.test.d.ts +0 -1
- package/dist/test/utils/interp.test.d.ts +0 -1
- package/dist/test/utils/lang.test.d.ts +0 -1
- package/dist/test/utils/locale-path.test.d.ts +0 -1
- package/dist/test/utils/media-query.test.d.ts +0 -1
- package/dist/test/utils/mergeObj.test.d.ts +0 -1
- package/dist/test/utils/number-parse.test.d.ts +0 -1
- package/dist/test/utils/paginate.test.d.ts +0 -1
- package/dist/test/utils/placement.test.d.ts +0 -1
- package/dist/test/utils/prefetch.test.d.ts +0 -1
- package/dist/test/utils/query-storage.test.d.ts +0 -1
- package/dist/test/utils/queue.test.d.ts +0 -1
- package/dist/test/utils/report-config.test.d.ts +0 -1
- package/dist/test/utils/report-image.test.d.ts +0 -1
- package/dist/test/utils/secure.test.d.ts +0 -1
- package/dist/test/utils/segment.test.d.ts +0 -1
- package/dist/test/utils/signal-once.test.d.ts +0 -1
- package/dist/test/utils/single-flight.test.d.ts +0 -1
- package/dist/test/utils/speech.test.d.ts +0 -1
- package/dist/test/utils/text-boundary.test.d.ts +0 -1
- package/dist/test/utils/time.test.d.ts +0 -1
- package/dist/test/utils/timing.test.d.ts +0 -1
- package/dist/test/utils/truncate.test.d.ts +0 -1
- package/dist/test/utils/visual/filter.test.d.ts +0 -1
- package/dist/test/utils/worker-client.test.d.ts +0 -1
- package/dist/test/utils/worker-serve.test.d.ts +0 -1
- package/dist/test/utils/zip.test.d.ts +0 -1
- package/dist/test/visual/math.test.d.ts +0 -1
- package/dist/test/visual-application.test.d.ts +0 -1
- package/dist/test/visual-batch.test.d.ts +0 -1
- package/dist/test/visual-math.test.d.ts +0 -1
- package/dist/test/vnode/index.d.ts +0 -1
- package/dist/test/vnode/server.d.ts +0 -2
- package/dist/test/vnode/vnode.d.ts +0 -1
- package/dist/test/vnode.test.d.ts +0 -1
- package/dist/test/websocket.test.d.ts +0 -1
- package/dist/test/writeFile.test.d.ts +0 -1
- package/dist/umd/index.umd.cjs +0 -1
- package/dist/umd/node/node.umd.cjs +0 -1
- package/dist/umd/utils/utils.umd.cjs +0 -1
- package/dist/utils-B4FnyUzW.js +0 -1
- package/dist/vite.config.d.ts +0 -8
- package/dist/vitest.config.d.ts +0 -2
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
var g = 4e6;
|
|
2
|
+
function L(i) {
|
|
3
|
+
if (i === "") return [];
|
|
4
|
+
const r = i.split(`
|
|
5
|
+
`);
|
|
6
|
+
return r.at(-1) === "" && r.pop(), r;
|
|
7
|
+
}
|
|
8
|
+
function a(i, r) {
|
|
9
|
+
const u = i.length + 1, s = r.length + 1, o = new Uint32Array(u * s);
|
|
10
|
+
for (let h = i.length - 1; h >= 0; h -= 1) for (let t = r.length - 1; t >= 0; t -= 1) o[h * s + t] = i[h] === r[t] ? o[(h + 1) * s + t + 1] + 1 : Math.max(o[(h + 1) * s + t], o[h * s + t + 1]);
|
|
11
|
+
const l = [];
|
|
12
|
+
let e = 0, n = 0;
|
|
13
|
+
for (; e < i.length && n < r.length; ) i[e] === r[n] ? (l.push({
|
|
14
|
+
kind: "context",
|
|
15
|
+
text: i[e],
|
|
16
|
+
oldLine: e + 1,
|
|
17
|
+
newLine: n + 1
|
|
18
|
+
}), e += 1, n += 1) : o[(e + 1) * s + n] >= o[e * s + n + 1] ? (l.push({
|
|
19
|
+
kind: "removed",
|
|
20
|
+
text: i[e],
|
|
21
|
+
oldLine: e + 1,
|
|
22
|
+
newLine: null
|
|
23
|
+
}), e += 1) : (l.push({
|
|
24
|
+
kind: "added",
|
|
25
|
+
text: r[n],
|
|
26
|
+
oldLine: null,
|
|
27
|
+
newLine: n + 1
|
|
28
|
+
}), n += 1);
|
|
29
|
+
for (; e < i.length; e += 1) l.push({
|
|
30
|
+
kind: "removed",
|
|
31
|
+
text: i[e],
|
|
32
|
+
oldLine: e + 1,
|
|
33
|
+
newLine: null
|
|
34
|
+
});
|
|
35
|
+
for (; n < r.length; n += 1) l.push({
|
|
36
|
+
kind: "added",
|
|
37
|
+
text: r[n],
|
|
38
|
+
oldLine: null,
|
|
39
|
+
newLine: n + 1
|
|
40
|
+
});
|
|
41
|
+
return l;
|
|
42
|
+
}
|
|
43
|
+
function p(i, r) {
|
|
44
|
+
return [...i.map((u, s) => ({
|
|
45
|
+
kind: "removed",
|
|
46
|
+
text: u,
|
|
47
|
+
oldLine: s + 1,
|
|
48
|
+
newLine: null
|
|
49
|
+
})), ...r.map((u, s) => ({
|
|
50
|
+
kind: "added",
|
|
51
|
+
text: u,
|
|
52
|
+
oldLine: null,
|
|
53
|
+
newLine: s + 1
|
|
54
|
+
}))];
|
|
55
|
+
}
|
|
56
|
+
function m(i, r) {
|
|
57
|
+
const u = i.map((n) => n.kind !== "context");
|
|
58
|
+
if (!u.includes(!0)) return [];
|
|
59
|
+
const s = Array.from({ length: i.length }, () => !1);
|
|
60
|
+
u.forEach((n, h) => {
|
|
61
|
+
if (n)
|
|
62
|
+
for (let t = Math.max(0, h - r); t <= Math.min(i.length - 1, h + r); t += 1) s[t] = !0;
|
|
63
|
+
});
|
|
64
|
+
const o = [];
|
|
65
|
+
let l = [];
|
|
66
|
+
const e = () => {
|
|
67
|
+
if (l.length === 0) return;
|
|
68
|
+
const n = l.map((t) => t.oldLine).filter((t) => t !== null), h = l.map((t) => t.newLine).filter((t) => t !== null);
|
|
69
|
+
o.push({
|
|
70
|
+
oldStart: n[0] ?? 0,
|
|
71
|
+
oldLines: n.length,
|
|
72
|
+
newStart: h[0] ?? 0,
|
|
73
|
+
newLines: h.length,
|
|
74
|
+
lines: l
|
|
75
|
+
}), l = [];
|
|
76
|
+
};
|
|
77
|
+
return s.forEach((n, h) => {
|
|
78
|
+
n ? l.push(i[h]) : e();
|
|
79
|
+
}), e(), o;
|
|
80
|
+
}
|
|
81
|
+
function w(i, r, u = {}) {
|
|
82
|
+
const s = Math.max(0, u.context ?? 3), o = L(i), l = L(r);
|
|
83
|
+
let e = 0;
|
|
84
|
+
for (; e < o.length && e < l.length && o[e] === l[e]; ) e += 1;
|
|
85
|
+
let n = 0;
|
|
86
|
+
for (; n < o.length - e && n < l.length - e && o[o.length - 1 - n] === l[l.length - 1 - n]; ) n += 1;
|
|
87
|
+
const h = o.slice(e, o.length - n), t = l.slice(e, l.length - n), f = (h.length + 1) * (t.length + 1) > g ? p(h, t) : a(h, t);
|
|
88
|
+
return m([
|
|
89
|
+
...o.slice(0, e).map((d, c) => ({
|
|
90
|
+
kind: "context",
|
|
91
|
+
text: d,
|
|
92
|
+
oldLine: c + 1,
|
|
93
|
+
newLine: c + 1
|
|
94
|
+
})),
|
|
95
|
+
...f.map((d) => ({
|
|
96
|
+
...d,
|
|
97
|
+
oldLine: d.oldLine === null ? null : d.oldLine + e,
|
|
98
|
+
newLine: d.newLine === null ? null : d.newLine + e
|
|
99
|
+
})),
|
|
100
|
+
...o.slice(o.length - n).map((d, c) => ({
|
|
101
|
+
kind: "context",
|
|
102
|
+
text: d,
|
|
103
|
+
oldLine: o.length - n + c + 1,
|
|
104
|
+
newLine: l.length - n + c + 1
|
|
105
|
+
}))
|
|
106
|
+
], s);
|
|
107
|
+
}
|
|
108
|
+
export {
|
|
109
|
+
w as diffLines
|
|
110
|
+
};
|
package/dist/src/utils/dom.d.ts
CHANGED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { DEVICE as f, currentDevice as p } from "./device.js";
|
|
2
|
+
import { Chain as b, create as x } from "./chain.js";
|
|
3
|
+
var L = (n, e) => {
|
|
4
|
+
if (typeof document > "u") return;
|
|
5
|
+
const t = n.classList;
|
|
6
|
+
t.contains(e) || t.add(e);
|
|
7
|
+
}, y = (n, e) => {
|
|
8
|
+
if (typeof document > "u") return;
|
|
9
|
+
const t = n.classList;
|
|
10
|
+
t.contains(e) && t.remove(e);
|
|
11
|
+
}, E = (n) => {
|
|
12
|
+
if (typeof document > "u") return;
|
|
13
|
+
const e = document.createDocumentFragment();
|
|
14
|
+
return n.forEach((t) => e.appendChild(t)), e;
|
|
15
|
+
}, g = /["'&<>]/;
|
|
16
|
+
function z(n) {
|
|
17
|
+
const e = "" + n, t = g.exec(e);
|
|
18
|
+
if (!t) return e;
|
|
19
|
+
let o, s = "", i = 0, r = 0;
|
|
20
|
+
for (i = t.index; i < e.length; i++) {
|
|
21
|
+
switch (e.charCodeAt(i)) {
|
|
22
|
+
case 34:
|
|
23
|
+
o = """;
|
|
24
|
+
break;
|
|
25
|
+
case 38:
|
|
26
|
+
o = "&";
|
|
27
|
+
break;
|
|
28
|
+
case 39:
|
|
29
|
+
o = "'";
|
|
30
|
+
break;
|
|
31
|
+
case 60:
|
|
32
|
+
o = "<";
|
|
33
|
+
break;
|
|
34
|
+
case 62:
|
|
35
|
+
o = ">";
|
|
36
|
+
break;
|
|
37
|
+
default:
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
r !== i && (s += e.substring(r, i)), r = i + 1, s += o;
|
|
41
|
+
}
|
|
42
|
+
return r !== i ? s + e.substring(r, i) : s;
|
|
43
|
+
}
|
|
44
|
+
var S = (n = 375) => {
|
|
45
|
+
let e = n;
|
|
46
|
+
const { documentElement: t } = document, o = window.matchMedia("(orientation: portrait)");
|
|
47
|
+
let s, i = 667 / 375;
|
|
48
|
+
p() === f.IPAD && (i = 1024 / 768, e = 768);
|
|
49
|
+
function r() {
|
|
50
|
+
const u = !o.matches;
|
|
51
|
+
let l = window.screen.width, c = window.screen.height;
|
|
52
|
+
l < c && ([l, c] = [c, l]);
|
|
53
|
+
let d = t.clientWidth, h = c;
|
|
54
|
+
d / h >= i ? (d = h * i, t.classList.remove("adjustHeight"), t.classList.add("adjustWidth")) : (h = d / i, t.classList.remove("adjustWidth"), t.classList.add("adjustHeight"));
|
|
55
|
+
let a = d / e * 16;
|
|
56
|
+
u && (a /= i), t.style.fontSize = `${a}px`;
|
|
57
|
+
const m = window.getComputedStyle(t).fontSize.replace("px", "") || 0;
|
|
58
|
+
a !== m && (t.style.fontSize = `${a / Number(m) * a}px`);
|
|
59
|
+
}
|
|
60
|
+
window.addEventListener("resize", function() {
|
|
61
|
+
clearTimeout(s), s = setTimeout(r, 300);
|
|
62
|
+
}, !1), window.addEventListener("pageshow", function(u) {
|
|
63
|
+
u.persisted && (clearTimeout(s), s = setTimeout(r, 300));
|
|
64
|
+
}, !1), window.addEventListener("orientationchange", function() {
|
|
65
|
+
r();
|
|
66
|
+
}, !1), r();
|
|
67
|
+
}, T = (n) => {
|
|
68
|
+
const e = n.style.height, t = (s) => {
|
|
69
|
+
const i = parseFloat(s);
|
|
70
|
+
return Number.isFinite(i) ? i : 0;
|
|
71
|
+
}, o = () => {
|
|
72
|
+
n.style.height = "auto";
|
|
73
|
+
const s = getComputedStyle(n), i = s.boxSizing === "border-box" ? t(s.borderTopWidth) + t(s.borderBottomWidth) : -(t(s.paddingTop) + t(s.paddingBottom));
|
|
74
|
+
n.style.height = `${n.scrollHeight + i}px`;
|
|
75
|
+
};
|
|
76
|
+
return n.addEventListener("input", o), o(), () => {
|
|
77
|
+
n.removeEventListener("input", o), n.style.height = e;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
export {
|
|
81
|
+
b as Chain,
|
|
82
|
+
L as addClassToElement,
|
|
83
|
+
T as autosizeTextarea,
|
|
84
|
+
x as create,
|
|
85
|
+
E as createDocumentFragment,
|
|
86
|
+
z as escapeHtml,
|
|
87
|
+
y as removeClassToElement,
|
|
88
|
+
S as setFontSize2html
|
|
89
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { noop as t } from "./noop.js";
|
|
2
|
+
var i = (r = t) => {
|
|
3
|
+
if (typeof window > "u") return t;
|
|
4
|
+
const n = (e) => r(e), o = (e) => r(e);
|
|
5
|
+
return window.addEventListener("unhandledrejection", n, !0), window.addEventListener("error", o, !0), () => {
|
|
6
|
+
window.removeEventListener("unhandledrejection", n, !0), window.removeEventListener("error", o, !0);
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
i as handleError
|
|
11
|
+
};
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
* }
|
|
37
37
|
*/
|
|
38
38
|
export declare class EventManager {
|
|
39
|
+
/** Unused scopes and repeated cleanup never allocate a controller. */
|
|
39
40
|
private ac;
|
|
40
|
-
constructor();
|
|
41
41
|
/** The underlying AbortSignal — pass it straight to addEventListener's options when needed. */
|
|
42
42
|
get signal(): AbortSignal;
|
|
43
43
|
on<K extends keyof HTMLElementEventMap>(target: HTMLElement, type: K, handler: (this: HTMLElement, ev: HTMLElementEventMap[K]) => unknown, options?: Omit<AddEventListenerOptions, 'signal'>): this;
|
|
@@ -54,8 +54,8 @@ export declare class EventManager {
|
|
|
54
54
|
*/
|
|
55
55
|
delegate<K extends keyof HTMLElementEventMap>(parent: HTMLElement, selector: string, type: K, handler: (ev: HTMLElementEventMap[K], target: Element) => void, options?: Omit<AddEventListenerOptions, 'signal'>): this;
|
|
56
56
|
/**
|
|
57
|
-
* @description: Remove every registered listener and
|
|
58
|
-
* Safe to call repeatedly;
|
|
57
|
+
* @description: Remove every registered listener and release the internal AbortController.
|
|
58
|
+
* Safe to call repeatedly; the next signal read or listener starts a clean scope.
|
|
59
59
|
*/
|
|
60
60
|
abort(): void;
|
|
61
61
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
var g = class {
|
|
2
|
+
ac = null;
|
|
3
|
+
get signal() {
|
|
4
|
+
return this.ac ??= new AbortController(), this.ac.signal;
|
|
5
|
+
}
|
|
6
|
+
on(e, s, r, t) {
|
|
7
|
+
return e.addEventListener(s, r, {
|
|
8
|
+
...t,
|
|
9
|
+
signal: this.signal
|
|
10
|
+
}), this;
|
|
11
|
+
}
|
|
12
|
+
delegate(e, s, r, t, i) {
|
|
13
|
+
return e.addEventListener(r, (n) => {
|
|
14
|
+
const a = n.target?.closest(s);
|
|
15
|
+
a && e.contains(a) && t(n, a);
|
|
16
|
+
}, {
|
|
17
|
+
...i,
|
|
18
|
+
signal: this.signal
|
|
19
|
+
}), this;
|
|
20
|
+
}
|
|
21
|
+
abort() {
|
|
22
|
+
this.ac?.abort(), this.ac = null;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
function u(e = {}) {
|
|
26
|
+
const { windowMs: s = 300, maxDistancePx: r = 60 } = e;
|
|
27
|
+
let t = -1 / 0, i = 0, n = 0;
|
|
28
|
+
const a = () => {
|
|
29
|
+
t = -1 / 0, i = 0, n = 0;
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
check: (l, c, o = Date.now()) => o - t < s && Math.hypot(l - i, c - n) < r ? (a(), !0) : (t = o, i = l, n = c, !1),
|
|
33
|
+
reset: a
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
g as EventManager,
|
|
38
|
+
u as createDoubleTapDetector
|
|
39
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var d = (r, a, t) => new Promise((n, i) => {
|
|
2
|
+
if (typeof FileReader > "u") {
|
|
3
|
+
i(/* @__PURE__ */ new Error("FileReader is not available"));
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
const e = new FileReader();
|
|
7
|
+
e.onload = () => n(e.result), e.onerror = () => i(e.error ?? /* @__PURE__ */ new Error("read file error")), e.onabort = () => i(/* @__PURE__ */ new Error("read file aborted")), a === "arrayBuffer" ? e.readAsArrayBuffer(r) : a === "text" ? e.readAsText(r, t) : a === "dataURL" ? e.readAsDataURL(r) : e.readAsBinaryString(r);
|
|
8
|
+
}), f = (r) => d(r, "arrayBuffer"), o = async (r) => new Uint8Array(await f(r)), s = (r, a) => d(r, "text", a), l = (r) => d(r, "dataURL");
|
|
9
|
+
export {
|
|
10
|
+
f as readFileAsArrayBuffer,
|
|
11
|
+
l as readFileAsDataURL,
|
|
12
|
+
s as readFileAsText,
|
|
13
|
+
o as readFileAsUint8Array
|
|
14
|
+
};
|
|
@@ -1 +1,79 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import { localStorageGetItem as i, localStorageSetItem as o } from "../storage.js";
|
|
2
|
+
import { resolveLocale as n } from "../lang.js";
|
|
3
|
+
var _ = "ran-locale", c = Object.freeze({}), h = class {
|
|
4
|
+
_locale;
|
|
5
|
+
_fallback;
|
|
6
|
+
_messages;
|
|
7
|
+
_persist;
|
|
8
|
+
_storageKey;
|
|
9
|
+
_handlers = /* @__PURE__ */ new Set();
|
|
10
|
+
constructor(e = {}) {
|
|
11
|
+
this._messages = { ...e.messages }, this._fallback = e.fallbackLocale ?? "en", this._persist = e.persist ?? !1, this._storageKey = e.storageKey ?? _, this._locale = this._resolveInitialLocale(e);
|
|
12
|
+
}
|
|
13
|
+
_resolveInitialLocale(e) {
|
|
14
|
+
const s = Object.keys(this._messages), t = this._persist && i(this._storageKey) || null;
|
|
15
|
+
if (t && (this._messages[t] || s.length === 0)) return t;
|
|
16
|
+
if (e.locale) return e.locale;
|
|
17
|
+
if (e.detectNavigator) {
|
|
18
|
+
const a = n({
|
|
19
|
+
supported: s,
|
|
20
|
+
useNavigator: !0,
|
|
21
|
+
fallback: ""
|
|
22
|
+
});
|
|
23
|
+
if (a) return a;
|
|
24
|
+
}
|
|
25
|
+
return this._fallback;
|
|
26
|
+
}
|
|
27
|
+
get locale() {
|
|
28
|
+
return this._locale;
|
|
29
|
+
}
|
|
30
|
+
getLocale() {
|
|
31
|
+
return this._locale;
|
|
32
|
+
}
|
|
33
|
+
setLocale(e) {
|
|
34
|
+
e !== this._locale && (this._locale = e, this._persist && o(this._storageKey, e), this._notify());
|
|
35
|
+
}
|
|
36
|
+
addMessages(e, s) {
|
|
37
|
+
this._messages[e] = {
|
|
38
|
+
...this._messages[e],
|
|
39
|
+
...s
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
getMessages(e = this._locale) {
|
|
43
|
+
return this._messages[e] ?? {};
|
|
44
|
+
}
|
|
45
|
+
get availableLocales() {
|
|
46
|
+
return Object.keys(this._messages);
|
|
47
|
+
}
|
|
48
|
+
t(e, s) {
|
|
49
|
+
const t = this._messages[this._locale]?.[e] ?? this._messages[this._fallback]?.[e] ?? e;
|
|
50
|
+
return this._interpolate(t, s);
|
|
51
|
+
}
|
|
52
|
+
_interpolate(e, s) {
|
|
53
|
+
const t = s ?? c;
|
|
54
|
+
return e.replace(/\{\{|\}\}|\{(\w+)\}/g, (a, r) => a === "{{" ? "{" : a === "}}" ? "}" : t[r] != null ? String(t[r]) : a);
|
|
55
|
+
}
|
|
56
|
+
onChange(e) {
|
|
57
|
+
return this._handlers.add(e), () => {
|
|
58
|
+
this._handlers.delete(e);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
_notify() {
|
|
62
|
+
for (const e of this._handlers) e(this._locale);
|
|
63
|
+
}
|
|
64
|
+
destroy() {
|
|
65
|
+
this._handlers.clear();
|
|
66
|
+
}
|
|
67
|
+
}, l = null;
|
|
68
|
+
function f(e = {}) {
|
|
69
|
+
const s = new h(e);
|
|
70
|
+
return l = s, s;
|
|
71
|
+
}
|
|
72
|
+
function d() {
|
|
73
|
+
return l;
|
|
74
|
+
}
|
|
75
|
+
export {
|
|
76
|
+
h as I18nCore,
|
|
77
|
+
f as createI18n,
|
|
78
|
+
d as useI18n
|
|
79
|
+
};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
var l = (e) => ({
|
|
2
|
+
status: "success",
|
|
3
|
+
code: 0,
|
|
4
|
+
data: e,
|
|
5
|
+
error: !1
|
|
6
|
+
}), d = (e, r = null) => ({
|
|
7
|
+
status: "error",
|
|
8
|
+
code: 1,
|
|
9
|
+
data: r,
|
|
10
|
+
error: !0,
|
|
11
|
+
message: e
|
|
12
|
+
}), h = class {
|
|
13
|
+
database;
|
|
14
|
+
version;
|
|
15
|
+
dbName;
|
|
16
|
+
stores;
|
|
17
|
+
upgrade;
|
|
18
|
+
constructor({ dbName: e, version: r, stores: t, upgrade: s }) {
|
|
19
|
+
this.dbName = e, this.version = r || 1, this.stores = t || [], this.upgrade = s;
|
|
20
|
+
}
|
|
21
|
+
openDataBase = () => new Promise((e, r) => {
|
|
22
|
+
if (typeof indexedDB > "u") {
|
|
23
|
+
r(d("indexedDB is not available"));
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const t = indexedDB.open(this.dbName, this.version);
|
|
27
|
+
t.onsuccess = () => {
|
|
28
|
+
this.database = t.result, this.version = this.database.version, this.database.onversionchange = () => {
|
|
29
|
+
this.database?.close(), this.database = void 0;
|
|
30
|
+
}, e(l({ db: this.database }));
|
|
31
|
+
}, t.onerror = () => {
|
|
32
|
+
if (t.error && t.error.name === "VersionError") {
|
|
33
|
+
const [, s] = (t.error.message || "").match(/\d+/g) || [];
|
|
34
|
+
if (Number(s) > this.version) {
|
|
35
|
+
this.version = Number(s), this.refreshDatabase().then(e, r);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
r(d("open database error", t.error));
|
|
40
|
+
}, t.onupgradeneeded = (s) => {
|
|
41
|
+
const o = t.result;
|
|
42
|
+
this.database = o, this.version = o.version;
|
|
43
|
+
for (const a of this.stores) {
|
|
44
|
+
const i = o.objectStoreNames.contains(a.name) ? t.transaction?.objectStore(a.name) : o.createObjectStore(a.name, a.options);
|
|
45
|
+
for (const n of a.indexes || []) i && !i.indexNames.contains(n.name) && i.createIndex(n.name, n.keyPath, n.options);
|
|
46
|
+
}
|
|
47
|
+
this.upgrade?.(o, s, t.transaction);
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
closeDataBase = () => {
|
|
51
|
+
this.database?.close(), this.database = void 0;
|
|
52
|
+
};
|
|
53
|
+
refreshDatabase = () => (this.closeDataBase(), this.openDataBase());
|
|
54
|
+
deleteDatabase = ({ dbName: e } = {}) => new Promise((r, t) => {
|
|
55
|
+
const s = indexedDB.deleteDatabase(e ?? this.dbName);
|
|
56
|
+
s.onsuccess = () => r(l(null)), s.onerror = () => t(d("delete database error", s.error));
|
|
57
|
+
});
|
|
58
|
+
getObjectStore = (e, r = "readonly") => {
|
|
59
|
+
if (this.database)
|
|
60
|
+
return this.database.transaction([e], r).objectStore(e);
|
|
61
|
+
};
|
|
62
|
+
run = (e, r, t, s, o) => new Promise((a, i) => {
|
|
63
|
+
let n;
|
|
64
|
+
try {
|
|
65
|
+
const c = this.database?.transaction(e, r).objectStore(e);
|
|
66
|
+
n = c && t(c);
|
|
67
|
+
} catch (c) {
|
|
68
|
+
i(d(`${s} error`, c));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (!n) {
|
|
72
|
+
i(d(`${s} error`));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const u = n;
|
|
76
|
+
u.onsuccess = () => a(l(o(u))), u.onerror = () => i(d(`${s} error`, u.error));
|
|
77
|
+
});
|
|
78
|
+
add = ({ storeName: e, data: r }) => this.run(e, "readwrite", (t) => t.add(r), "add", () => r);
|
|
79
|
+
update = ({ storeName: e, data: r }) => this.run(e, "readwrite", (t) => t.put(r), "update", () => null);
|
|
80
|
+
readByKey = ({ storeName: e, key: r }) => this.run(e, "readonly", (t) => t.get(r), "read", (t) => t.result);
|
|
81
|
+
readAll = ({ storeName: e, query: r, count: t }) => this.run(e, "readonly", (s) => s.getAll(r, t), "read all", (s) => s.result);
|
|
82
|
+
count = ({ storeName: e, query: r }) => this.run(e, "readonly", (t) => t.count(r), "count", (t) => t.result);
|
|
83
|
+
readByCursor = ({ storeName: e, keyRange: r, direction: t }) => new Promise((s, o) => {
|
|
84
|
+
const a = this.database?.transaction(e, "readonly").objectStore(e)?.openCursor(r, t), i = [];
|
|
85
|
+
if (!a) {
|
|
86
|
+
o(d("read cursor error"));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
a.onsuccess = () => {
|
|
90
|
+
const n = a.result;
|
|
91
|
+
n ? (i.push(n.value), n.continue()) : s(l(i));
|
|
92
|
+
}, a.onerror = () => o(d("read cursor error", a.error));
|
|
93
|
+
});
|
|
94
|
+
delete = ({ storeName: e, key: r }) => this.run(e, "readwrite", (t) => t.delete(r), "delete", () => null);
|
|
95
|
+
clear = ({ storeName: e }) => this.run(e, "readwrite", (r) => r.clear(), "clear", () => null);
|
|
96
|
+
collection = (e) => {
|
|
97
|
+
const r = (s, o) => s.then((a) => a.data ?? o).catch(() => o), t = (s) => s.then(() => !0).catch(() => !1);
|
|
98
|
+
return {
|
|
99
|
+
name: e,
|
|
100
|
+
get: (s) => this.readByKey({
|
|
101
|
+
storeName: e,
|
|
102
|
+
key: s
|
|
103
|
+
}).then((o) => o.data ?? null).catch(() => null),
|
|
104
|
+
all: () => r(this.readByCursor({ storeName: e }), []),
|
|
105
|
+
count: () => r(this.count({ storeName: e }), 0),
|
|
106
|
+
add: (s) => t(this.add({
|
|
107
|
+
storeName: e,
|
|
108
|
+
data: s
|
|
109
|
+
})),
|
|
110
|
+
put: (s) => t(this.update({
|
|
111
|
+
storeName: e,
|
|
112
|
+
data: s
|
|
113
|
+
})),
|
|
114
|
+
remove: (s) => t(this.delete({
|
|
115
|
+
storeName: e,
|
|
116
|
+
key: s
|
|
117
|
+
})),
|
|
118
|
+
clear: () => t(this.clear({ storeName: e }))
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
}, b = ({ dbName: e, storeName: r = "files", key: t = "pending" }) => {
|
|
122
|
+
const s = () => new Promise((o) => {
|
|
123
|
+
if (typeof indexedDB > "u") {
|
|
124
|
+
o(null);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
let a;
|
|
128
|
+
try {
|
|
129
|
+
a = indexedDB.open(e, 1);
|
|
130
|
+
} catch {
|
|
131
|
+
o(null);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
a.onupgradeneeded = () => {
|
|
135
|
+
a.result.objectStoreNames.contains(r) || a.result.createObjectStore(r);
|
|
136
|
+
}, a.onerror = () => o(null), a.onblocked = () => o(null), a.onsuccess = () => o(a.result);
|
|
137
|
+
});
|
|
138
|
+
return {
|
|
139
|
+
put: async (o) => {
|
|
140
|
+
const a = await s();
|
|
141
|
+
return a ? new Promise((i) => {
|
|
142
|
+
try {
|
|
143
|
+
const n = a.transaction(r, "readwrite");
|
|
144
|
+
n.objectStore(r).put(o, t), n.oncomplete = () => {
|
|
145
|
+
a.close(), i(!0);
|
|
146
|
+
}, n.onerror = n.onabort = () => {
|
|
147
|
+
a.close(), i(!1);
|
|
148
|
+
};
|
|
149
|
+
} catch {
|
|
150
|
+
a.close(), i(!1);
|
|
151
|
+
}
|
|
152
|
+
}) : !1;
|
|
153
|
+
},
|
|
154
|
+
take: async () => {
|
|
155
|
+
const o = await s();
|
|
156
|
+
return o ? new Promise((a) => {
|
|
157
|
+
try {
|
|
158
|
+
const i = o.transaction(r, "readwrite"), n = i.objectStore(r), u = n.get(t);
|
|
159
|
+
let c = null;
|
|
160
|
+
u.onsuccess = () => {
|
|
161
|
+
c = u.result ?? null, c !== null && n.delete(t);
|
|
162
|
+
}, i.oncomplete = () => {
|
|
163
|
+
o.close(), a(c);
|
|
164
|
+
}, i.onerror = i.onabort = () => {
|
|
165
|
+
o.close(), a(null);
|
|
166
|
+
};
|
|
167
|
+
} catch {
|
|
168
|
+
o.close(), a(null);
|
|
169
|
+
}
|
|
170
|
+
}) : null;
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
export {
|
|
175
|
+
h as WebDB,
|
|
176
|
+
b as createHandoff
|
|
177
|
+
};
|
package/dist/src/utils/img.d.ts
CHANGED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { roundRectByArc as g } from "./canvas.js";
|
|
2
|
+
var w = (r) => new Promise((o, t) => {
|
|
3
|
+
const e = new Image();
|
|
4
|
+
e.onload = () => o(e), e.onerror = (n) => t(n), e.src = r;
|
|
5
|
+
}), h = (r, o) => {
|
|
6
|
+
const t = document.createElement("canvas"), e = t.getContext("2d"), { width: n, height: a } = r;
|
|
7
|
+
return t.width = n, t.height = a, g(e, 0, 0, n, a, o), e.clip(), e.drawImage(r, 0, 0, n, a), t;
|
|
8
|
+
}, u = (r, o) => {
|
|
9
|
+
const t = document.createElement("canvas"), e = t.getContext("2d"), { width: n, height: a } = r;
|
|
10
|
+
if (t.width = n, t.height = a, typeof e.filter == "string")
|
|
11
|
+
e.filter = `opacity(${o * 100}%)`, e.drawImage(r, 0, 0, n, a);
|
|
12
|
+
else {
|
|
13
|
+
e.drawImage(r, 0, 0, n, a);
|
|
14
|
+
const s = e.getImageData(0, 0, n, a), { data: d } = s, c = d.length;
|
|
15
|
+
for (let i = 0; i < c; i += 4) {
|
|
16
|
+
const l = d[i + 3];
|
|
17
|
+
l !== 0 && (d[i + 3] = l * o);
|
|
18
|
+
}
|
|
19
|
+
e.putImageData(s, 0, 0);
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
}, f = (r, o) => {
|
|
23
|
+
o = o || r / 3;
|
|
24
|
+
const t = Math.ceil(r), e = o * o, n = 2 * e, a = 1 / (2 * Math.PI * e), s = [];
|
|
25
|
+
let d = 0;
|
|
26
|
+
for (let c = -t; c <= t; c++) for (let i = -t; i <= t; i++) {
|
|
27
|
+
const l = a * Math.exp(-(c * c + i * i) / n);
|
|
28
|
+
s.push(l), d += l;
|
|
29
|
+
}
|
|
30
|
+
for (let c = 0; c < s.length; c++) s[c] /= d;
|
|
31
|
+
return s;
|
|
32
|
+
}, v = (r, o, t) => new Promise((e, n) => {
|
|
33
|
+
if (typeof window > "u") {
|
|
34
|
+
n(/* @__PURE__ */ new Error("isImageSize is browser-only: window is undefined"));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const a = window.URL || window.webkitURL, s = new Image(), d = a.createObjectURL(r), c = () => a.revokeObjectURL(d);
|
|
38
|
+
s.onload = () => {
|
|
39
|
+
c();
|
|
40
|
+
const i = o === void 0 || s.width === o, l = t === void 0 || s.height === t;
|
|
41
|
+
e(i && l);
|
|
42
|
+
}, s.onerror = () => {
|
|
43
|
+
c(), n(/* @__PURE__ */ new Error("failed to decode image"));
|
|
44
|
+
}, s.src = d;
|
|
45
|
+
}), I = (r) => new Promise((o, t) => {
|
|
46
|
+
const e = new FileReader();
|
|
47
|
+
e.onload = function() {
|
|
48
|
+
o({
|
|
49
|
+
success: !0,
|
|
50
|
+
data: e.result,
|
|
51
|
+
message: ""
|
|
52
|
+
});
|
|
53
|
+
}, e.onerror = (n) => {
|
|
54
|
+
t({
|
|
55
|
+
success: !1,
|
|
56
|
+
data: n,
|
|
57
|
+
message: ""
|
|
58
|
+
});
|
|
59
|
+
}, e.readAsDataURL(r);
|
|
60
|
+
});
|
|
61
|
+
export {
|
|
62
|
+
I as convertImageToBase64,
|
|
63
|
+
h as cutRound,
|
|
64
|
+
w as getImage,
|
|
65
|
+
f as getMatrix,
|
|
66
|
+
v as isImageSize,
|
|
67
|
+
u as opacity
|
|
68
|
+
};
|