@powerhousedao/connect 6.2.2-dev.77 → 6.2.2-dev.78
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/dist/{AddDriveModal-DIMewThf.js → AddDriveModal-Q-Ffh5XA.js} +4 -4
- package/dist/{AddDriveModal-DIMewThf.js.map → AddDriveModal-Q-Ffh5XA.js.map} +1 -1
- package/dist/{ClearStorageModal-DKy2tPYb.js → ClearStorageModal-rKAE3cvA.js} +4 -4
- package/dist/{ClearStorageModal-DKy2tPYb.js.map → ClearStorageModal-rKAE3cvA.js.map} +1 -1
- package/dist/{ConfirmDocumentUpgradeModal-CcpgpyOB.js → ConfirmDocumentUpgradeModal-FUOhZsk7.js} +4 -4
- package/dist/{ConfirmDocumentUpgradeModal-CcpgpyOB.js.map → ConfirmDocumentUpgradeModal-FUOhZsk7.js.map} +1 -1
- package/dist/{CookiesPolicyModal-Bns4789o.js → CookiesPolicyModal-BpyPPyxS.js} +3 -3
- package/dist/{CookiesPolicyModal-Bns4789o.js.map → CookiesPolicyModal-BpyPPyxS.js.map} +1 -1
- package/dist/{CreateDocumentModal-MlA2YRaW.js → CreateDocumentModal-C45W8J0V.js} +3 -3
- package/dist/{CreateDocumentModal-MlA2YRaW.js.map → CreateDocumentModal-C45W8J0V.js.map} +1 -1
- package/dist/{DebugSettingsModal-890WlVp4.js → DebugSettingsModal-f7mphH92.js} +6 -6
- package/dist/{DebugSettingsModal-890WlVp4.js.map → DebugSettingsModal-f7mphH92.js.map} +1 -1
- package/dist/{DeleteDriveModal-gP7j8C0Y.js → DeleteDriveModal-Dug84t1j.js} +4 -4
- package/dist/{DeleteDriveModal-gP7j8C0Y.js.map → DeleteDriveModal-Dug84t1j.js.map} +1 -1
- package/dist/{DeleteItemModal-CMM-fPsz.js → DeleteItemModal-mMzy3V8o.js} +4 -4
- package/dist/{DeleteItemModal-CMM-fPsz.js.map → DeleteItemModal-mMzy3V8o.js.map} +1 -1
- package/dist/{DisclaimerModal-meOyQCfU.js → DisclaimerModal-DvpD5dPM.js} +3 -3
- package/dist/{DisclaimerModal-meOyQCfU.js.map → DisclaimerModal-DvpD5dPM.js.map} +1 -1
- package/dist/{DocumentVersionUnsupportedModal-TlDH1aP5.js → DocumentVersionUnsupportedModal-C3Q0V75l.js} +3 -3
- package/dist/{DocumentVersionUnsupportedModal-TlDH1aP5.js.map → DocumentVersionUnsupportedModal-C3Q0V75l.js.map} +1 -1
- package/dist/{DownloadDocumentWithErrorsModal-CCdbt2jJ.js → DownloadDocumentWithErrorsModal-IKl0ljQb.js} +3 -3
- package/dist/{DownloadDocumentWithErrorsModal-CCdbt2jJ.js.map → DownloadDocumentWithErrorsModal-IKl0ljQb.js.map} +1 -1
- package/dist/{DriveAuthRequiredModal-9GsPnOYi.js → DriveAuthRequiredModal-Cw9eCAQ_.js} +4 -4
- package/dist/{DriveAuthRequiredModal-9GsPnOYi.js.map → DriveAuthRequiredModal-Cw9eCAQ_.js.map} +1 -1
- package/dist/{DriveSettingsModal-Bv0y1BEK.js → DriveSettingsModal-C6-mRQiv.js} +3 -3
- package/dist/{DriveSettingsModal-Bv0y1BEK.js.map → DriveSettingsModal-C6-mRQiv.js.map} +1 -1
- package/dist/{InspectorModal-C3L5F4Ma.js → InspectorModal-C2usotS-.js} +6 -6
- package/dist/{InspectorModal-C3L5F4Ma.js.map → InspectorModal-C2usotS-.js.map} +1 -1
- package/dist/{LoginModal-CxFHjxz8.js → LoginModal-CybbOm3N.js} +4 -4
- package/dist/{LoginModal-CxFHjxz8.js.map → LoginModal-CybbOm3N.js.map} +1 -1
- package/dist/{MissingPackageModal-C6HO-a7E.js → MissingPackageModal-C7usWVHQ.js} +4 -4
- package/dist/{MissingPackageModal-C6HO-a7E.js.map → MissingPackageModal-C7usWVHQ.js.map} +1 -1
- package/dist/{OpenFileDocumentsModal-6MK7Ourm.js → OpenFileDocumentsModal-e_TKIuB4.js} +4 -4
- package/dist/{OpenFileDocumentsModal-6MK7Ourm.js.map → OpenFileDocumentsModal-e_TKIuB4.js.map} +1 -1
- package/dist/{SettingsModal-DzW3OIrB.js → SettingsModal-DbIlDH70.js} +134 -8
- package/dist/SettingsModal-DbIlDH70.js.map +1 -0
- package/dist/{UpgradeDriveModal-077wPR2N.js → UpgradeDriveModal-_8t9slxQ.js} +3 -3
- package/dist/{UpgradeDriveModal-077wPR2N.js.map → UpgradeDriveModal-_8t9slxQ.js.map} +1 -1
- package/dist/{app-loader-VArdOK2J.js → app-loader-Cl4p5jBL.js} +256 -256
- package/dist/{app-loader-VArdOK2J.js.map → app-loader-Cl4p5jBL.js.map} +1 -1
- package/dist/app-loader-x1CpaZj-.js +4 -0
- package/dist/build-info-BIPBq41n.js +28 -0
- package/dist/build-info-BIPBq41n.js.map +1 -0
- package/dist/components-DYfZ0Q9B.js +4 -0
- package/dist/{connect.config-XXdN7RFy.js → connect.config-ZWoeCSit.js} +5 -5
- package/dist/connect.config-ZWoeCSit.js.map +1 -0
- package/dist/{connection-state-DTSv8MDQ.js → connection-state-CedmAXd-.js} +4 -4
- package/dist/{connection-state-DTSv8MDQ.js.map → connection-state-CedmAXd-.js.map} +1 -1
- package/dist/{cookie-banner-BJrG_u38.js → cookie-banner-CTxjAKt4.js} +5 -5
- package/dist/{cookie-banner-BJrG_u38.js.map → cookie-banner-CTxjAKt4.js.map} +1 -1
- package/dist/{i18n-CWyz5j1Z.js → i18n-CWO0vYVd.js} +3 -5
- package/dist/{i18n-CWyz5j1Z.js.map → i18n-CWO0vYVd.js.map} +1 -1
- package/dist/load-D_5q8fky.js +131 -0
- package/dist/load-D_5q8fky.js.map +1 -0
- package/dist/main.js +1 -1
- package/dist/{pglite-seed-DQgqjlQu.js → pglite-seed-B7bWZwVg.js} +4 -4
- package/dist/{pglite-seed-DQgqjlQu.js.map → pglite-seed-B7bWZwVg.js.map} +1 -1
- package/dist/{preferences-store-C-u8PIwU.js → preferences-store-CUBzmf5F.js} +4 -4
- package/dist/{preferences-store-C-u8PIwU.js.map → preferences-store-CUBzmf5F.js.map} +1 -1
- package/dist/{pwa-manifest-link-CG8UajMz.js → pwa-manifest-link-DIgOSo2Q.js} +3 -3
- package/dist/{pwa-manifest-link-CG8UajMz.js.map → pwa-manifest-link-DIgOSo2Q.js.map} +1 -1
- package/dist/{reactor-C8E2rx64.js → reactor-Dp-5PAKA.js} +8 -8
- package/dist/{reactor-C8E2rx64.js.map → reactor-Dp-5PAKA.js.map} +1 -1
- package/dist/{registerServiceWorker-D98IrUws.js → registerServiceWorker-lSZgPKiH.js} +5 -5
- package/dist/{registerServiceWorker-D98IrUws.js.map → registerServiceWorker-lSZgPKiH.js.map} +1 -1
- package/dist/sentry-QXKgQmr2.js +15 -0
- package/dist/sentry-QXKgQmr2.js.map +1 -0
- package/dist/start-connect.js +1 -1
- package/dist/{toast-DtfTKZND.js → toast-BXIGd4Eb.js} +3 -3
- package/dist/{toast-DtfTKZND.js.map → toast-BXIGd4Eb.js.map} +1 -1
- package/dist/{use-renown-login-DtCtMWCo.js → use-renown-login-Cf3va6u_.js} +3 -3
- package/dist/{use-renown-login-DtCtMWCo.js.map → use-renown-login-Cf3va6u_.js.map} +1 -1
- package/dist/{useRegistryPackages-dCWW6oNq.js → useRegistryPackages-DMhCvTWq.js} +3 -3
- package/dist/{useRegistryPackages-dCWW6oNq.js.map → useRegistryPackages-DMhCvTWq.js.map} +1 -1
- package/package.json +12 -12
- package/dist/SettingsModal-DzW3OIrB.js.map +0 -1
- package/dist/app-loader-BLbUg8o4.js +0 -4
- package/dist/build-info-1EmBSRGA.js +0 -18
- package/dist/build-info-1EmBSRGA.js.map +0 -1
- package/dist/components-BmUSYnlz.js +0 -5
- package/dist/connect.config-XXdN7RFy.js.map +0 -1
- package/dist/load-RSUO_fUw.js +0 -100
- package/dist/load-RSUO_fUw.js.map +0 -1
- package/dist/package-C3Jxu89p.js +0 -133
- package/dist/package-C3Jxu89p.js.map +0 -1
- package/dist/reload-connect-toast-BzHqUfbu.js +0 -30
- package/dist/reload-connect-toast-BzHqUfbu.js.map +0 -1
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f20d7330-c3fe-5c88-baef-ea4af0179c28")}catch(e){}}();
|
|
3
3
|
import { n as getRuntimeConfig } from "./runtime-config-DL3QjcfM.js";
|
|
4
4
|
import { c as idbError } from "./pglite-major-B39aOEiE.js";
|
|
5
5
|
import { n as cloneFileData, r as migrateIdb } from "./pglite-migrate-core-Boxqqx-c.js";
|
|
6
|
-
import { a as defaultPHDocumentEditorConfig, i as defaultPHAppConfig, r as connectConfig } from "./connect.config-
|
|
7
|
-
import { f as PRIMARY_IDB_NAMES, r as subscribeWorkerConnection, s as getCachedMigrationMajor, t as getWorkerConnectionStatus, u as subscribeMigrationMajor } from "./connection-state-
|
|
8
|
-
import { n as serviceWorkerManager, r as subscribeServiceWorkerUpdate, t as getServiceWorkerUpdateAvailable } from "./registerServiceWorker-
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { t as useOpenRenownLogin } from "./use-renown-login-
|
|
6
|
+
import { a as defaultPHDocumentEditorConfig, i as defaultPHAppConfig, r as connectConfig } from "./connect.config-ZWoeCSit.js";
|
|
7
|
+
import { f as PRIMARY_IDB_NAMES, r as subscribeWorkerConnection, s as getCachedMigrationMajor, t as getWorkerConnectionStatus, u as subscribeMigrationMajor } from "./connection-state-CedmAXd-.js";
|
|
8
|
+
import { n as serviceWorkerManager, r as subscribeServiceWorkerUpdate, t as getServiceWorkerUpdateAvailable } from "./registerServiceWorker-lSZgPKiH.js";
|
|
9
|
+
import { t as setSentryModule } from "./sentry-QXKgQmr2.js";
|
|
10
|
+
import { i as useIsEmbedded, r as getIsEmbedded, t as useAcceptedCookies } from "./preferences-store-CUBzmf5F.js";
|
|
11
|
+
import { n as dismissToast, r as toast, t as ToastContainer } from "./toast-BXIGd4Eb.js";
|
|
12
|
+
import { t as useOpenRenownLogin } from "./use-renown-login-Cf3va6u_.js";
|
|
13
13
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
14
14
|
import { useTranslation } from "react-i18next";
|
|
15
15
|
import React, { StrictMode, Suspense, createElement, lazy, useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
16
16
|
import { DriveCollectionId, RenownWalletProvider, addFileWithProgress, getRevisionFromDate, initTheme, logout, setPHAppConfig, setPHDocumentEditorConfig, setRevisionHistoryVisible, setSelectedDrive, setSelectedNode, showPHModal, useAppModuleById, useConnectionStates, useDefaultAppModule, useDocumentById, useDocumentModelModuleById, useDocumentOperations, useDocumentVersionStatus, useDrives, useEditorModuleById, useEditorPreloader, useFallbackEditorModule, useIsAddDriveEnabled, useNodeParentFolderById, usePHModal, usePackageDiscoveryService, useReactorClientModule, useRevisionHistoryVisible, useSelectedDocument, useSelectedDocumentId, useSelectedDriveSafe, useSelectedFolder, useSelectedTimelineItem, useSyncList, useTheme, useUser, useVetraPackageManager, useVetraPackages } from "@powerhousedao/reactor-browser";
|
|
17
17
|
import { childLogger } from "document-model";
|
|
18
18
|
import { ConnectSidebar, ConnectTooltipProvider, DefaultEditorLoader, DriveAuthGate, DropZoneWrapper, HomeScreen, HomeScreenAddDriveItem, HomeScreenItem, LogoAnimation, PackageInstallModal, RevisionHistory, SidebarAddDriveItem, SidebarItem, UploadFileListContainer, formatFileSize, mapProgressStageToStatus, useEns } from "@powerhousedao/design-system/connect";
|
|
19
|
-
import { z } from "zod";
|
|
20
19
|
import { Outlet, RouterProvider, createBrowserRouter, createRoutesFromChildren, matchRoutes, useLocation, useNavigationType } from "react-router-dom";
|
|
21
20
|
import { useHotkeys } from "react-hotkeys-hook";
|
|
22
21
|
import { Icon, Modal, PowerhouseButton } from "@powerhousedao/design-system";
|
|
23
22
|
import { ErrorBoundary } from "react-error-boundary";
|
|
23
|
+
import { z } from "zod";
|
|
24
24
|
import { GenericDriveExplorer } from "@powerhousedao/powerhouse-vetra-packages/editors";
|
|
25
25
|
import { createReactorMcpProvider } from "@powerhousedao/reactor-mcp/tools";
|
|
26
26
|
import { ReactorChatFab } from "@powerhousedao/reactor-browser/ai";
|
|
@@ -393,230 +393,6 @@ async function migrateAllIfNeeded() {
|
|
|
393
393
|
});
|
|
394
394
|
}
|
|
395
395
|
//#endregion
|
|
396
|
-
//#region src/services/openpanel/buffer.ts
|
|
397
|
-
const buffer = [];
|
|
398
|
-
let errorHandler;
|
|
399
|
-
function defaultOnError(err) {
|
|
400
|
-
console.warn("[useOpenPanelAnalytics] track failed:", err);
|
|
401
|
-
}
|
|
402
|
-
/**
|
|
403
|
-
* Forward a single event to the active client, swallowing any throw.
|
|
404
|
-
*
|
|
405
|
-
* The outer try/catch handles synchronous throws from `client.track`; the
|
|
406
|
-
* inner `.catch()` handles rejected promises. Both are needed because
|
|
407
|
-
* `Promise.resolve(x).catch()` cannot catch a throw from evaluating `x`.
|
|
408
|
-
*/
|
|
409
|
-
function forward(client, name, props) {
|
|
410
|
-
try {
|
|
411
|
-
Promise.resolve(client.track(name, props)).catch((err) => (errorHandler ?? defaultOnError)(err));
|
|
412
|
-
} catch (err) {
|
|
413
|
-
(errorHandler ?? defaultOnError)(err);
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
/**
|
|
417
|
-
* Drain the pre-init buffer in FIFO order through `client.track`, then forward
|
|
418
|
-
* subsequent events directly. Called once from `getOpenPanelClient()`.
|
|
419
|
-
*/
|
|
420
|
-
function drainOpenPanelBuffer(client, onError) {
|
|
421
|
-
errorHandler = onError;
|
|
422
|
-
const pending = buffer.splice(0, buffer.length);
|
|
423
|
-
for (const [name, props] of pending) forward(client, name, props);
|
|
424
|
-
}
|
|
425
|
-
/**
|
|
426
|
-
* Clear the buffer and reset the active client. Buffered pre-consent events
|
|
427
|
-
* are discarded so they are not replayed if the user later re-accepts.
|
|
428
|
-
*/
|
|
429
|
-
function clearOpenPanelBuffer() {
|
|
430
|
-
buffer.length = 0;
|
|
431
|
-
errorHandler = void 0;
|
|
432
|
-
}
|
|
433
|
-
//#endregion
|
|
434
|
-
//#region src/services/openpanel/client.ts
|
|
435
|
-
let client;
|
|
436
|
-
/**
|
|
437
|
-
* Returns the cached `OpenPanel` singleton, building it on first call.
|
|
438
|
-
*
|
|
439
|
-
* When `config.clientId` is empty it returns `undefined` without importing
|
|
440
|
-
* `@openpanel/web`, so the bundler can tree-shake the SDK out of production.
|
|
441
|
-
*/
|
|
442
|
-
async function getOpenPanelClient(config) {
|
|
443
|
-
if (!config.clientId) return;
|
|
444
|
-
if (client) return client;
|
|
445
|
-
const { OpenPanel: OpenPanelClass } = await import("@openpanel/web");
|
|
446
|
-
client = new OpenPanelClass({
|
|
447
|
-
clientId: config.clientId,
|
|
448
|
-
...config.apiUrl ? { apiUrl: config.apiUrl } : {},
|
|
449
|
-
trackScreenViews: true,
|
|
450
|
-
trackOutgoingLinks: true
|
|
451
|
-
});
|
|
452
|
-
client.setGlobalProperties({ app: "connect" });
|
|
453
|
-
drainOpenPanelBuffer(client);
|
|
454
|
-
return client;
|
|
455
|
-
}
|
|
456
|
-
/**
|
|
457
|
-
* Clears the cached singleton and the pre-init buffer. Call on consent
|
|
458
|
-
* revocation or during tests; buffered events are discarded, not replayed.
|
|
459
|
-
*/
|
|
460
|
-
function resetOpenPanelClient() {
|
|
461
|
-
client = void 0;
|
|
462
|
-
clearOpenPanelBuffer();
|
|
463
|
-
}
|
|
464
|
-
//#endregion
|
|
465
|
-
//#region src/services/openpanel/events.json
|
|
466
|
-
var events_default = [
|
|
467
|
-
{
|
|
468
|
-
"documentType": "powerhouse/document-drive",
|
|
469
|
-
"actionTypes": [
|
|
470
|
-
"ADD_FOLDER",
|
|
471
|
-
"DELETE_NODE",
|
|
472
|
-
"ADD_FILE",
|
|
473
|
-
"UPDATE_FILE",
|
|
474
|
-
"COPY_NODE",
|
|
475
|
-
"MOVE_NODE",
|
|
476
|
-
"SET_DRIVE_NAME",
|
|
477
|
-
"SET_DRIVE_ICON"
|
|
478
|
-
]
|
|
479
|
-
},
|
|
480
|
-
{
|
|
481
|
-
"documentType": "powerhouse/document-model",
|
|
482
|
-
"actionTypes": [
|
|
483
|
-
"SET_MODEL_NAME",
|
|
484
|
-
"SET_MODEL_ID",
|
|
485
|
-
"ADD_MODULE",
|
|
486
|
-
"DELETE_MODULE",
|
|
487
|
-
"ADD_OPERATION",
|
|
488
|
-
"DELETE_OPERATION"
|
|
489
|
-
]
|
|
490
|
-
},
|
|
491
|
-
{
|
|
492
|
-
"documentType": "powerhouse/reactor-drive",
|
|
493
|
-
"actionTypes": [
|
|
494
|
-
"ADD_FOLDER",
|
|
495
|
-
"REMOVE_FOLDER",
|
|
496
|
-
"UPDATE_FOLDER"
|
|
497
|
-
]
|
|
498
|
-
}
|
|
499
|
-
];
|
|
500
|
-
//#endregion
|
|
501
|
-
//#region src/services/openpanel/events.ts
|
|
502
|
-
const EventMappingSchema = z.object({
|
|
503
|
-
documentType: z.string().min(1),
|
|
504
|
-
actionTypes: z.array(z.string().min(1)).min(1),
|
|
505
|
-
alias: z.string().optional()
|
|
506
|
-
}).strict();
|
|
507
|
-
const EventMappingsSchema = z.array(EventMappingSchema).readonly();
|
|
508
|
-
/**
|
|
509
|
-
* Parses and validates the event mapping table, returning the validated array
|
|
510
|
-
* and an O(1) lookup map. Accepts a `raw` override for tests. Throws on zod
|
|
511
|
-
* failures and on duplicate `(documentType, actionType)` pairs.
|
|
512
|
-
*/
|
|
513
|
-
function loadEvents(raw = events_default) {
|
|
514
|
-
const result = EventMappingsSchema.safeParse(raw);
|
|
515
|
-
if (!result.success) throw new Error(`Invalid OpenPanel events.json: ${result.error.message}`);
|
|
516
|
-
const mappings = result.data;
|
|
517
|
-
const lookupMap = /* @__PURE__ */ new Map();
|
|
518
|
-
for (const mapping of mappings) {
|
|
519
|
-
let inner = lookupMap.get(mapping.documentType);
|
|
520
|
-
if (!inner) {
|
|
521
|
-
inner = /* @__PURE__ */ new Map();
|
|
522
|
-
lookupMap.set(mapping.documentType, inner);
|
|
523
|
-
}
|
|
524
|
-
for (const actionType of mapping.actionTypes) {
|
|
525
|
-
if (inner.has(actionType)) throw new Error(`Duplicate OpenPanel event mapping for ${mapping.documentType}/${actionType}`);
|
|
526
|
-
inner.set(actionType, mapping);
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
return {
|
|
530
|
-
mappings,
|
|
531
|
-
lookupMap
|
|
532
|
-
};
|
|
533
|
-
}
|
|
534
|
-
const { mappings: defaultMappings, lookupMap: defaultLookupMap } = loadEvents();
|
|
535
|
-
/** Validated mapping array from the bundled events.json. */
|
|
536
|
-
const eventMappings = defaultMappings;
|
|
537
|
-
/** O(1) lookup map: documentType → actionType → mapping. */
|
|
538
|
-
const eventLookupMap = defaultLookupMap;
|
|
539
|
-
/**
|
|
540
|
-
* Normalizes a document type into a safe event-name segment: lowercased, `/`
|
|
541
|
-
* replaced with `.`, and any character outside `[a-z0-9._-]` stripped.
|
|
542
|
-
* e.g. `powerhouse/document-drive` → `powerhouse.document-drive`.
|
|
543
|
-
*/
|
|
544
|
-
function normalize(documentType) {
|
|
545
|
-
return documentType.toLowerCase().replace(/\//g, ".").replace(/[^a-z0-9._-]/g, "");
|
|
546
|
-
}
|
|
547
|
-
/**
|
|
548
|
-
* Derives the OpenPanel event name: `mapping.alias` when present, otherwise
|
|
549
|
-
* `${normalize(documentType)}.${actionType.toLowerCase()}`.
|
|
550
|
-
*/
|
|
551
|
-
function deriveEventName(mapping, op) {
|
|
552
|
-
if (mapping.alias) return mapping.alias;
|
|
553
|
-
return `${normalize(op.context.documentType)}.${op.operation.action.type.toLowerCase()}`;
|
|
554
|
-
}
|
|
555
|
-
/**
|
|
556
|
-
* Builds the default properties attached to every OpenPanel event. The `app`
|
|
557
|
-
* property is stamped globally by the client, not here.
|
|
558
|
-
*/
|
|
559
|
-
function buildDefaultProperties(op) {
|
|
560
|
-
return {
|
|
561
|
-
documentType: op.context.documentType,
|
|
562
|
-
actionType: op.operation.action.type,
|
|
563
|
-
documentId: op.context.documentId,
|
|
564
|
-
scope: op.context.scope,
|
|
565
|
-
branch: op.context.branch
|
|
566
|
-
};
|
|
567
|
-
}
|
|
568
|
-
//#endregion
|
|
569
|
-
//#region src/services/openpanel/processor.ts
|
|
570
|
-
/**
|
|
571
|
-
* Read-only reactor `IProcessor` that translates matching document operations
|
|
572
|
-
* into OpenPanel analytics events. Operations whose `(documentType, actionType)`
|
|
573
|
-
* pair is absent from the lookup map are skipped; per-operation errors are
|
|
574
|
-
* routed to `onError` and never thrown back to the manager.
|
|
575
|
-
*/
|
|
576
|
-
var OpenPanelProcessor = class {
|
|
577
|
-
constructor(client, lookupMap, onError = (err) => console.warn("[OpenPanelProcessor] Error tracking event:", err)) {
|
|
578
|
-
this.client = client;
|
|
579
|
-
this.lookupMap = lookupMap;
|
|
580
|
-
this.onError = onError;
|
|
581
|
-
}
|
|
582
|
-
async onOperations(operations) {
|
|
583
|
-
for (const op of operations) {
|
|
584
|
-
const inner = this.lookupMap.get(op.context.documentType);
|
|
585
|
-
if (!inner) continue;
|
|
586
|
-
const mapping = inner.get(op.operation.action.type);
|
|
587
|
-
if (!mapping) continue;
|
|
588
|
-
const name = deriveEventName(mapping, op);
|
|
589
|
-
const payload = buildDefaultProperties(op);
|
|
590
|
-
try {
|
|
591
|
-
await this.client.track(name, payload);
|
|
592
|
-
} catch (err) {
|
|
593
|
-
this.onError(err, op);
|
|
594
|
-
}
|
|
595
|
-
}
|
|
596
|
-
}
|
|
597
|
-
onDisconnect() {
|
|
598
|
-
this.client.flush?.();
|
|
599
|
-
return Promise.resolve();
|
|
600
|
-
}
|
|
601
|
-
};
|
|
602
|
-
//#endregion
|
|
603
|
-
//#region src/services/openpanel/factory.ts
|
|
604
|
-
/**
|
|
605
|
-
* Returns a `ProcessorFactory` that, for each drive, creates a single
|
|
606
|
-
* `OpenPanelProcessor` record whose `filter.documentType` is the union of all
|
|
607
|
-
* document types present in the event mapping table.
|
|
608
|
-
*/
|
|
609
|
-
function createOpenPanelProcessorFactory(config) {
|
|
610
|
-
return function openPanelProcessorFactory(_driveHeader) {
|
|
611
|
-
const documentType = Array.from(config.events.lookupMap.keys());
|
|
612
|
-
return [{
|
|
613
|
-
processor: new OpenPanelProcessor(config.client, config.events.lookupMap, config.onError),
|
|
614
|
-
filter: { documentType },
|
|
615
|
-
startFrom: config.startFrom ?? "current"
|
|
616
|
-
}];
|
|
617
|
-
};
|
|
618
|
-
}
|
|
619
|
-
//#endregion
|
|
620
396
|
//#region src/hooks/useFailedInstallations.ts
|
|
621
397
|
const emptyArray$1 = [];
|
|
622
398
|
function useFailedInstallations() {
|
|
@@ -687,6 +463,44 @@ function useInitSentry() {
|
|
|
687
463
|
}, [analytics]);
|
|
688
464
|
}
|
|
689
465
|
//#endregion
|
|
466
|
+
//#region src/services/openpanel/buffer.ts
|
|
467
|
+
const buffer = [];
|
|
468
|
+
let errorHandler;
|
|
469
|
+
function defaultOnError(err) {
|
|
470
|
+
console.warn("[useOpenPanelAnalytics] track failed:", err);
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Forward a single event to the active client, swallowing any throw.
|
|
474
|
+
*
|
|
475
|
+
* The outer try/catch handles synchronous throws from `client.track`; the
|
|
476
|
+
* inner `.catch()` handles rejected promises. Both are needed because
|
|
477
|
+
* `Promise.resolve(x).catch()` cannot catch a throw from evaluating `x`.
|
|
478
|
+
*/
|
|
479
|
+
function forward(client, name, props) {
|
|
480
|
+
try {
|
|
481
|
+
Promise.resolve(client.track(name, props)).catch((err) => (errorHandler ?? defaultOnError)(err));
|
|
482
|
+
} catch (err) {
|
|
483
|
+
(errorHandler ?? defaultOnError)(err);
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Drain the pre-init buffer in FIFO order through `client.track`, then forward
|
|
488
|
+
* subsequent events directly. Called once from `getOpenPanelClient()`.
|
|
489
|
+
*/
|
|
490
|
+
function drainOpenPanelBuffer(client, onError) {
|
|
491
|
+
errorHandler = onError;
|
|
492
|
+
const pending = buffer.splice(0, buffer.length);
|
|
493
|
+
for (const [name, props] of pending) forward(client, name, props);
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Clear the buffer and reset the active client. Buffered pre-consent events
|
|
497
|
+
* are discarded so they are not replayed if the user later re-accepts.
|
|
498
|
+
*/
|
|
499
|
+
function clearOpenPanelBuffer() {
|
|
500
|
+
buffer.length = 0;
|
|
501
|
+
errorHandler = void 0;
|
|
502
|
+
}
|
|
503
|
+
//#endregion
|
|
690
504
|
//#region src/hooks/usePendingInstallations.ts
|
|
691
505
|
const emptyArray = [];
|
|
692
506
|
function usePendingInstallations() {
|
|
@@ -966,6 +780,192 @@ const Analytics = () => {
|
|
|
966
780
|
return null;
|
|
967
781
|
};
|
|
968
782
|
//#endregion
|
|
783
|
+
//#region src/services/openpanel/client.ts
|
|
784
|
+
let client;
|
|
785
|
+
/**
|
|
786
|
+
* Returns the cached `OpenPanel` singleton, building it on first call.
|
|
787
|
+
*
|
|
788
|
+
* When `config.clientId` is empty it returns `undefined` without importing
|
|
789
|
+
* `@openpanel/web`, so the bundler can tree-shake the SDK out of production.
|
|
790
|
+
*/
|
|
791
|
+
async function getOpenPanelClient(config) {
|
|
792
|
+
if (!config.clientId) return;
|
|
793
|
+
if (client) return client;
|
|
794
|
+
const { OpenPanel: OpenPanelClass } = await import("@openpanel/web");
|
|
795
|
+
client = new OpenPanelClass({
|
|
796
|
+
clientId: config.clientId,
|
|
797
|
+
...config.apiUrl ? { apiUrl: config.apiUrl } : {},
|
|
798
|
+
trackScreenViews: true,
|
|
799
|
+
trackOutgoingLinks: true
|
|
800
|
+
});
|
|
801
|
+
client.setGlobalProperties({ app: "connect" });
|
|
802
|
+
drainOpenPanelBuffer(client);
|
|
803
|
+
return client;
|
|
804
|
+
}
|
|
805
|
+
/**
|
|
806
|
+
* Clears the cached singleton and the pre-init buffer. Call on consent
|
|
807
|
+
* revocation or during tests; buffered events are discarded, not replayed.
|
|
808
|
+
*/
|
|
809
|
+
function resetOpenPanelClient() {
|
|
810
|
+
client = void 0;
|
|
811
|
+
clearOpenPanelBuffer();
|
|
812
|
+
}
|
|
813
|
+
//#endregion
|
|
814
|
+
//#region src/services/openpanel/events.json
|
|
815
|
+
var events_default = [
|
|
816
|
+
{
|
|
817
|
+
"documentType": "powerhouse/document-drive",
|
|
818
|
+
"actionTypes": [
|
|
819
|
+
"ADD_FOLDER",
|
|
820
|
+
"DELETE_NODE",
|
|
821
|
+
"ADD_FILE",
|
|
822
|
+
"UPDATE_FILE",
|
|
823
|
+
"COPY_NODE",
|
|
824
|
+
"MOVE_NODE",
|
|
825
|
+
"SET_DRIVE_NAME",
|
|
826
|
+
"SET_DRIVE_ICON"
|
|
827
|
+
]
|
|
828
|
+
},
|
|
829
|
+
{
|
|
830
|
+
"documentType": "powerhouse/document-model",
|
|
831
|
+
"actionTypes": [
|
|
832
|
+
"SET_MODEL_NAME",
|
|
833
|
+
"SET_MODEL_ID",
|
|
834
|
+
"ADD_MODULE",
|
|
835
|
+
"DELETE_MODULE",
|
|
836
|
+
"ADD_OPERATION",
|
|
837
|
+
"DELETE_OPERATION"
|
|
838
|
+
]
|
|
839
|
+
},
|
|
840
|
+
{
|
|
841
|
+
"documentType": "powerhouse/reactor-drive",
|
|
842
|
+
"actionTypes": [
|
|
843
|
+
"ADD_FOLDER",
|
|
844
|
+
"REMOVE_FOLDER",
|
|
845
|
+
"UPDATE_FOLDER"
|
|
846
|
+
]
|
|
847
|
+
}
|
|
848
|
+
];
|
|
849
|
+
//#endregion
|
|
850
|
+
//#region src/services/openpanel/events.ts
|
|
851
|
+
const EventMappingSchema = z.object({
|
|
852
|
+
documentType: z.string().min(1),
|
|
853
|
+
actionTypes: z.array(z.string().min(1)).min(1),
|
|
854
|
+
alias: z.string().optional()
|
|
855
|
+
}).strict();
|
|
856
|
+
const EventMappingsSchema = z.array(EventMappingSchema).readonly();
|
|
857
|
+
/**
|
|
858
|
+
* Parses and validates the event mapping table, returning the validated array
|
|
859
|
+
* and an O(1) lookup map. Accepts a `raw` override for tests. Throws on zod
|
|
860
|
+
* failures and on duplicate `(documentType, actionType)` pairs.
|
|
861
|
+
*/
|
|
862
|
+
function loadEvents(raw = events_default) {
|
|
863
|
+
const result = EventMappingsSchema.safeParse(raw);
|
|
864
|
+
if (!result.success) throw new Error(`Invalid OpenPanel events.json: ${result.error.message}`);
|
|
865
|
+
const mappings = result.data;
|
|
866
|
+
const lookupMap = /* @__PURE__ */ new Map();
|
|
867
|
+
for (const mapping of mappings) {
|
|
868
|
+
let inner = lookupMap.get(mapping.documentType);
|
|
869
|
+
if (!inner) {
|
|
870
|
+
inner = /* @__PURE__ */ new Map();
|
|
871
|
+
lookupMap.set(mapping.documentType, inner);
|
|
872
|
+
}
|
|
873
|
+
for (const actionType of mapping.actionTypes) {
|
|
874
|
+
if (inner.has(actionType)) throw new Error(`Duplicate OpenPanel event mapping for ${mapping.documentType}/${actionType}`);
|
|
875
|
+
inner.set(actionType, mapping);
|
|
876
|
+
}
|
|
877
|
+
}
|
|
878
|
+
return {
|
|
879
|
+
mappings,
|
|
880
|
+
lookupMap
|
|
881
|
+
};
|
|
882
|
+
}
|
|
883
|
+
const { mappings: defaultMappings, lookupMap: defaultLookupMap } = loadEvents();
|
|
884
|
+
/** Validated mapping array from the bundled events.json. */
|
|
885
|
+
const eventMappings = defaultMappings;
|
|
886
|
+
/** O(1) lookup map: documentType → actionType → mapping. */
|
|
887
|
+
const eventLookupMap = defaultLookupMap;
|
|
888
|
+
/**
|
|
889
|
+
* Normalizes a document type into a safe event-name segment: lowercased, `/`
|
|
890
|
+
* replaced with `.`, and any character outside `[a-z0-9._-]` stripped.
|
|
891
|
+
* e.g. `powerhouse/document-drive` → `powerhouse.document-drive`.
|
|
892
|
+
*/
|
|
893
|
+
function normalize(documentType) {
|
|
894
|
+
return documentType.toLowerCase().replace(/\//g, ".").replace(/[^a-z0-9._-]/g, "");
|
|
895
|
+
}
|
|
896
|
+
/**
|
|
897
|
+
* Derives the OpenPanel event name: `mapping.alias` when present, otherwise
|
|
898
|
+
* `${normalize(documentType)}.${actionType.toLowerCase()}`.
|
|
899
|
+
*/
|
|
900
|
+
function deriveEventName(mapping, op) {
|
|
901
|
+
if (mapping.alias) return mapping.alias;
|
|
902
|
+
return `${normalize(op.context.documentType)}.${op.operation.action.type.toLowerCase()}`;
|
|
903
|
+
}
|
|
904
|
+
/**
|
|
905
|
+
* Builds the default properties attached to every OpenPanel event. The `app`
|
|
906
|
+
* property is stamped globally by the client, not here.
|
|
907
|
+
*/
|
|
908
|
+
function buildDefaultProperties(op) {
|
|
909
|
+
return {
|
|
910
|
+
documentType: op.context.documentType,
|
|
911
|
+
actionType: op.operation.action.type,
|
|
912
|
+
documentId: op.context.documentId,
|
|
913
|
+
scope: op.context.scope,
|
|
914
|
+
branch: op.context.branch
|
|
915
|
+
};
|
|
916
|
+
}
|
|
917
|
+
//#endregion
|
|
918
|
+
//#region src/services/openpanel/processor.ts
|
|
919
|
+
/**
|
|
920
|
+
* Read-only reactor `IProcessor` that translates matching document operations
|
|
921
|
+
* into OpenPanel analytics events. Operations whose `(documentType, actionType)`
|
|
922
|
+
* pair is absent from the lookup map are skipped; per-operation errors are
|
|
923
|
+
* routed to `onError` and never thrown back to the manager.
|
|
924
|
+
*/
|
|
925
|
+
var OpenPanelProcessor = class {
|
|
926
|
+
constructor(client, lookupMap, onError = (err) => console.warn("[OpenPanelProcessor] Error tracking event:", err)) {
|
|
927
|
+
this.client = client;
|
|
928
|
+
this.lookupMap = lookupMap;
|
|
929
|
+
this.onError = onError;
|
|
930
|
+
}
|
|
931
|
+
async onOperations(operations) {
|
|
932
|
+
for (const op of operations) {
|
|
933
|
+
const inner = this.lookupMap.get(op.context.documentType);
|
|
934
|
+
if (!inner) continue;
|
|
935
|
+
const mapping = inner.get(op.operation.action.type);
|
|
936
|
+
if (!mapping) continue;
|
|
937
|
+
const name = deriveEventName(mapping, op);
|
|
938
|
+
const payload = buildDefaultProperties(op);
|
|
939
|
+
try {
|
|
940
|
+
await this.client.track(name, payload);
|
|
941
|
+
} catch (err) {
|
|
942
|
+
this.onError(err, op);
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
onDisconnect() {
|
|
947
|
+
this.client.flush?.();
|
|
948
|
+
return Promise.resolve();
|
|
949
|
+
}
|
|
950
|
+
};
|
|
951
|
+
//#endregion
|
|
952
|
+
//#region src/services/openpanel/factory.ts
|
|
953
|
+
/**
|
|
954
|
+
* Returns a `ProcessorFactory` that, for each drive, creates a single
|
|
955
|
+
* `OpenPanelProcessor` record whose `filter.documentType` is the union of all
|
|
956
|
+
* document types present in the event mapping table.
|
|
957
|
+
*/
|
|
958
|
+
function createOpenPanelProcessorFactory(config) {
|
|
959
|
+
return function openPanelProcessorFactory(_driveHeader) {
|
|
960
|
+
const documentType = Array.from(config.events.lookupMap.keys());
|
|
961
|
+
return [{
|
|
962
|
+
processor: new OpenPanelProcessor(config.client, config.events.lookupMap, config.onError),
|
|
963
|
+
filter: { documentType },
|
|
964
|
+
startFrom: config.startFrom ?? "current"
|
|
965
|
+
}];
|
|
966
|
+
};
|
|
967
|
+
}
|
|
968
|
+
//#endregion
|
|
969
969
|
//#region src/components/openpanel-traits.ts
|
|
970
970
|
/**
|
|
971
971
|
* Builds the OpenPanel identity traits from a renown User.
|
|
@@ -2040,20 +2040,20 @@ const MigrationBanner = () => {
|
|
|
2040
2040
|
};
|
|
2041
2041
|
//#endregion
|
|
2042
2042
|
//#region src/components/modal/modals-container.tsx
|
|
2043
|
-
const AddDriveModal$1 = lazy(() => import("./AddDriveModal-
|
|
2044
|
-
const ClearStorageModal = lazy(() => import("./ClearStorageModal-
|
|
2045
|
-
const CookiesPolicyModal = lazy(() => import("./CookiesPolicyModal-
|
|
2046
|
-
const CreateDocumentModal$1 = lazy(() => import("./CreateDocumentModal-
|
|
2047
|
-
const DebugSettingsModal = lazy(() => import("./DebugSettingsModal-
|
|
2048
|
-
const DeleteDriveModal = lazy(() => import("./DeleteDriveModal-
|
|
2049
|
-
const DeleteItemModal = lazy(() => import("./DeleteItemModal-
|
|
2050
|
-
const DisclaimerModal = lazy(() => import("./DisclaimerModal-
|
|
2051
|
-
const DriveSettingsModal$1 = lazy(() => import("./DriveSettingsModal-
|
|
2052
|
-
const DownloadDocumentWithErrorsModal = lazy(() => import("./DownloadDocumentWithErrorsModal-
|
|
2053
|
-
const DocumentVersionUnsupportedModal = lazy(() => import("./DocumentVersionUnsupportedModal-
|
|
2054
|
-
const ConfirmDocumentUpgradeModal = lazy(() => import("./ConfirmDocumentUpgradeModal-
|
|
2055
|
-
const SettingsModal$1 = lazy(() => import("./SettingsModal-
|
|
2056
|
-
const UpgradeDriveModal = lazy(() => import("./UpgradeDriveModal-
|
|
2043
|
+
const AddDriveModal$1 = lazy(() => import("./AddDriveModal-Q-Ffh5XA.js").then((m) => ({ default: m.AddDriveModal })));
|
|
2044
|
+
const ClearStorageModal = lazy(() => import("./ClearStorageModal-rKAE3cvA.js").then((m) => ({ default: m.ClearStorageModal })));
|
|
2045
|
+
const CookiesPolicyModal = lazy(() => import("./CookiesPolicyModal-BpyPPyxS.js").then((m) => ({ default: m.CookiesPolicyModal })));
|
|
2046
|
+
const CreateDocumentModal$1 = lazy(() => import("./CreateDocumentModal-C45W8J0V.js").then((m) => ({ default: m.CreateDocumentModal })));
|
|
2047
|
+
const DebugSettingsModal = lazy(() => import("./DebugSettingsModal-f7mphH92.js").then((m) => ({ default: m.DebugSettingsModal })));
|
|
2048
|
+
const DeleteDriveModal = lazy(() => import("./DeleteDriveModal-Dug84t1j.js").then((m) => ({ default: m.DeleteDriveModal })));
|
|
2049
|
+
const DeleteItemModal = lazy(() => import("./DeleteItemModal-mMzy3V8o.js").then((m) => ({ default: m.DeleteItemModal })));
|
|
2050
|
+
const DisclaimerModal = lazy(() => import("./DisclaimerModal-DvpD5dPM.js").then((m) => ({ default: m.DisclaimerModal })));
|
|
2051
|
+
const DriveSettingsModal$1 = lazy(() => import("./DriveSettingsModal-C6-mRQiv.js").then((m) => ({ default: m.DriveSettingsModal })));
|
|
2052
|
+
const DownloadDocumentWithErrorsModal = lazy(() => import("./DownloadDocumentWithErrorsModal-IKl0ljQb.js").then((m) => ({ default: m.DownloadDocumentWithErrorsModal })));
|
|
2053
|
+
const DocumentVersionUnsupportedModal = lazy(() => import("./DocumentVersionUnsupportedModal-C3Q0V75l.js").then((m) => ({ default: m.DocumentVersionUnsupportedModal })));
|
|
2054
|
+
const ConfirmDocumentUpgradeModal = lazy(() => import("./ConfirmDocumentUpgradeModal-FUOhZsk7.js").then((m) => ({ default: m.ConfirmDocumentUpgradeModal })));
|
|
2055
|
+
const SettingsModal$1 = lazy(() => import("./SettingsModal-DbIlDH70.js").then((m) => ({ default: m.SettingsModal })));
|
|
2056
|
+
const UpgradeDriveModal = lazy(() => import("./UpgradeDriveModal-_8t9slxQ.js").then((m) => ({ default: m.UpgradeDriveModal })));
|
|
2057
2057
|
const modalComponents = {
|
|
2058
2058
|
addDrive: AddDriveModal$1,
|
|
2059
2059
|
clearStorage: ClearStorageModal,
|
|
@@ -2067,13 +2067,13 @@ const modalComponents = {
|
|
|
2067
2067
|
downloadDocumentWithErrors: DownloadDocumentWithErrorsModal,
|
|
2068
2068
|
documentVersionUnsupported: DocumentVersionUnsupportedModal,
|
|
2069
2069
|
confirmDocumentUpgrade: ConfirmDocumentUpgradeModal,
|
|
2070
|
-
inspector: lazy(() => import("./InspectorModal-
|
|
2070
|
+
inspector: lazy(() => import("./InspectorModal-C2usotS-.js").then((m) => ({ default: m.InspectorModal }))),
|
|
2071
2071
|
settings: SettingsModal$1,
|
|
2072
2072
|
upgradeDrive: UpgradeDriveModal,
|
|
2073
|
-
missingPackage: lazy(() => import("./MissingPackageModal-
|
|
2074
|
-
driveAuthRequired: lazy(() => import("./DriveAuthRequiredModal-
|
|
2075
|
-
openFileDocuments: lazy(() => import("./OpenFileDocumentsModal-
|
|
2076
|
-
login: lazy(() => import("./LoginModal-
|
|
2073
|
+
missingPackage: lazy(() => import("./MissingPackageModal-C7usWVHQ.js").then((m) => ({ default: m.ConnectMissingPackageModal }))),
|
|
2074
|
+
driveAuthRequired: lazy(() => import("./DriveAuthRequiredModal-Cw9eCAQ_.js").then((m) => ({ default: m.DriveAuthRequiredModal }))),
|
|
2075
|
+
openFileDocuments: lazy(() => import("./OpenFileDocumentsModal-e_TKIuB4.js").then((m) => ({ default: m.OpenFileDocumentsModal }))),
|
|
2076
|
+
login: lazy(() => import("./LoginModal-CybbOm3N.js").then((m) => ({ default: m.LoginModal })))
|
|
2077
2077
|
};
|
|
2078
2078
|
const ModalsContainer = lazy(() => {
|
|
2079
2079
|
return Promise.resolve({ default: () => {
|
|
@@ -2112,9 +2112,9 @@ const ServiceWorkerUpdatePrompt = () => {
|
|
|
2112
2112
|
};
|
|
2113
2113
|
//#endregion
|
|
2114
2114
|
//#region src/components/app-loader.tsx
|
|
2115
|
-
const CookieBanner$1 = lazy(() => import("./cookie-banner-
|
|
2115
|
+
const CookieBanner$1 = lazy(() => import("./cookie-banner-CTxjAKt4.js").then((m) => ({ default: m.CookieBanner })));
|
|
2116
2116
|
const AppLoader = (props) => {
|
|
2117
|
-
const Load = lazy(() => import("./load-
|
|
2117
|
+
const Load = lazy(() => import("./load-D_5q8fky.js").then((m) => m.loadComponent(props.localPackage)));
|
|
2118
2118
|
return /* @__PURE__ */ jsx(StrictMode, { children: /* @__PURE__ */ jsxs(ErrorBoundary$1, {
|
|
2119
2119
|
fallbackRender: (props) => /* @__PURE__ */ jsx(AppSkeleton, { children: /* @__PURE__ */ jsx(DetailedFallback, { ...props }) }),
|
|
2120
2120
|
resetKeys: [props.localPackage],
|
|
@@ -2150,5 +2150,5 @@ const AppLoader = (props) => {
|
|
|
2150
2150
|
//#endregion
|
|
2151
2151
|
export { pendingFileKey as _, DocumentEditor as a, AppContainer as c, OpenPanel as d, Analytics as f, getPendingImportFiles as g, clearPendingImportFiles as h, Root as i, EditorLoader as l, runOpenFileImports as m, Sidebar as n, DriveIcon as o, AppSkeleton as p, Router as r, App as s, AppLoader as t, DocumentEditorContainer as u, subscribePendingImportFiles as v };
|
|
2152
2152
|
|
|
2153
|
-
//# sourceMappingURL=app-loader-
|
|
2154
|
-
//# debugId=
|
|
2153
|
+
//# sourceMappingURL=app-loader-Cl4p5jBL.js.map
|
|
2154
|
+
//# debugId=f20d7330-c3fe-5c88-baef-ea4af0179c28
|