@necrolab/dashboard 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +45 -0
- package/.eslintrc.js +24 -0
- package/.prettierignore +1 -0
- package/.prettierrc +10 -0
- package/.vscode/extensions.json +3 -0
- package/ICONS.md +21 -0
- package/README.md +65 -0
- package/backend/api.js +430 -0
- package/backend/auth.js +62 -0
- package/backend/batching.js +43 -0
- package/backend/endpoints.js +343 -0
- package/backend/index.js +23 -0
- package/backend/mock-data.js +66 -0
- package/backend/mock-src/classes/logger.js +112 -0
- package/backend/mock-src/classes/utils.js +42 -0
- package/backend/mock-src/ticketmaster.js +92 -0
- package/backend/validator.js +62 -0
- package/config/configs.json +20 -0
- package/config/filter.json +3 -0
- package/config/presale.csv +3 -0
- package/config/proxies.txt +6 -0
- package/config/used-codes.json +4 -0
- package/index.html +114 -0
- package/index.js +2 -0
- package/jsconfig.json +16 -0
- package/package.json +48 -0
- package/postcss.config.js +6 -0
- package/postinstall.js +9 -0
- package/public/android-chrome-192x192.png +0 -0
- package/public/android-chrome-512x512.png +0 -0
- package/public/apple-touch-icon.png +0 -0
- package/public/favicon-16x16.png +0 -0
- package/public/favicon-32x32.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/flags/ae.svg +1 -0
- package/public/flags/at.svg +1 -0
- package/public/flags/au.svg +1 -0
- package/public/flags/be.svg +1 -0
- package/public/flags/ch.svg +1 -0
- package/public/flags/cz.svg +1 -0
- package/public/flags/de.svg +1 -0
- package/public/flags/dk.svg +1 -0
- package/public/flags/es.svg +1 -0
- package/public/flags/nl.svg +1 -0
- package/public/flags/no.svg +1 -0
- package/public/flags/nz.svg +1 -0
- package/public/flags/pl.svg +1 -0
- package/public/flags/se.svg +1 -0
- package/public/flags/uk.svg +1 -0
- package/public/flags/us.svg +1 -0
- package/public/img/award.svg +3 -0
- package/public/img/background.svg +14 -0
- package/public/img/bag_w.svg +12 -0
- package/public/img/banks/amex.svg +4 -0
- package/public/img/banks/mastercard.svg +4 -0
- package/public/img/banks/visa.svg +4 -0
- package/public/img/camera.svg +3 -0
- package/public/img/close.svg +3 -0
- package/public/img/controls/disable.svg +5 -0
- package/public/img/controls/enable.svg +5 -0
- package/public/img/groups.svg +3 -0
- package/public/img/hand.svg +3 -0
- package/public/img/key.svg +3 -0
- package/public/img/logo.png +0 -0
- package/public/img/logo_icon.png +0 -0
- package/public/img/logo_icon_2.png +0 -0
- package/public/img/logo_trans.png +0 -0
- package/public/img/loyalty.svg +3 -0
- package/public/img/mail.svg +3 -0
- package/public/img/pencil.svg +3 -0
- package/public/img/profile.svg +4 -0
- package/public/img/reload.svg +3 -0
- package/public/img/sandclock.svg +25 -0
- package/public/img/save.svg +5 -0
- package/public/img/savings.svg +3 -0
- package/public/img/scanner.svg +3 -0
- package/public/img/sell.svg +3 -0
- package/public/img/shield.svg +3 -0
- package/public/img/ski.svg +3 -0
- package/public/img/stadium.svg +8 -0
- package/public/img/stadium_w.svg +8 -0
- package/public/img/timer.svg +3 -0
- package/public/manifest.json +27 -0
- package/public/robots.txt +2 -0
- package/run +10 -0
- package/src/App.vue +307 -0
- package/src/assets/css/_input.scss +197 -0
- package/src/assets/css/main.scss +269 -0
- package/src/assets/css/tailwind.css +3 -0
- package/src/assets/img/award.svg +3 -0
- package/src/assets/img/background.svg +11 -0
- package/src/assets/img/camera.svg +3 -0
- package/src/assets/img/close.svg +3 -0
- package/src/assets/img/eyes/closed.svg +13 -0
- package/src/assets/img/eyes/open.svg +12 -0
- package/src/assets/img/groups.svg +3 -0
- package/src/assets/img/hand.svg +3 -0
- package/src/assets/img/key.svg +3 -0
- package/src/assets/img/logo.png +0 -0
- package/src/assets/img/logo_icon.png +0 -0
- package/src/assets/img/logo_icon_2.png +0 -0
- package/src/assets/img/logo_trans.png +0 -0
- package/src/assets/img/loyalty.svg +3 -0
- package/src/assets/img/mail.svg +3 -0
- package/src/assets/img/pencil.svg +3 -0
- package/src/assets/img/reload.svg +3 -0
- package/src/assets/img/savings.svg +3 -0
- package/src/assets/img/scanner.svg +3 -0
- package/src/assets/img/sell.svg +3 -0
- package/src/assets/img/shield.svg +3 -0
- package/src/assets/img/ski.svg +3 -0
- package/src/assets/img/square_check.svg +5 -0
- package/src/assets/img/square_uncheck.svg +5 -0
- package/src/assets/img/stadium.svg +8 -0
- package/src/assets/img/timer.svg +3 -0
- package/src/assets/img/wildcard.svg +7 -0
- package/src/components/Auth/LoginForm.vue +48 -0
- package/src/components/Editors/Account/Account.vue +119 -0
- package/src/components/Editors/Account/AccountCreator.vue +147 -0
- package/src/components/Editors/Account/AccountView.vue +87 -0
- package/src/components/Editors/Account/CreateAccount.vue +106 -0
- package/src/components/Editors/Profile/CreateProfile.vue +321 -0
- package/src/components/Editors/Profile/Profile.vue +142 -0
- package/src/components/Editors/Profile/ProfileCountryChooser.vue +75 -0
- package/src/components/Editors/Profile/ProfileView.vue +96 -0
- package/src/components/Editors/TagLabel.vue +16 -0
- package/src/components/Editors/TagToggle.vue +41 -0
- package/src/components/Filter/Filter.vue +409 -0
- package/src/components/Filter/FilterPreview.vue +236 -0
- package/src/components/Filter/PriceSortToggle.vue +105 -0
- package/src/components/Table/Header.vue +5 -0
- package/src/components/Table/Row.vue +5 -0
- package/src/components/Table/Table.vue +14 -0
- package/src/components/Table/index.js +4 -0
- package/src/components/Tasks/CheckStock.vue +62 -0
- package/src/components/Tasks/Controls/DesktopControls.vue +73 -0
- package/src/components/Tasks/Controls/MobileControls.vue +32 -0
- package/src/components/Tasks/Controls/index.js +3 -0
- package/src/components/Tasks/CreateTaskAXS.vue +339 -0
- package/src/components/Tasks/CreateTaskTM.vue +459 -0
- package/src/components/Tasks/MassEdit.vue +50 -0
- package/src/components/Tasks/QuickSettings.vue +167 -0
- package/src/components/Tasks/ScrapeVenue.vue +42 -0
- package/src/components/Tasks/Stats.vue +66 -0
- package/src/components/Tasks/Task.vue +296 -0
- package/src/components/Tasks/TaskLabel.vue +20 -0
- package/src/components/Tasks/TaskView.vue +126 -0
- package/src/components/Tasks/Utilities.vue +33 -0
- package/src/components/icons/Award.vue +8 -0
- package/src/components/icons/Bag.vue +8 -0
- package/src/components/icons/BagWhite.vue +8 -0
- package/src/components/icons/Box.vue +8 -0
- package/src/components/icons/Camera.vue +8 -0
- package/src/components/icons/Cart.vue +8 -0
- package/src/components/icons/Check.vue +5 -0
- package/src/components/icons/Checkmark.vue +11 -0
- package/src/components/icons/Click.vue +8 -0
- package/src/components/icons/Close.vue +21 -0
- package/src/components/icons/CloseX.vue +5 -0
- package/src/components/icons/Console.vue +13 -0
- package/src/components/icons/Down.vue +8 -0
- package/src/components/icons/Edit.vue +13 -0
- package/src/components/icons/Event.vue +8 -0
- package/src/components/icons/Expand.vue +8 -0
- package/src/components/icons/Filter.vue +13 -0
- package/src/components/icons/Gear.vue +8 -0
- package/src/components/icons/Group.vue +8 -0
- package/src/components/icons/Hand.vue +8 -0
- package/src/components/icons/Key.vue +21 -0
- package/src/components/icons/Logout.vue +13 -0
- package/src/components/icons/Loyalty.vue +8 -0
- package/src/components/icons/Mail.vue +8 -0
- package/src/components/icons/Menu.vue +8 -0
- package/src/components/icons/Pause.vue +5 -0
- package/src/components/icons/Pencil.vue +21 -0
- package/src/components/icons/Play.vue +8 -0
- package/src/components/icons/Plus.vue +8 -0
- package/src/components/icons/Profile.vue +18 -0
- package/src/components/icons/Reload.vue +7 -0
- package/src/components/icons/Sandclock.vue +33 -0
- package/src/components/icons/Savings.vue +8 -0
- package/src/components/icons/Scanner.vue +8 -0
- package/src/components/icons/Scrape.vue +8 -0
- package/src/components/icons/Sell.vue +21 -0
- package/src/components/icons/Shield.vue +8 -0
- package/src/components/icons/Shrink.vue +8 -0
- package/src/components/icons/Ski.vue +8 -0
- package/src/components/icons/Spinner.vue +42 -0
- package/src/components/icons/SquareCheck.vue +18 -0
- package/src/components/icons/SquareUncheck.vue +18 -0
- package/src/components/icons/Stadium.vue +13 -0
- package/src/components/icons/StadiumWhite.vue +13 -0
- package/src/components/icons/Status.vue +8 -0
- package/src/components/icons/Tag.vue +8 -0
- package/src/components/icons/Tasks.vue +13 -0
- package/src/components/icons/Ticket.vue +8 -0
- package/src/components/icons/Timer.vue +8 -0
- package/src/components/icons/Trash.vue +8 -0
- package/src/components/icons/Up.vue +10 -0
- package/src/components/icons/Wildcard.vue +18 -0
- package/src/components/icons/index.js +111 -0
- package/src/components/ui/Modal.vue +61 -0
- package/src/components/ui/Navbar.vue +207 -0
- package/src/components/ui/ReconnectIndicator.vue +90 -0
- package/src/components/ui/Splash.vue +24 -0
- package/src/components/ui/controls/CountryChooser.vue +87 -0
- package/src/components/ui/controls/EyeToggle.vue +11 -0
- package/src/components/ui/controls/atomic/Checkbox.vue +28 -0
- package/src/components/ui/controls/atomic/Dropdown.vue +138 -0
- package/src/components/ui/controls/atomic/LoadingButton.vue +45 -0
- package/src/components/ui/controls/atomic/MultiDropdown.vue +262 -0
- package/src/components/ui/controls/atomic/Switch.vue +84 -0
- package/src/libs/Filter.js +593 -0
- package/src/libs/ansii.js +565 -0
- package/src/libs/panzoom.js +1413 -0
- package/src/main.js +23 -0
- package/src/registerServiceWorker.js +32 -0
- package/src/router/index.js +65 -0
- package/src/stores/cities.json +1 -0
- package/src/stores/connection.js +399 -0
- package/src/stores/countries.js +88 -0
- package/src/stores/logger.js +103 -0
- package/src/stores/requests.js +88 -0
- package/src/stores/sampleData.js +1034 -0
- package/src/stores/ui.js +584 -0
- package/src/stores/utils.js +554 -0
- package/src/types/index.js +42 -0
- package/src/utils/debug.js +1 -0
- package/src/views/Accounts.vue +191 -0
- package/src/views/Console.vue +224 -0
- package/src/views/Editor.vue +785 -0
- package/src/views/FilterBuilder.vue +785 -0
- package/src/views/Login.vue +27 -0
- package/src/views/Profiles.vue +209 -0
- package/src/views/Tasks.vue +157 -0
- package/static/offline.html +184 -0
- package/tailwind.config.js +57 -0
- package/vite.config.js +63 -0
- package/vue.config.js +32 -0
- package/workbox-config.js +66 -0
package/vite.config.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { fileURLToPath, URL } from "node:url";
|
|
2
|
+
import { defineConfig } from "vite";
|
|
3
|
+
import vue from "@vitejs/plugin-vue";
|
|
4
|
+
import { readFileSync } from "node:fs";
|
|
5
|
+
|
|
6
|
+
const pkg = JSON.parse(readFileSync("./package.json", "utf-8"));
|
|
7
|
+
|
|
8
|
+
// https://vitejs.dev/config/
|
|
9
|
+
export default defineConfig({
|
|
10
|
+
build: {
|
|
11
|
+
rollupOptions: {
|
|
12
|
+
output: {
|
|
13
|
+
manualChunks: {
|
|
14
|
+
vue: ["vue", "vue-router", "pinia"],
|
|
15
|
+
ui: ["@vueuse/core", "vue-virtual-scroller"],
|
|
16
|
+
utils: ["@msgpack/msgpack", "websocket-heartbeat-js"]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
target: "esnext",
|
|
21
|
+
cssCodeSplit: true,
|
|
22
|
+
sourcemap: false,
|
|
23
|
+
minify: "esbuild",
|
|
24
|
+
emptyOutDir: false
|
|
25
|
+
},
|
|
26
|
+
optimizeDeps: {
|
|
27
|
+
include: ["vue", "vue-router", "pinia", "@vueuse/core"],
|
|
28
|
+
exclude: ["sharp"]
|
|
29
|
+
},
|
|
30
|
+
define: {
|
|
31
|
+
__APP_VERSION__: JSON.stringify(pkg.version),
|
|
32
|
+
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false
|
|
33
|
+
},
|
|
34
|
+
plugins: [
|
|
35
|
+
vue({
|
|
36
|
+
template: {
|
|
37
|
+
compilerOptions: {
|
|
38
|
+
isCustomElement: (tag) => tag.startsWith("necro-")
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
],
|
|
43
|
+
resolve: {
|
|
44
|
+
alias: {
|
|
45
|
+
"@": fileURLToPath(new URL("./src", import.meta.url))
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
css: {
|
|
49
|
+
preprocessorOptions: {
|
|
50
|
+
scss: {
|
|
51
|
+
api: "modern-compiler",
|
|
52
|
+
silenceDeprecations: ["legacy-js-api"]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
devSourcemap: true
|
|
56
|
+
},
|
|
57
|
+
server: {
|
|
58
|
+
port: 5173,
|
|
59
|
+
strictPort: true,
|
|
60
|
+
host: true,
|
|
61
|
+
cors: true
|
|
62
|
+
}
|
|
63
|
+
});
|
package/vue.config.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
chainWebpack: (config) => {
|
|
3
|
+
config.plugin('preload').tap((options) => {
|
|
4
|
+
options[0].as = (entry) => {
|
|
5
|
+
if (/\.css$/.test(entry)) return 'style';
|
|
6
|
+
if (/\.woff$/.test(entry)) return 'font';
|
|
7
|
+
if (/\.png$/.test(entry)) return 'image';
|
|
8
|
+
return 'script';
|
|
9
|
+
};
|
|
10
|
+
options[0].include = 'allAssets';
|
|
11
|
+
// options[0].fileWhitelist: [/\.files/, /\.to/, /\.include/]
|
|
12
|
+
// options[0].fileBlacklist: [/\.files/, /\.to/, /\.exclude/]
|
|
13
|
+
return options;
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
pwa: {
|
|
17
|
+
name: 'Necro Lab',
|
|
18
|
+
themeColor: '#4DBA87',
|
|
19
|
+
msTileColor: '#000000',
|
|
20
|
+
appleMobileWebAppCapable: 'yes',
|
|
21
|
+
appleMobileWebAppStatusBarStyle: 'black',
|
|
22
|
+
|
|
23
|
+
// configure the workbox plugin
|
|
24
|
+
// workboxPluginMode: 'InjectManifest',
|
|
25
|
+
workboxPluginMode: "GenerateSW",
|
|
26
|
+
workboxOptions: {
|
|
27
|
+
// swSrc is required in InjectManifest mode.
|
|
28
|
+
swSrc: 'dev/sw.js',
|
|
29
|
+
// ...other Workbox options...
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
globDirectory: "public/",
|
|
3
|
+
globPatterns: [
|
|
4
|
+
"**/*.{png,ico,svg,jpg,jpeg,webp}",
|
|
5
|
+
"manifest.json"
|
|
6
|
+
],
|
|
7
|
+
swDest: "public/sw.js",
|
|
8
|
+
sourcemap: false,
|
|
9
|
+
skipWaiting: true,
|
|
10
|
+
clientsClaim: true,
|
|
11
|
+
ignoreURLParametersMatching: [/^utm_/, /^fbclid$/],
|
|
12
|
+
cleanupOutdatedCaches: true,
|
|
13
|
+
runtimeCaching: [
|
|
14
|
+
{
|
|
15
|
+
urlPattern: /\.(?:png|jpg|jpeg|svg|gif|webp|ico)$/,
|
|
16
|
+
handler: "CacheFirst",
|
|
17
|
+
options: {
|
|
18
|
+
cacheName: "images",
|
|
19
|
+
expiration: {
|
|
20
|
+
maxEntries: 150,
|
|
21
|
+
maxAgeSeconds: 60 * 60 * 24 * 30 // 30 days
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
urlPattern: /\.(?:js|css)$/,
|
|
27
|
+
handler: "StaleWhileRevalidate",
|
|
28
|
+
options: {
|
|
29
|
+
cacheName: "static-resources",
|
|
30
|
+
expiration: {
|
|
31
|
+
maxEntries: 50,
|
|
32
|
+
maxAgeSeconds: 60 * 60 * 24 * 7 // 1 week
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
urlPattern: /^https:\/\/fonts\.googleapis\.com\//,
|
|
38
|
+
handler: "StaleWhileRevalidate",
|
|
39
|
+
options: {
|
|
40
|
+
cacheName: "google-fonts-stylesheets"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
urlPattern: /^https:\/\/fonts\.gstatic\.com\//,
|
|
45
|
+
handler: "CacheFirst",
|
|
46
|
+
options: {
|
|
47
|
+
cacheName: "google-fonts-webfonts",
|
|
48
|
+
expiration: {
|
|
49
|
+
maxEntries: 10,
|
|
50
|
+
maxAgeSeconds: 60 * 60 * 24 * 365 // 1 year
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
urlPattern: /\/flags\//,
|
|
56
|
+
handler: "CacheFirst",
|
|
57
|
+
options: {
|
|
58
|
+
cacheName: "country-flags",
|
|
59
|
+
expiration: {
|
|
60
|
+
maxEntries: 50,
|
|
61
|
+
maxAgeSeconds: 60 * 60 * 24 * 90 // 90 days
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
};
|