'use strict'; // ═══════════════════════════════════════════════════════════════ // openvibe-shared/files — which files of this package are browser scripts. // Sites serve exactly these at /shared/ (openvibe-sw.js at /openvibe-sw.js, // same origin, scope "/"); everything else in the package is Node-only and must // not be served. The size report and the browser-bundle test read this list too. // // const shared = require('openvibe-shared/files'); // app.get('/shared/:file', (req, res, next) => shared.isBrowserFile(req.params.file) // ? res.sendFile(shared.path(req.params.file)) : next()); // ═══════════════════════════════════════════════════════════════ const path = require('path'); const BROWSER = Object.freeze([ 'ov-ai-choice.js', // the model chip and its choice sheet (openvibe-shared/ov-ai-choice) 'navbar.js', // shared top bar (eager on every site) 'nav-icons.js', // navbar glyphs beyond its own, fetched by navbar.js after first paint 'theme-loader.js', // applies the theme before first paint 'footer.js', // shared footer (also required on the server by frame.js) 'shipped.js', // "Recently shipped" from the network changelog (openvibe.blog) 'notification-ui.js', // bell + notification panel 'notification-live.js', // the bell's realtime feed over OpenVibe.Events; notification-ui loads it on demand (realtime on) 'action-center.js', // the ✦ Action Center; notification-ui loads it on the first click 'dock.js', // the Dock and its pill; navbar.js loads it for a signed-in person 'dock-mount.js', // the Dock body inside another sheet; dock.js loads it on first mountInto 'dock-runs.js', // the Dock's content-aware Agents rows and overview, loaded with that tab 'ai-marks-client.js', // maker marks on a run receipt, loaded only in Agents 'presence.js', 'purse.js', 'machines.js', 'ov-drop.js', 'mini.js', 'ov-tip.js', 'overlay.js', 'nav-slots.js', // your online status: the dot, the heartbeat, the picker; navbar.js loads it for a signed-in person 'dock-vibe.js', // the Dock's Vibe tab (L48 V2); dock.js loads it the first time the tab opens 'dock-code.js', // the Dock's Code tab (4.201.0); dock.js loads it the first time the tab opens 'dock-timer.js', // the Dock's timer (L48 R2); dock.js loads it while a timer runs or its menu opens 'dock-share.js', // the Dock's Send to… (4.144.0); dock.js loads it the first time something is sent 'dock-card.js', // a known OpenVibe link's card under a Dock message (4.147.0); loaded the first time one shows 'dock-chat-edits.js', // live edits in an open Dock DM; loaded with that conversation 'ov-canvas.js', // an agent's live panel (actor.canvas@1, 4.145.0); a page that shows canvases loads it 'dock-actor.js', // the Dock's Actor block (Actor v3 A3); dock.js loads it the first time the Actor tab opens 'dock-agent.js', // the Dock's agent view (K-D3); dock.js loads it the first time the Agents tab opens 'dock-timeline.js', // the Dock's one timeline (A6); dock.js loads it with the Agent panel 'account-switcher.js', 'user-card.js', 'ov-user.js', // public user-card read and opt-in mention/avatar hook; plain kit markup 'ov-mark.js', // the OV brand mark drop-in 'ov-glyphs.js', // the network's own icons in place of Font Awesome's (built from glyphs.js; navbar.js loads it) 'brands.js', // brand logos (Simple Icons, CC0), fetched by ov-glyphs.js the first time a page shows one (4.72.0) 'ov-look.js', // the Look panel: themes, the season, more on openvibe.design (navbar.js loads it on first open) 'ov-fx.js', // the network's effects (data-fx): glint, glow, lift, press, ripple, tilt, reveal, count, confetti 'ov-labels.js', // content labels (L1): each viewer's show / blur / hide; navbar.js loads it when a page has [data-ov-labels] 'ov-forms.js', // OpenVibe's own select (a menu on a computer, a sheet on a phone); navbar.js loads it when a page has a form control 'ov-qr.js', // a QR code from a link, on the device: the Share sheet's QR code (ov-share.js loads it on first use) 'ov-arrange.js', // the Arrange editor (make your own controls, 2026-11-11): a person moves and resizes a surface's parts; a product loads it when Arrange is pressed 'ov-arrange-core.js', // openvibe-sdk/ui-layout for the browser, generated (scripts/build-arrange-core.js): the one validator 'ov-locker-core.js', // openvibe-sdk/locker for the browser, generated (scripts/build-locker-core.js): WebCrypto only, the SDK's own vectors 'ov-locker.js', // Locker in the browser (plan Q2): a locked item's card, making and unlocking your locker; crypto in ov-locker-core.js 'ov-wallet.js', 'ov-share.js', // the one Share sheet (plan track Q): who can open a thing, people by @name, transfer; navbar.js loads it on the first press of a [data-ov-share-sheet] button 'ov-upload.js', // shared file picker, upload queue and ov-progress 'messages.js', // Chat's two views: room lines and texting bubbles (openvibe-shared/messages) 'ov-thread.js', // one conversation UI (L55 C4): the drawer, search, composer, copy, streaming turns; markup from openvibe-shared/thread, drawn with thread.css 'ov-composer.js', // shared composer 'ov-run.js', // 4.224.0: the one run thread (OpenVibeRun), loaded beside the navbar 'ov-metrics.js', // 4.232.0: the one way to show numbers (tiles, sparklines, bars, percentiles, splits, tables) 'ov-capture.js', // OVCapture: camera, microphone, screen, photo and recording for Live, Cam and the composer (4.216.0) 'ov-combo.js', // shared field dropdown 'ov-searchbox.js', // the one search field (4.229.0): pill, suggestions, recent searches, ghost completion; its list is ov-combo 'ov-window.js', // shared dialog, sheet, and panel 'agent-sheet.js', // an agent's sheet in the one window (4.211.0) 'ov-float.js', // the move engine behind a PiP or a panel: dock/float, tuck, size, place (4.208.0) 'ov-icons.js', // ring icons (also required on the server as openvibe-shared/icons) 'ov-home.js', // the menu's home screen and wall (search.js loads it for You and Feed) 'history.js', // cross-site history 'sso-client.js', // link hand-off, FedCM 'panels.js', // one-open-at-a-time panel coordinator 'surfaces.js', // scroll locking and gestures for sheets; outside pointer for pop-overs 'ui.js', // toasts and page notices 'route-transition.js', // page-move bar, loading line and fade-in; web-runtime.js fetches it on the first move 'boost.js', // smooth same-site page moves for a server-rendered site (OVBoost; plan T11) 'soft.js', // speculation-rule prefetch and cross-document view transitions (soft pages, 2026-11-10) 'island.js', // activity island 'items.js', // what people wear (OpenVibe.Inventory name effects, plan T21); draw with items.css 'profile-panel.js', // a person's stuff on any site (worn items, badges, achievements), from the Network profile 'quest.js', // the daily quest card any site can show (OpenVibeQuest.mount); draw with quest.css 'guide.js', // the opaque quest step guide (OpenVibeQuestGuide.startFromLocation) 'tooltip.js', 'player.js', // the network's one video player look: enhances video[data-ov-player]; draw with player.css 'ov-sync.js', // one timeline for many players (seven domains B4): OVSync.attach(media, { room, socket }); no dependencies 'vibes-pay.js', // Vibes Pay: OpenVibe.vibes.pay() and