Appearance
Plugins ​
Plugins are registered in nuxt.config.js and run at app init. Mode: client = client-only; otherwise SSR unless noted.
| Plugin | Mode | Purpose |
|---|---|---|
| vuelidate.js | SSR | Form validation (Vuelidate) |
| helper.js | SSR | Global helpers (e.g. $getErrorMessage, $sortBy, $toQueryString) |
| axios.js | ssr: true | Axios: cancel tokens, rate limiting via apiRateLimiter, long-run overlay for action APIs; blocks non–access-check requests until workspace access verified |
| vue-async-computed.js | SSR | Async computed properties |
| event-bus.js | (export) | Exports EventBus (Vue instance) for programmatic use |
| vue-audio-visual.js | client | Audio visualizer component |
| disable-inspect.js | client | Disable devtools/inspect in production |
| vue-recaptcha-3.js | SSR | reCAPTCHA v3 |
| snackbar.js | client | Snackbar notifications ($snackbar / window.$snackbar) |
| streamsaver.client.js | client, ssr: false | StreamSaver for streaming downloads |
| pwa-links.client.js | client | PWA-related link handling |
| amplitude.js | client | Initialises Amplitude analytics (@amplitude/analytics-browser); registers $trackEvent on Vue.prototype; normalises nested/circular event properties; integrates with amplitude-session-replay plugin | | amplitude-session-replay.js | client | Amplitude Session Replay SDK (@amplitude/session-replay-browser); sampling rate controlled by AMPLITUDE_SESSION_REPLAY_SAMPLE_RATE env var (0 = disabled); syncs device/session ID from the main Amplitude instance | | branding.js | SSR | Registers branding mixin globally via Vue.mixin; makes branding helpers available on every component | | unregister-sw.client.js | client, ssr: false | Unregisters all service workers and clears caches on app load; prevents stale PWA cache from serving outdated assets |
Config notes ​
- axios: Uses
utils/cancelTokenManager.jsandutils/apiRateLimiter.js. Action APIs (e.g. delete-file, add-tags-to-multiple-file) show a long-run overlay after 5s vialoading/INCREMENT_API_LONG_RUNNING. - bus.js deleted:
$busis no longer registered. UseEventBusfrom~/plugins/event-businstead. - recaptcha / snackbar / PWA / StreamSaver: Client-only; depend on
windowor DOM.