@openlist-frontend/openlist-frontend 4.0.0-rc.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 +35 -0
- package/dist/VERSION +1 -0
- package/dist/assets/2fa-5bdf0110.js +1 -0
- package/dist/assets/2fa-legacy-0c55633e.js +1 -0
- package/dist/assets/About-daba5276.js +1 -0
- package/dist/assets/About-legacy-9ff9dba7.js +1 -0
- package/dist/assets/AddOrEdit-183fec42.js +1 -0
- package/dist/assets/AddOrEdit-3b829ac7.js +1 -0
- package/dist/assets/AddOrEdit-4fd0b862.js +1 -0
- package/dist/assets/AddOrEdit-legacy-573b0c54.js +1 -0
- package/dist/assets/AddOrEdit-legacy-d1ee72b5.js +1 -0
- package/dist/assets/AddOrEdit-legacy-ec8fe9cb.js +1 -0
- package/dist/assets/Common-ce07cb56.js +1 -0
- package/dist/assets/Common-legacy-bd61ee62.js +1 -0
- package/dist/assets/Copy-0dde9202.js +1 -0
- package/dist/assets/Copy-legacy-97a5757e.js +1 -0
- package/dist/assets/Decompress-46c8605d.js +1 -0
- package/dist/assets/Decompress-legacy-caf8f948.js +1 -0
- package/dist/assets/DeletePopover-71e3a164.js +1 -0
- package/dist/assets/DeletePopover-legacy-21b9ab49.js +1 -0
- package/dist/assets/File-45a9403e.js +1 -0
- package/dist/assets/File-legacy-46eaff03.js +1 -0
- package/dist/assets/Folder-4b4cbf82.js +114 -0
- package/dist/assets/Folder-6651c4e8.css +1 -0
- package/dist/assets/Folder-legacy-31c4976b.js +49 -0
- package/dist/assets/FolderTree-2e9d5bd7.js +1 -0
- package/dist/assets/FolderTree-legacy-5d22cfeb.js +1 -0
- package/dist/assets/Grid-234a02fe.js +1 -0
- package/dist/assets/Grid-legacy-495d4986.js +1 -0
- package/dist/assets/GridItem-16e70035.js +1 -0
- package/dist/assets/GridItem-legacy-be81be17.js +1 -0
- package/dist/assets/ImageWithError-021dba09.js +1 -0
- package/dist/assets/ImageWithError-legacy-18c02107.js +1 -0
- package/dist/assets/Images-34d8f7f6.js +1 -0
- package/dist/assets/Images-legacy-38fd271a.js +1 -0
- package/dist/assets/Layout-b9429b34.js +5 -0
- package/dist/assets/Layout-legacy-3ee006d4.js +6 -0
- package/dist/assets/List-7e506ba3.js +1 -0
- package/dist/assets/List-legacy-c5c98f42.js +1 -0
- package/dist/assets/Messenger-96b59f61.js +1 -0
- package/dist/assets/Messenger-legacy-f3295638.js +1 -0
- package/dist/assets/Metas-c26c167c.js +1 -0
- package/dist/assets/Metas-legacy-7f8d02fa.js +1 -0
- package/dist/assets/Other-1d9c6d82.js +1 -0
- package/dist/assets/Other-legacy-8b7794e9.js +1 -0
- package/dist/assets/PackageDownload-8640957f.js +1 -0
- package/dist/assets/PackageDownload-legacy-de7a5bb7.js +1 -0
- package/dist/assets/Paginator-5f358313.js +1 -0
- package/dist/assets/Paginator-legacy-92532ae7.js +1 -0
- package/dist/assets/Password-59d3df3b.js +1 -0
- package/dist/assets/Password-legacy-5ea54977.js +1 -0
- package/dist/assets/Profile-c724b1ec.js +1 -0
- package/dist/assets/Profile-legacy-243a8814.js +1 -0
- package/dist/assets/PublicKeys-8c0d13eb.js +1 -0
- package/dist/assets/PublicKeys-legacy-bc214c77.js +1 -0
- package/dist/assets/ResponsiveGrid-68858d59.js +1 -0
- package/dist/assets/ResponsiveGrid-legacy-87350386.js +1 -0
- package/dist/assets/S3-f73ff557.js +1 -0
- package/dist/assets/S3-legacy-e0622f9f.js +1 -0
- package/dist/assets/SettingItem-fc04014d.js +1 -0
- package/dist/assets/SettingItem-legacy-ba401f77.js +1 -0
- package/dist/assets/SourceHanSansCN-Bold-b5627435.woff2 +0 -0
- package/dist/assets/Storages-3ea6d5fc.js +1 -0
- package/dist/assets/Storages-legacy-826c99da.js +1 -0
- package/dist/assets/TimesNewRoman-d9fb32eb.ttf +0 -0
- package/dist/assets/Upload-ab40bb1f.js +5 -0
- package/dist/assets/Upload-f2d26146.js +1 -0
- package/dist/assets/Upload-legacy-4e741898.js +6 -0
- package/dist/assets/Upload-legacy-6063e4f4.js +1 -0
- package/dist/assets/Users-798157f0.js +1 -0
- package/dist/assets/Users-legacy-f7b026c1.js +1 -0
- package/dist/assets/Wether-7fbfa955.js +1 -0
- package/dist/assets/Wether-legacy-aee6f6ea.js +1 -0
- package/dist/assets/aliyun_office-f050b710.js +1 -0
- package/dist/assets/aliyun_office-legacy-9a085ee0.js +1 -0
- package/dist/assets/aliyun_video-7b2f47a3.js +1 -0
- package/dist/assets/aliyun_video-legacy-62e99fee.js +1 -0
- package/dist/assets/archive-1f761af1.js +1 -0
- package/dist/assets/archive-legacy-49978108.js +1 -0
- package/dist/assets/asciinema-2c1b3849.js +1 -0
- package/dist/assets/asciinema-9107553b.css +1 -0
- package/dist/assets/asciinema-legacy-1ea98084.js +1 -0
- package/dist/assets/audio-43f4c02b.css +1 -0
- package/dist/assets/audio-e2e285d5.js +1 -0
- package/dist/assets/audio-legacy-059723ab.js +1 -0
- package/dist/assets/backup-restore-5529cead.js +1 -0
- package/dist/assets/backup-restore-legacy-17580db7.js +1 -0
- package/dist/assets/entry-15091525.js +1 -0
- package/dist/assets/entry-600f3f22.js +1 -0
- package/dist/assets/entry-legacy-1facdda0.js +1 -0
- package/dist/assets/entry-legacy-c4a87582.js +1 -0
- package/dist/assets/helper-00c542cf.js +1 -0
- package/dist/assets/helper-8f322b0c.js +1 -0
- package/dist/assets/helper-legacy-0d5506d5.js +1 -0
- package/dist/assets/helper-legacy-f3262afc.js +1 -0
- package/dist/assets/hls-7abaec7b.js +6 -0
- package/dist/assets/hls-legacy-59f1f515.js +8 -0
- package/dist/assets/html-812d7456.js +1 -0
- package/dist/assets/html-legacy-2960fa24.js +1 -0
- package/dist/assets/icon-a469f817.js +1 -0
- package/dist/assets/icon-legacy-9bb296c6.js +1 -0
- package/dist/assets/image-2891f060.js +1 -0
- package/dist/assets/image-legacy-76b4b8b1.js +1 -0
- package/dist/assets/index-03840810.js +1 -0
- package/dist/assets/index-0a6b4993.js +1 -0
- package/dist/assets/index-17ae6dfd.js +1 -0
- package/dist/assets/index-2cbc0cef.js +1 -0
- package/dist/assets/index-4edac598.js +1 -0
- package/dist/assets/index-531a40ba.js +1 -0
- package/dist/assets/index-58af8784.js +1 -0
- package/dist/assets/index-6e9d628c.js +1 -0
- package/dist/assets/index-b8129a12.js +20 -0
- package/dist/assets/index-c0564af7.css +1 -0
- package/dist/assets/index-c5258b6a.js +14 -0
- package/dist/assets/index-legacy-013e602c.js +27 -0
- package/dist/assets/index-legacy-2c6656b7.js +1 -0
- package/dist/assets/index-legacy-46ca7014.js +18 -0
- package/dist/assets/index-legacy-52780c55.js +1 -0
- package/dist/assets/index-legacy-570c7cb9.js +1 -0
- package/dist/assets/index-legacy-5b31487a.js +1 -0
- package/dist/assets/index-legacy-6946cc66.js +1 -0
- package/dist/assets/index-legacy-761a690f.js +1 -0
- package/dist/assets/index-legacy-774ce9eb.js +1 -0
- package/dist/assets/index-legacy-bfa83468.js +1 -0
- package/dist/assets/indexes-7fdacbd3.js +1 -0
- package/dist/assets/indexes-legacy-b0449218.js +1 -0
- package/dist/assets/ipa-3c150a8e.js +1 -0
- package/dist/assets/ipa-legacy-c9832b7f.js +1 -0
- package/dist/assets/item_type-32dc6fdf.js +1 -0
- package/dist/assets/item_type-legacy-d49ae974.js +1 -0
- package/dist/assets/lg-22b72ba5.ttf +0 -0
- package/dist/assets/lg-f2fe1c00.svg +54 -0
- package/dist/assets/lg-fefc5c0d.woff +0 -0
- package/dist/assets/loading-298ad3ff.gif +0 -0
- package/dist/assets/markdown-f6634b03.js +1 -0
- package/dist/assets/markdown-legacy-fa6288e2.js +1 -0
- package/dist/assets/markdown_with_word_wrap-4707a0bb.js +1 -0
- package/dist/assets/markdown_with_word_wrap-legacy-40b69e71.js +1 -0
- package/dist/assets/offline_download-996becf4.js +1 -0
- package/dist/assets/offline_download-legacy-d963670f.js +1 -0
- package/dist/assets/plist-2b96d2c0.js +1 -0
- package/dist/assets/plist-legacy-034311ee.js +1 -0
- package/dist/assets/polyfills-legacy-fa59231c.js +1 -0
- package/dist/assets/style-a6d16836.css +1 -0
- package/dist/assets/style-b95f98f0.js +1 -0
- package/dist/assets/style-legacy-e9ff46a9.js +1 -0
- package/dist/assets/subtitles-octopus-worker-62892886.wasm +0 -0
- package/dist/assets/subtitles-octopus-worker-f95f2186.js +1 -0
- package/dist/assets/text-editor-1bf4c68b.js +1 -0
- package/dist/assets/text-editor-legacy-8da7daa4.js +1 -0
- package/dist/assets/url-5dba48cb.js +1 -0
- package/dist/assets/url-legacy-30ef4b8f.js +1 -0
- package/dist/assets/useTitle-cbc1a4b9.js +1 -0
- package/dist/assets/useTitle-legacy-a0f63151.js +1 -0
- package/dist/assets/video-9c59731a.js +7 -0
- package/dist/assets/video-legacy-dd1b01de.js +9 -0
- package/dist/assets/video360-49c12ab3.js +14 -0
- package/dist/assets/video360-f0192288.css +1 -0
- package/dist/assets/video360-legacy-d49e810c.js +16 -0
- package/dist/assets/video_box-ad8c3f54.js +6 -0
- package/dist/assets/video_box-legacy-b67382d5.js +8 -0
- package/dist/assets/webauthn-json.browser-ponyfill-29d8152c.js +1 -0
- package/dist/assets/webauthn-json.browser-ponyfill-legacy-456cc8e1.js +1 -0
- package/dist/images/figplayer.webp +0 -0
- package/dist/images/fileball.webp +0 -0
- package/dist/images/iPlay.webp +0 -0
- package/dist/images/iina.webp +0 -0
- package/dist/images/infuse.webp +0 -0
- package/dist/images/mpv.webp +0 -0
- package/dist/images/mxplayer-pro.webp +0 -0
- package/dist/images/mxplayer.webp +0 -0
- package/dist/images/nplayer.webp +0 -0
- package/dist/images/omniplayer.webp +0 -0
- package/dist/images/potplayer.webp +0 -0
- package/dist/images/vlc.webp +0 -0
- package/dist/index.html +81 -0
- package/dist/openlist-frontend-dist-v4.0.0-rc.1.tar.gz +0 -0
- package/dist/static/epub.js/viewer.html +467 -0
- package/dist/static/manifest.json +13 -0
- package/dist/streamer/mitm.html +186 -0
- package/dist/streamer/sw.js +141 -0
- package/package.json +102 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/* global self ReadableStream Response */
|
|
2
|
+
|
|
3
|
+
self.addEventListener("install", () => {
|
|
4
|
+
self.skipWaiting()
|
|
5
|
+
})
|
|
6
|
+
|
|
7
|
+
self.addEventListener("activate", (event) => {
|
|
8
|
+
event.waitUntil(self.clients.claim())
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
const map = new Map()
|
|
12
|
+
|
|
13
|
+
// This should be called once per download
|
|
14
|
+
// Each event has a dataChannel that the data will be piped through
|
|
15
|
+
self.onmessage = (event) => {
|
|
16
|
+
// We send a heartbeat every x second to keep the
|
|
17
|
+
// service worker alive if a transferable stream is not sent
|
|
18
|
+
if (event.data === "ping") {
|
|
19
|
+
return
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const data = event.data
|
|
23
|
+
const downloadUrl =
|
|
24
|
+
data.url ||
|
|
25
|
+
self.registration.scope +
|
|
26
|
+
Math.random() +
|
|
27
|
+
"/" +
|
|
28
|
+
(typeof data === "string" ? data : data.filename)
|
|
29
|
+
const port = event.ports[0]
|
|
30
|
+
const metadata = new Array(3) // [stream, data, port]
|
|
31
|
+
|
|
32
|
+
metadata[1] = data
|
|
33
|
+
metadata[2] = port
|
|
34
|
+
|
|
35
|
+
// Note to self:
|
|
36
|
+
// old streamsaver v1.2.0 might still use `readableStream`...
|
|
37
|
+
// but v2.0.0 will always transfer the stream through MessageChannel #94
|
|
38
|
+
if (event.data.readableStream) {
|
|
39
|
+
metadata[0] = event.data.readableStream
|
|
40
|
+
} else if (event.data.transferringReadable) {
|
|
41
|
+
port.onmessage = (evt) => {
|
|
42
|
+
port.onmessage = null
|
|
43
|
+
metadata[0] = evt.data.readableStream
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
metadata[0] = createStream(port)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
map.set(downloadUrl, metadata)
|
|
50
|
+
port.postMessage({ download: downloadUrl })
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function createStream(port) {
|
|
54
|
+
// ReadableStream is only supported by chrome 52
|
|
55
|
+
return new ReadableStream({
|
|
56
|
+
start(controller) {
|
|
57
|
+
// When we receive data on the messageChannel, we write
|
|
58
|
+
port.onmessage = ({ data }) => {
|
|
59
|
+
if (data === "end") {
|
|
60
|
+
return controller.close()
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (data === "abort") {
|
|
64
|
+
controller.error("Aborted the download")
|
|
65
|
+
return
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
controller.enqueue(data)
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
cancel() {
|
|
72
|
+
console.log("user aborted")
|
|
73
|
+
},
|
|
74
|
+
})
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
self.onfetch = (event) => {
|
|
78
|
+
const url = event.request.url
|
|
79
|
+
|
|
80
|
+
// this only works for Firefox
|
|
81
|
+
if (url.endsWith("/ping")) {
|
|
82
|
+
return event.respondWith(new Response("pong"))
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const hijacke = map.get(url)
|
|
86
|
+
|
|
87
|
+
if (!hijacke) return null
|
|
88
|
+
|
|
89
|
+
const [stream, data, port] = hijacke
|
|
90
|
+
|
|
91
|
+
map.delete(url)
|
|
92
|
+
|
|
93
|
+
// Not comfortable letting any user control all headers
|
|
94
|
+
// so we only copy over the length & disposition
|
|
95
|
+
const responseHeaders = new Headers({
|
|
96
|
+
"Content-Type": "application/octet-stream; charset=utf-8",
|
|
97
|
+
|
|
98
|
+
// To be on the safe side, The link can be opened in a iframe.
|
|
99
|
+
// but octet-stream should stop it.
|
|
100
|
+
"Content-Security-Policy": "default-src 'none'",
|
|
101
|
+
"X-Content-Security-Policy": "default-src 'none'",
|
|
102
|
+
"X-WebKit-CSP": "default-src 'none'",
|
|
103
|
+
"X-XSS-Protection": "1; mode=block",
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
let headers = new Headers(data.headers || {})
|
|
107
|
+
|
|
108
|
+
if (headers.has("Content-Length")) {
|
|
109
|
+
responseHeaders.set("Content-Length", headers.get("Content-Length"))
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (headers.has("Content-Disposition")) {
|
|
113
|
+
responseHeaders.set(
|
|
114
|
+
"Content-Disposition",
|
|
115
|
+
headers.get("Content-Disposition")
|
|
116
|
+
)
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// data, data.filename and size should not be used anymore
|
|
120
|
+
if (data.size) {
|
|
121
|
+
console.warn("Depricated")
|
|
122
|
+
responseHeaders.set("Content-Length", data.size)
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
let fileName = typeof data === "string" ? data : data.filename
|
|
126
|
+
if (fileName) {
|
|
127
|
+
console.warn("Depricated")
|
|
128
|
+
// Make filename RFC5987 compatible
|
|
129
|
+
fileName = encodeURIComponent(fileName)
|
|
130
|
+
.replace(/['()]/g, escape)
|
|
131
|
+
.replace(/\*/g, "%2A")
|
|
132
|
+
responseHeaders.set(
|
|
133
|
+
"Content-Disposition",
|
|
134
|
+
"attachment; filename*=UTF-8''" + fileName
|
|
135
|
+
)
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
event.respondWith(new Response(stream, { headers: responseHeaders }))
|
|
139
|
+
|
|
140
|
+
port.postMessage({ debug: "Download started" })
|
|
141
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@openlist-frontend/openlist-frontend",
|
|
3
|
+
"version": "4.0.0-rc.1",
|
|
4
|
+
"author": {
|
|
5
|
+
"name": "The OpenList Projects Contributors",
|
|
6
|
+
"url": "https://github.com/OpenListTeam"
|
|
7
|
+
},
|
|
8
|
+
"description": "A new AList Fork to Anti Trust Crisis",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/OpenListTeam/OpenList-Frontend.git"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/OpenListTeam/OpenList/issues"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"homepage": "https://openlist.team/",
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@crowdin/cli": "^3.19.4",
|
|
23
|
+
"@hrgui/libass-wasm-ts": "^1.0.3",
|
|
24
|
+
"@types/bencode": "^2.0.4",
|
|
25
|
+
"@types/crypto-js": "^4.2.2",
|
|
26
|
+
"@types/mark.js": "^8.11.12",
|
|
27
|
+
"@types/node": "^20.19.0",
|
|
28
|
+
"@types/qrcode": "^1.5.5",
|
|
29
|
+
"@types/sha256": "^0.2.2",
|
|
30
|
+
"@types/streamsaver": "^2.0.5",
|
|
31
|
+
"@vitejs/plugin-legacy": "^4.1.1",
|
|
32
|
+
"husky": "^8.0.3",
|
|
33
|
+
"lint-staged": "^13.3.0",
|
|
34
|
+
"prettier": "3.1.1",
|
|
35
|
+
"rollup-plugin-copy": "^3.5.0",
|
|
36
|
+
"terser": "^5.42.0",
|
|
37
|
+
"typescript": "^4.9.5",
|
|
38
|
+
"vite": "^4.5.14",
|
|
39
|
+
"vite-plugin-dynamic-base": "^0.4.9",
|
|
40
|
+
"vite-plugin-solid": "^2.11.6"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@egjs/view360": "4.0.0-beta.7",
|
|
44
|
+
"@github/webauthn-json": "^2.1.1",
|
|
45
|
+
"@hope-ui/solid": "0.6.7",
|
|
46
|
+
"@monaco-editor/loader": "^1.5.0",
|
|
47
|
+
"@solid-primitives/i18n": "^1.4.1",
|
|
48
|
+
"@solid-primitives/keyboard": "^1.3.1",
|
|
49
|
+
"@solid-primitives/storage": "^1.3.11",
|
|
50
|
+
"@solidjs/router": "^0.9.1",
|
|
51
|
+
"@stitches/core": "^1.2.8",
|
|
52
|
+
"@viselect/vanilla": "^3.9.0",
|
|
53
|
+
"aplayer": "^1.10.1",
|
|
54
|
+
"artplayer": "^5.2.3",
|
|
55
|
+
"artplayer-plugin-danmuku": "^5.1.6",
|
|
56
|
+
"asciinema-player": "^3.10.0",
|
|
57
|
+
"axios": "^1.9.0",
|
|
58
|
+
"bencode": "^4.0.0",
|
|
59
|
+
"chardet": "^2.1.0",
|
|
60
|
+
"clsx": "^2.1.1",
|
|
61
|
+
"copy-to-clipboard": "^3.3.3",
|
|
62
|
+
"crypto-js": "^4.2.0",
|
|
63
|
+
"hash-wasm": "^4.12.0",
|
|
64
|
+
"hls.js": "^1.6.5",
|
|
65
|
+
"just-once": "^2.2.0",
|
|
66
|
+
"libass-wasm": "^4.1.0",
|
|
67
|
+
"lightgallery": "^2.8.3",
|
|
68
|
+
"mark.js": "^8.11.1",
|
|
69
|
+
"mitt": "^3.0.1",
|
|
70
|
+
"mpegts.js": "^1.8.0",
|
|
71
|
+
"qrcode": "^1.5.4",
|
|
72
|
+
"rehype-katex": "^6.0.3",
|
|
73
|
+
"rehype-raw": "^6.1.1",
|
|
74
|
+
"remark-gfm": "^3.0.1",
|
|
75
|
+
"remark-math": "^5.1.1",
|
|
76
|
+
"seemly": "^0.3.10",
|
|
77
|
+
"sha256": "^0.2.0",
|
|
78
|
+
"solid-contextmenu": "0.0.2",
|
|
79
|
+
"solid-icons": "^1.1.0",
|
|
80
|
+
"solid-js": "^1.9.7",
|
|
81
|
+
"solid-markdown": "^1.2.2",
|
|
82
|
+
"solid-motionone": "^1.0.4",
|
|
83
|
+
"solid-transition-group": "^0.0.12",
|
|
84
|
+
"streamsaver": "^2.0.6",
|
|
85
|
+
"typescript-natural-sort": "^0.7.2"
|
|
86
|
+
},
|
|
87
|
+
"lint-staged": {
|
|
88
|
+
"**/*.{js,ts,css,tsx,jsx,md,html,yml,yaml}": "prettier --write"
|
|
89
|
+
},
|
|
90
|
+
"scripts": {
|
|
91
|
+
"crowdin:upload": "crowdin upload sources --auto-update",
|
|
92
|
+
"crowdin:download": "crowdin download --verbose",
|
|
93
|
+
"crowdin": "pnpm crowdin:upload && pnpm crowdin:download",
|
|
94
|
+
"i18n:build": "pnpm crowdin && node ./scripts/i18n.mjs",
|
|
95
|
+
"i18n:release": "pnpm run crowdin:download && node ./scripts/i18n.mjs",
|
|
96
|
+
"start": "vite",
|
|
97
|
+
"dev": "vite --force",
|
|
98
|
+
"build": "vite build",
|
|
99
|
+
"serve": "vite preview",
|
|
100
|
+
"format": "prettier --ignore-path .gitignore -w \"src/**/*.{js,ts,json,css,tsx,jsx}\""
|
|
101
|
+
}
|
|
102
|
+
}
|