hammoc 1.8.4 → 1.9.0
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 +9 -6
- package/package.json +1 -1
- package/packages/client/dist/assets/MermaidViewer-B-LwclIl.js +7 -0
- package/packages/client/dist/assets/PdfViewer-C3Nymwn3.js +12 -0
- package/packages/client/dist/assets/PdfViewer-QCQEGvBO.css +1 -0
- package/packages/client/dist/assets/abnfDiagram-VRR7QNED-GfhY_hnV.js +1 -0
- package/packages/client/dist/assets/{agentExampleHighlight-Dws80em9.js → agentExampleHighlight-CyhVLy0_.js} +1 -1
- package/packages/client/dist/assets/arc-8nyjXGC3.js +1 -0
- package/packages/client/dist/assets/architectureDiagram-ZJ3FMSHR-B4onXLm4.js +36 -0
- package/packages/client/dist/assets/blockDiagram-677ZJIJ3-D0D6ncaN.js +132 -0
- package/packages/client/dist/assets/c4Diagram-LMCZKHZV-CE7Tip-_.js +10 -0
- package/packages/client/dist/assets/channel-CPjlbdOo.js +1 -0
- package/packages/client/dist/assets/chunk-2Q5K7J3B-4rW1da1Z.js +1 -0
- package/packages/client/dist/assets/chunk-32BRIVSS-JuzxS4QA.js +1 -0
- package/packages/client/dist/assets/chunk-5VM5RSS4-WRNf-xsi.js +15 -0
- package/packages/client/dist/assets/chunk-EX3LRPZG-BDWPlBKO.js +231 -0
- package/packages/client/dist/assets/chunk-JWPE2WC7-B8nCyQAc.js +1 -0
- package/packages/client/dist/assets/chunk-MOJQB5TN-7c-yriHe.js +88 -0
- package/packages/client/dist/assets/chunk-RYQCIY6F-LTDywRs7.js +1 -0
- package/packages/client/dist/assets/chunk-V7JOEXUC-DjVgQpjl.js +206 -0
- package/packages/client/dist/assets/chunk-VR4S4FIN-7jDdkUpx.js +1 -0
- package/packages/client/dist/assets/chunk-XXDRQBXY-ENKV2O8a.js +1 -0
- package/packages/client/dist/assets/classDiagram-OUVF2IWQ-C0PbC7Pi.js +1 -0
- package/packages/client/dist/assets/classDiagram-v2-EOCWNBFH-C0PbC7Pi.js +1 -0
- package/packages/client/dist/assets/{commandTokenHighlight-aR071CNy.js → commandTokenHighlight-DGP0RKx0.js} +1 -1
- package/packages/client/dist/assets/cose-bilkent-JH36ORCC-CQTNdQ-g.js +1 -0
- package/packages/client/dist/assets/cynefin-VYW2F7L2-BYlAJRcO.js +178 -0
- package/packages/client/dist/assets/cynefinDiagram-TSTJHNR4-7zyUTflT.js +62 -0
- package/packages/client/dist/assets/cytoscape.esm-DTSO7Bv0.js +331 -0
- package/packages/client/dist/assets/dagre-VKFMJZFB-DyZir42W.js +4 -0
- package/packages/client/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/packages/client/dist/assets/diagram-FQU43EPY-CmNAU8Nw.js +3 -0
- package/packages/client/dist/assets/diagram-G47NLZAW-B0EIk03o.js +24 -0
- package/packages/client/dist/assets/diagram-NH7WQ7WH-Dulv0f1N.js +24 -0
- package/packages/client/dist/assets/diagram-OA4YK3LP-DEEcMLgi.js +30 -0
- package/packages/client/dist/assets/diagram-WEI45ONY-ZYebAZ93.js +41 -0
- package/packages/client/dist/assets/ebnfDiagram-CCIWWBDH-DCHpt3qn.js +1 -0
- package/packages/client/dist/assets/erDiagram-Q63AITRT-B6T87-48.js +85 -0
- package/packages/client/dist/assets/flowDiagram-23GEKE2U-DAcW6mKJ.js +156 -0
- package/packages/client/dist/assets/ganttDiagram-NO4QXBWP-Ct_eFFcM.js +292 -0
- package/packages/client/dist/assets/gitGraphDiagram-IHSO6WYX-BGi8Fdm2.js +106 -0
- package/packages/client/dist/assets/graph-C9eacEi8.js +1 -0
- package/packages/client/dist/assets/index-CtMiUbMJ.js +1671 -0
- package/packages/client/dist/assets/index-hTu6ZG2N.js +2 -0
- package/packages/client/dist/assets/index-oBa2uNlv.css +32 -0
- package/packages/client/dist/assets/infoDiagram-FWYZ7A6U-CqvwbXJn.js +2 -0
- package/packages/client/dist/assets/init-Gi6I4Gst.js +1 -0
- package/packages/client/dist/assets/ishikawaDiagram-FXEZZL3T-CHhr5ioQ.js +70 -0
- package/packages/client/dist/assets/journeyDiagram-5HDEW3XC-d20NzZAd.js +139 -0
- package/packages/client/dist/assets/kanban-definition-HUTT4EX6-CHx3wOer.js +89 -0
- package/packages/client/dist/assets/katex-C5jXJg4s.js +257 -0
- package/packages/client/dist/assets/layout-DEXfKzaS.js +1 -0
- package/packages/client/dist/assets/linear-Cnp1E9M4.js +1 -0
- package/packages/client/dist/assets/map-Czzmt4hB.js +1 -0
- package/packages/client/dist/assets/mermaid.core-jAhLhPYr.js +314 -0
- package/packages/client/dist/assets/mindmap-definition-LN4V7U3C-zi30RPoJ.js +96 -0
- package/packages/client/dist/assets/ordinal-Cboi1Yqb.js +1 -0
- package/packages/client/dist/assets/pdf.worker.min-qwK7q_zL.mjs +28 -0
- package/packages/client/dist/assets/pegDiagram-2B236MQR-4gKLzTqu.js +1 -0
- package/packages/client/dist/assets/pieDiagram-ENE6RG2P-DRDhpjxP.js +39 -0
- package/packages/client/dist/assets/quadrantDiagram-ABIIQ3AL-FmTxRIlW.js +7 -0
- package/packages/client/dist/assets/railroadDiagram-RFXS5EU6-Bc-Q7iPs.js +1 -0
- package/packages/client/dist/assets/requirementDiagram-TGXJPOKE-D209tlqv.js +84 -0
- package/packages/client/dist/assets/sankeyDiagram-HTMAVEWB--I_lSbCV.js +40 -0
- package/packages/client/dist/assets/sequenceDiagram-DBY2YBRQ-Da5YJcDJ.js +162 -0
- package/packages/client/dist/assets/sizeCapture-X5ZJPWSS-DYuc-rzB.js +1 -0
- package/packages/client/dist/assets/{snippetTokenHighlight-ot6u3hW4.js → snippetTokenHighlight-qXHxvlCE.js} +1 -1
- package/packages/client/dist/assets/stateDiagram-2N3HPSRC-DoOeZoRP.js +1 -0
- package/packages/client/dist/assets/stateDiagram-v2-6OUMAXLB-DLkUyWs6.js +1 -0
- package/packages/client/dist/assets/swimlanes-5IMT3BWC-BcR7uCTf.js +2 -0
- package/packages/client/dist/assets/swimlanesDiagram-G3AALYLV-C0FDo-hf.js +8 -0
- package/packages/client/dist/assets/timeline-definition-FHXFAJF6-CLzKR6_i.js +120 -0
- package/packages/client/dist/assets/vennDiagram-L72KCM5P-TajEacPR.js +34 -0
- package/packages/client/dist/assets/wardleyDiagram-EHGQE667-DKvVEb3V.js +78 -0
- package/packages/client/dist/assets/xychartDiagram-FW5EYKEG-CaJG8r0j.js +7 -0
- package/packages/client/dist/index.html +2 -2
- package/packages/client/dist/sw.js +2 -2
- package/packages/server/dist/controllers/accountController.d.ts.map +1 -1
- package/packages/server/dist/controllers/accountController.js +31 -11
- package/packages/server/dist/controllers/accountController.js.map +1 -1
- package/packages/server/dist/controllers/fileSystemController.d.ts +6 -0
- package/packages/server/dist/controllers/fileSystemController.d.ts.map +1 -1
- package/packages/server/dist/controllers/fileSystemController.js +34 -0
- package/packages/server/dist/controllers/fileSystemController.js.map +1 -1
- package/packages/server/dist/controllers/projectController.d.ts.map +1 -1
- package/packages/server/dist/controllers/projectController.js +4 -2
- package/packages/server/dist/controllers/projectController.js.map +1 -1
- package/packages/server/dist/controllers/sessionController.d.ts +5 -0
- package/packages/server/dist/controllers/sessionController.d.ts.map +1 -1
- package/packages/server/dist/controllers/sessionController.js +95 -3
- package/packages/server/dist/controllers/sessionController.js.map +1 -1
- package/packages/server/dist/handlers/hookBridge.d.ts +131 -0
- package/packages/server/dist/handlers/hookBridge.d.ts.map +1 -0
- package/packages/server/dist/handlers/hookBridge.js +178 -0
- package/packages/server/dist/handlers/hookBridge.js.map +1 -0
- package/packages/server/dist/handlers/streamCallbacks.d.ts.map +1 -1
- package/packages/server/dist/handlers/streamCallbacks.js +30 -4
- package/packages/server/dist/handlers/streamCallbacks.js.map +1 -1
- package/packages/server/dist/handlers/websocket.d.ts +44 -2
- package/packages/server/dist/handlers/websocket.d.ts.map +1 -1
- package/packages/server/dist/handlers/websocket.js +666 -64
- package/packages/server/dist/handlers/websocket.js.map +1 -1
- package/packages/server/dist/index.js +4 -1
- package/packages/server/dist/index.js.map +1 -1
- package/packages/server/dist/locales/en/server.json +9 -3
- package/packages/server/dist/locales/es/server.json +9 -3
- package/packages/server/dist/locales/ja/server.json +9 -3
- package/packages/server/dist/locales/ko/server.json +9 -3
- package/packages/server/dist/locales/pt/server.json +9 -3
- package/packages/server/dist/locales/zh-CN/server.json +9 -3
- package/packages/server/dist/routes/account.d.ts.map +1 -1
- package/packages/server/dist/routes/account.js +4 -2
- package/packages/server/dist/routes/account.js.map +1 -1
- package/packages/server/dist/routes/fileSystem.d.ts.map +1 -1
- package/packages/server/dist/routes/fileSystem.js +2 -0
- package/packages/server/dist/routes/fileSystem.js.map +1 -1
- package/packages/server/dist/routes/sessions.d.ts.map +1 -1
- package/packages/server/dist/routes/sessions.js +2 -0
- package/packages/server/dist/routes/sessions.js.map +1 -1
- package/packages/server/dist/services/accountInfoService.d.ts +36 -1
- package/packages/server/dist/services/accountInfoService.d.ts.map +1 -1
- package/packages/server/dist/services/accountInfoService.js +90 -4
- package/packages/server/dist/services/accountInfoService.js.map +1 -1
- package/packages/server/dist/services/accountStorageService.d.ts +55 -9
- package/packages/server/dist/services/accountStorageService.d.ts.map +1 -1
- package/packages/server/dist/services/accountStorageService.js +244 -12
- package/packages/server/dist/services/accountStorageService.js.map +1 -1
- package/packages/server/dist/services/chatEngine.d.ts +59 -3
- package/packages/server/dist/services/chatEngine.d.ts.map +1 -1
- package/packages/server/dist/services/chatService.d.ts +112 -3
- package/packages/server/dist/services/chatService.d.ts.map +1 -1
- package/packages/server/dist/services/chatService.js +353 -98
- package/packages/server/dist/services/chatService.js.map +1 -1
- package/packages/server/dist/services/claudeLoginService.d.ts +14 -3
- package/packages/server/dist/services/claudeLoginService.d.ts.map +1 -1
- package/packages/server/dist/services/claudeLoginService.js +18 -4
- package/packages/server/dist/services/claudeLoginService.js.map +1 -1
- package/packages/server/dist/services/cliChatEngine.d.ts.map +1 -1
- package/packages/server/dist/services/cliChatEngine.js +124 -22
- package/packages/server/dist/services/cliChatEngine.js.map +1 -1
- package/packages/server/dist/services/cliModalDetect.d.ts +14 -0
- package/packages/server/dist/services/cliModalDetect.d.ts.map +1 -1
- package/packages/server/dist/services/cliModalDetect.js +12 -3
- package/packages/server/dist/services/cliModalDetect.js.map +1 -1
- package/packages/server/dist/services/cliSessionPool.js +1 -1
- package/packages/server/dist/services/cliSessionPool.js.map +1 -1
- package/packages/server/dist/services/commandService.d.ts.map +1 -1
- package/packages/server/dist/services/commandService.js +19 -9
- package/packages/server/dist/services/commandService.js.map +1 -1
- package/packages/server/dist/services/engineResidencyRegistry.d.ts +112 -0
- package/packages/server/dist/services/engineResidencyRegistry.d.ts.map +1 -0
- package/packages/server/dist/services/engineResidencyRegistry.js +195 -0
- package/packages/server/dist/services/engineResidencyRegistry.js.map +1 -0
- package/packages/server/dist/services/harnessAgentService.d.ts.map +1 -1
- package/packages/server/dist/services/harnessAgentService.js +12 -2
- package/packages/server/dist/services/harnessAgentService.js.map +1 -1
- package/packages/server/dist/services/harnessLintService.d.ts.map +1 -1
- package/packages/server/dist/services/harnessLintService.js +25 -114
- package/packages/server/dist/services/harnessLintService.js.map +1 -1
- package/packages/server/dist/services/historyParser.d.ts.map +1 -1
- package/packages/server/dist/services/historyParser.js +23 -6
- package/packages/server/dist/services/historyParser.js.map +1 -1
- package/packages/server/dist/services/imageStorageService.d.ts.map +1 -1
- package/packages/server/dist/services/imageStorageService.js +7 -0
- package/packages/server/dist/services/imageStorageService.js.map +1 -1
- package/packages/server/dist/services/projectService.d.ts +4 -1
- package/packages/server/dist/services/projectService.d.ts.map +1 -1
- package/packages/server/dist/services/projectService.js +14 -1
- package/packages/server/dist/services/projectService.js.map +1 -1
- package/packages/server/dist/services/promptQueue.d.ts +34 -0
- package/packages/server/dist/services/promptQueue.d.ts.map +1 -0
- package/packages/server/dist/services/promptQueue.js +80 -0
- package/packages/server/dist/services/promptQueue.js.map +1 -0
- package/packages/server/dist/services/ptyService.d.ts.map +1 -1
- package/packages/server/dist/services/ptyService.js +4 -1
- package/packages/server/dist/services/ptyService.js.map +1 -1
- package/packages/server/dist/services/queueService.d.ts.map +1 -1
- package/packages/server/dist/services/queueService.js +62 -4
- package/packages/server/dist/services/queueService.js.map +1 -1
- package/packages/server/dist/services/rateLimitProbeService.d.ts +73 -3
- package/packages/server/dist/services/rateLimitProbeService.d.ts.map +1 -1
- package/packages/server/dist/services/rateLimitProbeService.js +397 -30
- package/packages/server/dist/services/rateLimitProbeService.js.map +1 -1
- package/packages/server/dist/services/sessionBufferManager.d.ts.map +1 -1
- package/packages/server/dist/services/sessionBufferManager.js +22 -4
- package/packages/server/dist/services/sessionBufferManager.js.map +1 -1
- package/packages/server/dist/services/sessionExportService.d.ts +34 -0
- package/packages/server/dist/services/sessionExportService.d.ts.map +1 -0
- package/packages/server/dist/services/sessionExportService.js +269 -0
- package/packages/server/dist/services/sessionExportService.js.map +1 -0
- package/packages/server/dist/services/sessionService.d.ts +6 -0
- package/packages/server/dist/services/sessionService.d.ts.map +1 -1
- package/packages/server/dist/services/sessionService.js +30 -9
- package/packages/server/dist/services/sessionService.js.map +1 -1
- package/packages/server/dist/services/streamHandler.d.ts +177 -1
- package/packages/server/dist/services/streamHandler.d.ts.map +1 -1
- package/packages/server/dist/services/streamHandler.js +425 -39
- package/packages/server/dist/services/streamHandler.js.map +1 -1
- package/packages/server/dist/services/workspaceContext.d.ts.map +1 -1
- package/packages/server/dist/services/workspaceContext.js +6 -0
- package/packages/server/dist/services/workspaceContext.js.map +1 -1
- package/packages/server/dist/snippets/fix-lint-command-not-on-path +13 -0
- package/packages/server/dist/snippets/fix-lint-duplicate-name +12 -0
- package/packages/server/dist/snippets/fix-lint-env-var-undefined +13 -0
- package/packages/server/dist/snippets/fix-lint-regex-invalid +14 -0
- package/packages/server/dist/snippets/fix-lint-tools-non-standard +14 -0
- package/packages/server/dist/snippets/fix-lint-url-invalid +13 -0
- package/packages/server/dist/snippets/fix-lint-yaml-parse-error +14 -0
- package/packages/server/dist/snippets/fix-malformed-skill +17 -0
- package/packages/server/dist/utils/backgroundHookSettings.d.ts +31 -0
- package/packages/server/dist/utils/backgroundHookSettings.d.ts.map +1 -0
- package/packages/server/dist/utils/backgroundHookSettings.js +41 -0
- package/packages/server/dist/utils/backgroundHookSettings.js.map +1 -0
- package/packages/server/dist/utils/backgroundTaskPoller.d.ts +69 -0
- package/packages/server/dist/utils/backgroundTaskPoller.d.ts.map +1 -0
- package/packages/server/dist/utils/backgroundTaskPoller.js +356 -0
- package/packages/server/dist/utils/backgroundTaskPoller.js.map +1 -0
- package/packages/server/dist/utils/backgroundTaskTracker.d.ts +51 -3
- package/packages/server/dist/utils/backgroundTaskTracker.d.ts.map +1 -1
- package/packages/server/dist/utils/backgroundTaskTracker.js +117 -9
- package/packages/server/dist/utils/backgroundTaskTracker.js.map +1 -1
- package/packages/server/dist/utils/backgroundToolGuard.d.ts +26 -0
- package/packages/server/dist/utils/backgroundToolGuard.d.ts.map +1 -0
- package/packages/server/dist/utils/backgroundToolGuard.js +40 -0
- package/packages/server/dist/utils/backgroundToolGuard.js.map +1 -0
- package/packages/server/dist/utils/boundedRing.d.ts +44 -0
- package/packages/server/dist/utils/boundedRing.d.ts.map +1 -0
- package/packages/server/dist/utils/boundedRing.js +77 -0
- package/packages/server/dist/utils/boundedRing.js.map +1 -0
- package/packages/server/dist/utils/effortUtils.d.ts +7 -6
- package/packages/server/dist/utils/effortUtils.d.ts.map +1 -1
- package/packages/server/dist/utils/effortUtils.js +10 -9
- package/packages/server/dist/utils/effortUtils.js.map +1 -1
- package/packages/server/dist/utils/messageTree.d.ts +25 -0
- package/packages/server/dist/utils/messageTree.d.ts.map +1 -1
- package/packages/server/dist/utils/messageTree.js +167 -3
- package/packages/server/dist/utils/messageTree.js.map +1 -1
- package/packages/server/dist/utils/pathUtils.d.ts.map +1 -1
- package/packages/server/dist/utils/pathUtils.js +1 -0
- package/packages/server/dist/utils/pathUtils.js.map +1 -1
- package/packages/server/dist/utils/residencyActivation.d.ts +61 -0
- package/packages/server/dist/utils/residencyActivation.d.ts.map +1 -0
- package/packages/server/dist/utils/residencyActivation.js +60 -0
- package/packages/server/dist/utils/residencyActivation.js.map +1 -0
- package/packages/server/dist/utils/residencyPolicy.d.ts +62 -0
- package/packages/server/dist/utils/residencyPolicy.d.ts.map +1 -0
- package/packages/server/dist/utils/residencyPolicy.js +82 -0
- package/packages/server/dist/utils/residencyPolicy.js.map +1 -0
- package/packages/server/dist/utils/runtimeParamStrategy.d.ts +51 -0
- package/packages/server/dist/utils/runtimeParamStrategy.d.ts.map +1 -0
- package/packages/server/dist/utils/runtimeParamStrategy.js +60 -0
- package/packages/server/dist/utils/runtimeParamStrategy.js.map +1 -0
- package/packages/server/dist/utils/stopStrategy.d.ts +62 -0
- package/packages/server/dist/utils/stopStrategy.d.ts.map +1 -0
- package/packages/server/dist/utils/stopStrategy.js +65 -0
- package/packages/server/dist/utils/stopStrategy.js.map +1 -0
- package/packages/server/resources/internals/INDEX.md +1 -1
- package/packages/server/resources/internals/image-storage.md +14 -2
- package/packages/server/resources/manual/02-chat.md +30 -13
- package/packages/server/resources/manual/03-sessions.md +22 -1
- package/packages/server/resources/manual/04-slash-commands-favorites.md +2 -1
- package/packages/server/resources/manual/05-projects.md +1 -0
- package/packages/server/resources/manual/06-file-explorer-editor.md +21 -2
- package/packages/server/resources/manual/07-git.md +1 -1
- package/packages/server/resources/manual/08-terminal.md +1 -1
- package/packages/server/resources/manual/12-harness-workbench.md +21 -16
- package/packages/server/resources/manual/13-settings.md +22 -6
- package/packages/server/resources/manual/14-keyboard-shortcuts.md +8 -1
- package/packages/shared/dist/constants/messageTree.d.ts +2 -0
- package/packages/shared/dist/constants/messageTree.d.ts.map +1 -1
- package/packages/shared/dist/constants/messageTree.js +6 -0
- package/packages/shared/dist/constants/messageTree.js.map +1 -1
- package/packages/shared/dist/index.d.ts +1 -1
- package/packages/shared/dist/index.d.ts.map +1 -1
- package/packages/shared/dist/index.js.map +1 -1
- package/packages/shared/dist/types/accounts.d.ts +13 -0
- package/packages/shared/dist/types/accounts.d.ts.map +1 -1
- package/packages/shared/dist/types/history.d.ts +14 -1
- package/packages/shared/dist/types/history.d.ts.map +1 -1
- package/packages/shared/dist/types/message.d.ts +26 -3
- package/packages/shared/dist/types/message.d.ts.map +1 -1
- package/packages/shared/dist/types/message.js +21 -1
- package/packages/shared/dist/types/message.js.map +1 -1
- package/packages/shared/dist/types/preferences.d.ts +5 -1
- package/packages/shared/dist/types/preferences.d.ts.map +1 -1
- package/packages/shared/dist/types/preferences.js +3 -0
- package/packages/shared/dist/types/preferences.js.map +1 -1
- package/packages/shared/dist/types/sdk.d.ts +68 -10
- package/packages/shared/dist/types/sdk.d.ts.map +1 -1
- package/packages/shared/dist/types/sdk.js +56 -16
- package/packages/shared/dist/types/sdk.js.map +1 -1
- package/packages/shared/dist/types/session.d.ts +6 -0
- package/packages/shared/dist/types/session.d.ts.map +1 -1
- package/packages/shared/dist/types/session.js +6 -0
- package/packages/shared/dist/types/session.js.map +1 -1
- package/packages/shared/dist/types/streaming.d.ts +32 -2
- package/packages/shared/dist/types/streaming.d.ts.map +1 -1
- package/packages/shared/dist/types/streaming.js.map +1 -1
- package/packages/shared/dist/types/websocket.d.ts +4 -0
- package/packages/shared/dist/types/websocket.d.ts.map +1 -1
- package/scripts/probe-persistent-hooks.mjs +795 -0
- package/packages/client/dist/assets/index-BHbx57gc.js +0 -2
- package/packages/client/dist/assets/index-BX7y_Qt3.css +0 -32
- package/packages/client/dist/assets/index-DWIOf7rA.js +0 -1657
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
try{self["workbox:core:7.3.0"]&&_()}catch{}const Q=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},G=Q;class l extends Error{constructor(e,t){const n=G(e,t);super(n),this.name=e,this.details=t}}const d={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},E=s=>[d.prefix,s,d.suffix].filter(e=>e&&e.length>0).join("-"),z=s=>{for(const e of Object.keys(d))s(e)},x={updateDetails:s=>{z(e=>{typeof s[e]=="string"&&(d[e]=s[e])})},getGoogleAnalyticsName:s=>s||E(d.googleAnalytics),getPrecacheName:s=>s||E(d.precache),getPrefix:()=>d.prefix,getRuntimeName:s=>s||E(d.runtime),getSuffix:()=>d.suffix};function M(s,e){const t=e();return s.waitUntil(t),t}try{self["workbox:precaching:7.3.0"]&&_()}catch{}const J="__WB_REVISION__";function X(s){if(!s)throw new l("add-to-cache-list-unexpected-type",{entry:s});if(typeof s=="string"){const i=new URL(s,location.href);return{cacheKey:i.href,url:i.href}}const{revision:e,url:t}=s;if(!t)throw new l("add-to-cache-list-unexpected-type",{entry:s});if(!e){const i=new URL(t,location.href);return{cacheKey:i.href,url:i.href}}const n=new URL(t,location.href),a=new URL(t,location.href);return n.searchParams.set(J,e),{cacheKey:n.href,url:a.href}}class Y{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:n})=>{if(e.type==="install"&&t&&t.originalRequest&&t.originalRequest instanceof Request){const a=t.originalRequest.url;n?this.notUpdatedURLs.push(a):this.updatedURLs.push(a)}return n}}}class Z{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:t,params:n})=>{const a=(n==null?void 0:n.cacheKey)||this._precacheController.getCacheKeyForURL(t.url);return a?new Request(a,{headers:t.headers}):t},this._precacheController=e}}let m;function ee(){if(m===void 0){const s=new Response("");if("body"in s)try{new Response(s.body),m=!0}catch{m=!1}m=!1}return m}async function te(s,e){let t=null;if(s.url&&(t=new URL(s.url).origin),t!==self.location.origin)throw new l("cross-origin-copy-response",{origin:t});const n=s.clone(),i={headers:new Headers(n.headers),status:n.status,statusText:n.statusText},r=ee()?n.body:await n.blob();return new Response(r,i)}const se=s=>new URL(String(s),location.href).href.replace(new RegExp(`^${location.origin}`),"");function v(s,e){const t=new URL(s);for(const n of e)t.searchParams.delete(n);return t.href}async function ne(s,e,t,n){const a=v(e.url,t);if(e.url===a)return s.match(e,n);const i=Object.assign(Object.assign({},n),{ignoreSearch:!0}),r=await s.keys(e,i);for(const c of r){const o=v(c.url,t);if(a===o)return s.match(c,n)}}class ae{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}const W=new Set;async function ie(){for(const s of W)await s()}function re(s){return new Promise(e=>setTimeout(e,s))}try{self["workbox:strategies:7.3.0"]&&_()}catch{}function b(s){return typeof s=="string"?new Request(s):s}class ce{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new ae,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const n of this._plugins)this._pluginStateMap.set(n,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let n=b(e);if(n.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const r=await t.preloadResponse;if(r)return r}const a=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const r of this.iterateCallbacks("requestWillFetch"))n=await r({request:n.clone(),event:t})}catch(r){if(r instanceof Error)throw new l("plugin-error-request-will-fetch",{thrownErrorMessage:r.message})}const i=n.clone();try{let r;r=await fetch(n,n.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const c of this.iterateCallbacks("fetchDidSucceed"))r=await c({event:t,request:i,response:r});return r}catch(r){throw a&&await this.runCallbacks("fetchDidFail",{error:r,event:t,originalRequest:a.clone(),request:i.clone()}),r}}async fetchAndCachePut(e){const t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){const t=b(e);let n;const{cacheName:a,matchOptions:i}=this._strategy,r=await this.getCacheKey(t,"read"),c=Object.assign(Object.assign({},i),{cacheName:a});n=await caches.match(r,c);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))n=await o({cacheName:a,matchOptions:i,cachedResponse:n,request:r,event:this.event})||void 0;return n}async cachePut(e,t){const n=b(e);await re(0);const a=await this.getCacheKey(n,"write");if(!t)throw new l("cache-put-with-no-response",{url:se(a.url)});const i=await this._ensureResponseSafeToCache(t);if(!i)return!1;const{cacheName:r,matchOptions:c}=this._strategy,o=await self.caches.open(r),h=this.hasCallback("cacheDidUpdate"),g=h?await ne(o,a.clone(),["__WB_REVISION__"],c):null;try{await o.put(a,h?i.clone():i)}catch(u){if(u instanceof Error)throw u.name==="QuotaExceededError"&&await ie(),u}for(const u of this.iterateCallbacks("cacheDidUpdate"))await u({cacheName:r,oldResponse:g,newResponse:i.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let a=e;for(const i of this.iterateCallbacks("cacheKeyWillBeUsed"))a=b(await i({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[n]=a}return this._cacheKeys[n]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const n=this._pluginStateMap.get(t);yield i=>{const r=Object.assign(Object.assign({},i),{state:n});return t[e](r)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){for(;this._extendLifetimePromises.length;){const e=this._extendLifetimePromises.splice(0),n=(await Promise.allSettled(e)).find(a=>a.status==="rejected");if(n)throw n.reason}}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(const a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}}class B{constructor(e={}){this.cacheName=x.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,n=typeof e.request=="string"?new Request(e.request):e.request,a="params"in e?e.params:void 0,i=new ce(this,{event:t,request:n,params:a}),r=this._getResponse(i,n,t),c=this._awaitComplete(r,i,n,t);return[r,c]}async _getResponse(e,t,n){await e.runCallbacks("handlerWillStart",{event:n,request:t});let a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new l("no-response",{url:t.url})}catch(i){if(i instanceof Error){for(const r of e.iterateCallbacks("handlerDidError"))if(a=await r({error:i,event:n,request:t}),a)break}if(!a)throw i}for(const i of e.iterateCallbacks("handlerWillRespond"))a=await i({event:n,request:t,response:a});return a}async _awaitComplete(e,t,n,a){let i,r;try{i=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:n,response:i}),await t.doneWaiting()}catch(c){c instanceof Error&&(r=c)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:n,response:i,error:r}),t.destroy(),r)throw r}}class p extends B{constructor(e={}){e.cacheName=x.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=e.fallbackToNetwork!==!1,this.plugins.push(p.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const n=await t.cacheMatch(e);return n||(t.event&&t.event.type==="install"?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let n;const a=t.params||{};if(this._fallbackToNetwork){const i=a.integrity,r=e.integrity,c=!r||r===i;n=await t.fetch(new Request(e,{integrity:e.mode!=="no-cors"?r||i:void 0})),i&&c&&e.mode!=="no-cors"&&(this._useDefaultCacheabilityPluginIfNeeded(),await t.cachePut(e,n.clone()))}else throw new l("missing-precache-entry",{cacheName:this.cacheName,url:e.url});return n}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();const n=await t.fetch(e);if(!await t.cachePut(e,n.clone()))throw new l("bad-precaching-response",{url:e.url,status:n.status});return n}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[n,a]of this.plugins.entries())a!==p.copyRedirectedCacheableResponsesPlugin&&(a===p.defaultPrecacheCacheabilityPlugin&&(e=n),a.cacheWillUpdate&&t++);t===0?this.plugins.push(p.defaultPrecacheCacheabilityPlugin):t>1&&e!==null&&this.plugins.splice(e,1)}}p.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:s}){return!s||s.status>=400?null:s}};p.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:s}){return s.redirected?await te(s):s}};class oe{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new p({cacheName:x.getPrecacheName(e),plugins:[...t,new Z({precacheController:this})],fallbackToNetwork:n}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){const t=[];for(const n of e){typeof n=="string"?t.push(n):n&&n.revision===void 0&&t.push(n.url);const{cacheKey:a,url:i}=X(n),r=typeof n!="string"&&n.revision?"reload":"default";if(this._urlsToCacheKeys.has(i)&&this._urlsToCacheKeys.get(i)!==a)throw new l("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(i),secondEntry:a});if(typeof n!="string"&&n.integrity){if(this._cacheKeysToIntegrities.has(a)&&this._cacheKeysToIntegrities.get(a)!==n.integrity)throw new l("add-to-cache-list-conflicting-integrities",{url:i});this._cacheKeysToIntegrities.set(a,n.integrity)}if(this._urlsToCacheKeys.set(i,a),this._urlsToCacheModes.set(i,r),t.length>0){const c=`Workbox is precaching URLs without revision info: ${t.join(", ")}
|
|
2
|
-
This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(c)}}}install(e){return M(e,async()=>{const t=new Y;this.strategy.plugins.push(t);for(const[i,r]of this._urlsToCacheKeys){const c=this._cacheKeysToIntegrities.get(r),o=this._urlsToCacheModes.get(i),h=new Request(i,{integrity:c,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:r},request:h,event:e}))}const{updatedURLs:n,notUpdatedURLs:a}=t;return{updatedURLs:n,notUpdatedURLs:a}})}activate(e){return M(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),n=await t.keys(),a=new Set(this._urlsToCacheKeys.values()),i=[];for(const r of n)a.has(r.url)||(await t.delete(r),i.push(r.url));return{deletedURLs:i}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new l("non-precached-url",{url:e});return n=>(n.request=new Request(e),n.params=Object.assign({cacheKey:t},n.params),this.strategy.handle(n))}}let D;const j=()=>(D||(D=new oe),D);try{self["workbox:routing:7.3.0"]&&_()}catch{}const F="GET",C=s=>s&&typeof s=="object"?s:{handle:s};class R{constructor(e,t,n=F){this.handler=C(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=C(e)}}class he extends R{constructor(e,t,n){const a=({url:i})=>{const r=e.exec(i.href);if(r&&!(i.origin!==location.origin&&r.index!==0))return r.slice(1)};super(a,t,n)}}class le{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const i=new Request(...a);return this.handleRequest({request:i,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const n=new URL(e.url,location.href);if(!n.protocol.startsWith("http"))return;const a=n.origin===location.origin,{params:i,route:r}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:n});let c=r&&r.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let h;try{h=c.handle({url:n,request:e,event:t,params:i})}catch(u){h=Promise.reject(u)}const g=r&&r.catchHandler;return h instanceof Promise&&(this._catchHandler||g)&&(h=h.catch(async u=>{if(g)try{return await g.handle({url:n,request:e,event:t,params:i})}catch(I){I instanceof Error&&(u=I)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw u})),h}findMatchingRoute({url:e,sameOrigin:t,request:n,event:a}){const i=this._routes.get(n.method)||[];for(const r of i){let c;const o=r.match({url:e,sameOrigin:t,request:n,event:a});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:r,params:c}}return{}}setDefaultHandler(e,t=F){this._defaultHandlerMap.set(t,C(e))}setCatchHandler(e){this._catchHandler=C(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new l("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new l("unregister-route-route-not-registered")}}let w;const ue=()=>(w||(w=new le,w.addFetchListener(),w.addCacheListener()),w);function q(s,e,t){let n;if(typeof s=="string"){const i=new URL(s,location.href),r=({url:c})=>c.href===i.href;n=new R(r,e,t)}else if(s instanceof RegExp)n=new he(s,e,t);else if(typeof s=="function")n=new R(s,e,t);else if(s instanceof R)n=s;else throw new l("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return ue().registerRoute(n),n}function de(s,e=[]){for(const t of[...s.searchParams.keys()])e.some(n=>n.test(t))&&s.searchParams.delete(t);return s}function*fe(s,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:n=!0,urlManipulation:a}={}){const i=new URL(s,location.href);i.hash="",yield i.href;const r=de(i,e);if(yield r.href,t&&r.pathname.endsWith("/")){const c=new URL(r.href);c.pathname+=t,yield c.href}if(n){const c=new URL(r.href);c.pathname+=".html",yield c.href}if(a){const c=a({url:i});for(const o of c)yield o.href}}class pe extends R{constructor(e,t){const n=({request:a})=>{const i=e.getURLsToCacheKeys();for(const r of fe(a.url,t)){const c=i.get(r);if(c){const o=e.getIntegrityForCacheKey(c);return{cacheKey:c,integrity:o}}}};super(n,e.strategy)}}function ge(s){const e=j(),t=new pe(e,s);q(t)}function me(s){j().precache(s)}function we(s,e){me(s),ge(e)}const ye={cacheWillUpdate:async({response:s})=>s.status===200||s.status===0?s:null};class _e extends B{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(ye),this._networkTimeoutSeconds=e.networkTimeoutSeconds||0}async _handle(e,t){const n=[],a=[];let i;if(this._networkTimeoutSeconds){const{id:o,promise:h}=this._getTimeoutPromise({request:e,logs:n,handler:t});i=o,a.push(h)}const r=this._getNetworkPromise({timeoutId:i,request:e,logs:n,handler:t});a.push(r);const c=await t.waitUntil((async()=>await t.waitUntil(Promise.race(a))||await r)());if(!c)throw new l("no-response",{url:e.url});return c}_getTimeoutPromise({request:e,logs:t,handler:n}){let a;return{promise:new Promise(r=>{a=setTimeout(async()=>{r(await n.cacheMatch(e))},this._networkTimeoutSeconds*1e3)}),id:a}}async _getNetworkPromise({timeoutId:e,request:t,logs:n,handler:a}){let i,r;try{r=await a.fetchAndCachePut(t)}catch(c){c instanceof Error&&(i=c)}return e&&clearTimeout(e),(i||!r)&&(r=await a.cacheMatch(t)),r}}function H(s){s.then(()=>{})}const Re=(s,e)=>e.some(t=>s instanceof t);let K,A;function be(){return K||(K=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Ce(){return A||(A=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const V=new WeakMap,k=new WeakMap,$=new WeakMap,L=new WeakMap,N=new WeakMap;function xe(s){const e=new Promise((t,n)=>{const a=()=>{s.removeEventListener("success",i),s.removeEventListener("error",r)},i=()=>{t(f(s.result)),a()},r=()=>{n(s.error),a()};s.addEventListener("success",i),s.addEventListener("error",r)});return e.then(t=>{t instanceof IDBCursor&&V.set(t,s)}).catch(()=>{}),N.set(e,s),e}function Ee(s){if(k.has(s))return;const e=new Promise((t,n)=>{const a=()=>{s.removeEventListener("complete",i),s.removeEventListener("error",r),s.removeEventListener("abort",r)},i=()=>{t(),a()},r=()=>{n(s.error||new DOMException("AbortError","AbortError")),a()};s.addEventListener("complete",i),s.addEventListener("error",r),s.addEventListener("abort",r)});k.set(s,e)}let P={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return k.get(s);if(e==="objectStoreNames")return s.objectStoreNames||$.get(s);if(e==="store")return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return f(s[e])},set(s,e,t){return s[e]=t,!0},has(s,e){return s instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in s}};function De(s){P=s(P)}function Le(s){return s===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){const n=s.call(U(this),e,...t);return $.set(n,e.sort?e.sort():[e]),f(n)}:Ce().includes(s)?function(...e){return s.apply(U(this),e),f(V.get(this))}:function(...e){return f(s.apply(U(this),e))}}function Ue(s){return typeof s=="function"?Le(s):(s instanceof IDBTransaction&&Ee(s),Re(s,be())?new Proxy(s,P):s)}function f(s){if(s instanceof IDBRequest)return xe(s);if(L.has(s))return L.get(s);const e=Ue(s);return e!==s&&(L.set(s,e),N.set(e,s)),e}const U=s=>N.get(s);function Te(s,e,{blocked:t,upgrade:n,blocking:a,terminated:i}={}){const r=indexedDB.open(s,e),c=f(r);return n&&r.addEventListener("upgradeneeded",o=>{n(f(r.result),o.oldVersion,o.newVersion,f(r.transaction),o)}),t&&r.addEventListener("blocked",o=>t(o.oldVersion,o.newVersion,o)),c.then(o=>{i&&o.addEventListener("close",()=>i()),a&&o.addEventListener("versionchange",h=>a(h.oldVersion,h.newVersion,h))}).catch(()=>{}),c}function ke(s,{blocked:e}={}){const t=indexedDB.deleteDatabase(s);return e&&t.addEventListener("blocked",n=>e(n.oldVersion,n)),f(t).then(()=>{})}const Pe=["get","getKey","getAll","getAllKeys","count"],Ne=["put","add","delete","clear"],T=new Map;function S(s,e){if(!(s instanceof IDBDatabase&&!(e in s)&&typeof e=="string"))return;if(T.get(e))return T.get(e);const t=e.replace(/FromIndex$/,""),n=e!==t,a=Ne.includes(t);if(!(t in(n?IDBIndex:IDBObjectStore).prototype)||!(a||Pe.includes(t)))return;const i=async function(r,...c){const o=this.transaction(r,a?"readwrite":"readonly");let h=o.store;return n&&(h=h.index(c.shift())),(await Promise.all([h[t](...c),a&&o.done]))[0]};return T.set(e,i),i}De(s=>({...s,get:(e,t,n)=>S(e,t)||s.get(e,t,n),has:(e,t)=>!!S(e,t)||s.has(e,t)}));try{self["workbox:expiration:7.3.0"]&&_()}catch{}const Ie="workbox-expiration",y="cache-entries",O=s=>{const e=new URL(s,location.href);return e.hash="",e.href};class Me{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(y,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&ke(this._cacheName)}async setTimestamp(e,t){e=O(e);const n={url:e,timestamp:t,cacheName:this._cacheName,id:this._getId(e)},i=(await this.getDb()).transaction(y,"readwrite",{durability:"relaxed"});await i.store.put(n),await i.done}async getTimestamp(e){const n=await(await this.getDb()).get(y,this._getId(e));return n==null?void 0:n.timestamp}async expireEntries(e,t){const n=await this.getDb();let a=await n.transaction(y).store.index("timestamp").openCursor(null,"prev");const i=[];let r=0;for(;a;){const o=a.value;o.cacheName===this._cacheName&&(e&&o.timestamp<e||t&&r>=t?i.push(a.value):r++),a=await a.continue()}const c=[];for(const o of i)await n.delete(y,o.id),c.push(o.url);return c}_getId(e){return this._cacheName+"|"+O(e)}async getDb(){return this._db||(this._db=await Te(Ie,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class ve{constructor(e,t={}){this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=t.maxEntries,this._maxAgeSeconds=t.maxAgeSeconds,this._matchOptions=t.matchOptions,this._cacheName=e,this._timestampModel=new Me(e)}async expireEntries(){if(this._isRunning){this._rerunRequested=!0;return}this._isRunning=!0;const e=this._maxAgeSeconds?Date.now()-this._maxAgeSeconds*1e3:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),n=await self.caches.open(this._cacheName);for(const a of t)await n.delete(a,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,H(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),n=Date.now()-this._maxAgeSeconds*1e3;return t!==void 0?t<n:!0}else return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}function Ke(s){W.add(s)}class Ae{constructor(e={}){this.cachedResponseWillBeUsed=async({event:t,request:n,cacheName:a,cachedResponse:i})=>{if(!i)return null;const r=this._isResponseDateFresh(i),c=this._getCacheExpiration(a);H(c.expireEntries());const o=c.updateTimestamp(n.url);if(t)try{t.waitUntil(o)}catch{}return r?i:null},this.cacheDidUpdate=async({cacheName:t,request:n})=>{const a=this._getCacheExpiration(t);await a.updateTimestamp(n.url),await a.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&Ke(()=>this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===x.getRuntimeName())throw new l("expire-custom-caches-only");let t=this._cacheExpirations.get(e);return t||(t=new ve(e,this._config),this._cacheExpirations.set(e,t)),t}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;const t=this._getDateHeaderTimestamp(e);if(t===null)return!0;const n=Date.now();return t>=n-this._maxAgeSeconds*1e3}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;const t=e.headers.get("date"),a=new Date(t).getTime();return isNaN(a)?null:a}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete();this._cacheExpirations=new Map}}self.skipWaiting();self.addEventListener("activate",()=>self.clients.claim());we([{"revision":"73823f5977e611854fa5c540c75162f8","url":"logo-splash.png"},{"revision":"16c7052dce01618a890a3a0f0d16d5e1","url":"logo-header.png"},{"revision":"259748d082d34476143eaa4083ffe3cf","url":"index.html"},{"revision":"d30adf27deefad03e3f0011fd636c33c","url":"favicon.png"},{"revision":"1e1bc44ff474c3bf70c70d1d691b848a","url":"favicon-512.png"},{"revision":"710f7c0577f8e2dd7288a06749b30908","url":"favicon-192.png"},{"revision":null,"url":"assets/zig-BVz_zdnA.js"},{"revision":null,"url":"assets/zenscript-HnGAYVZD.js"},{"revision":null,"url":"assets/yaml-CVw76BM1.js"},{"revision":null,"url":"assets/xsl-Dd0NUgwM.js"},{"revision":null,"url":"assets/xml-e3z08dGr.js"},{"revision":null,"url":"assets/workbox-window.prod.es5-BIl4cyR9.js"},{"revision":null,"url":"assets/wolfram-C3FkfJm5.js"},{"revision":null,"url":"assets/wikitext-DCE3LsBG.js"},{"revision":null,"url":"assets/wgsl-CB0Krxn9.js"},{"revision":null,"url":"assets/wenyan-7A4Fjokl.js"},{"revision":null,"url":"assets/wasm-CG6Dc4jp.js"},{"revision":null,"url":"assets/wasm-C6j12Q_x.js"},{"revision":null,"url":"assets/vyper-nyqBNV6O.js"},{"revision":null,"url":"assets/vue-html-xdeiXROB.js"},{"revision":null,"url":"assets/vue-BuYVFjOK.js"},{"revision":null,"url":"assets/vitesse-light-CVO1_9PV.js"},{"revision":null,"url":"assets/vitesse-dark-D0r3Knsf.js"},{"revision":null,"url":"assets/vitesse-black-Bkuqu6BP.js"},{"revision":null,"url":"assets/viml-m4uW47V2.js"},{"revision":null,"url":"assets/vhdl-DYoNaHQp.js"},{"revision":null,"url":"assets/vesper-BEBZ7ncR.js"},{"revision":null,"url":"assets/verilog-CJaU5se_.js"},{"revision":null,"url":"assets/vb-CdO5JTpU.js"},{"revision":null,"url":"assets/vala-BFOHcciG.js"},{"revision":null,"url":"assets/v-CAQ2eGtk.js"},{"revision":null,"url":"assets/typst-BVUVsWT6.js"},{"revision":null,"url":"assets/typespec-BpWG_bgh.js"},{"revision":null,"url":"assets/typescript-Dj6nwHGl.js"},{"revision":null,"url":"assets/twig-NC5TFiHP.js"},{"revision":null,"url":"assets/turtle-BMR_PYu6.js"},{"revision":null,"url":"assets/tsx-B6W0miNI.js"},{"revision":null,"url":"assets/tsv-B_m7g4N7.js"},{"revision":null,"url":"assets/ts-tags-CipyTH0X.js"},{"revision":null,"url":"assets/toml-CB2ApiWb.js"},{"revision":null,"url":"assets/tokyo-night-DBQeEorK.js"},{"revision":null,"url":"assets/tex-rYs2v40G.js"},{"revision":null,"url":"assets/terraform-BbSNqyBO.js"},{"revision":null,"url":"assets/templ-dwX3ZSMB.js"},{"revision":null,"url":"assets/tcl-DQ1-QYvQ.js"},{"revision":null,"url":"assets/tasl-CQjiPCtT.js"},{"revision":null,"url":"assets/talonscript-C1XDQQGZ.js"},{"revision":null,"url":"assets/systemd-CUnW07Te.js"},{"revision":null,"url":"assets/system-verilog-C7L56vO4.js"},{"revision":null,"url":"assets/synthwave-84-CbfX1IO0.js"},{"revision":null,"url":"assets/swift-BSxZ-RaX.js"},{"revision":null,"url":"assets/svelte-MSaWC3Je.js"},{"revision":null,"url":"assets/stylus-BeQkCIfX.js"},{"revision":null,"url":"assets/stata-DorPZHa4.js"},{"revision":null,"url":"assets/ssh-config-BknIz3MU.js"},{"revision":null,"url":"assets/sql-COK4E0Yg.js"},{"revision":null,"url":"assets/splunk-Cf8iN4DR.js"},{"revision":null,"url":"assets/sparql-bYkjHRlG.js"},{"revision":null,"url":"assets/soy-C-lX7w71.js"},{"revision":null,"url":"assets/solidity-C1w2a3ep.js"},{"revision":null,"url":"assets/solarized-light-L9t79GZl.js"},{"revision":null,"url":"assets/solarized-dark-DXbdFlpD.js"},{"revision":null,"url":"assets/snippetTokenHighlight-ot6u3hW4.js"},{"revision":null,"url":"assets/snazzy-light-Bw305WKR.js"},{"revision":null,"url":"assets/smalltalk-DkLiglaE.js"},{"revision":null,"url":"assets/slack-ochin-DqwNpetd.js"},{"revision":null,"url":"assets/slack-dark-BthQWCQV.js"},{"revision":null,"url":"assets/shellsession-C_rIy8kc.js"},{"revision":null,"url":"assets/shellscript-atvbtKCR.js"},{"revision":null,"url":"assets/shaderlab-B7qAK45m.js"},{"revision":null,"url":"assets/sdbl-BLhTXw86.js"},{"revision":null,"url":"assets/scss-C31hgJw-.js"},{"revision":null,"url":"assets/scheme-BJGe-b2p.js"},{"revision":null,"url":"assets/scala-DQVVAn-B.js"},{"revision":null,"url":"assets/sass-BJ4Li9vH.js"},{"revision":null,"url":"assets/sas-BmTFh92c.js"},{"revision":null,"url":"assets/rust-Be6lgOlo.js"},{"revision":null,"url":"assets/ruby-DeZ3UC14.js"},{"revision":null,"url":"assets/rst-4NLicBqY.js"},{"revision":null,"url":"assets/rose-pine-moon-CjDtw9vr.js"},{"revision":null,"url":"assets/rose-pine-dawn-Ds-gbosJ.js"},{"revision":null,"url":"assets/rose-pine-CmCqftbK.js"},{"revision":null,"url":"assets/riscv-QhoSD0DR.js"},{"revision":null,"url":"assets/rel-DJlmqQ1C.js"},{"revision":null,"url":"assets/regexp-DWJ3fJO_.js"},{"revision":null,"url":"assets/reg-5LuOXUq_.js"},{"revision":null,"url":"assets/red-bN70gL4F.js"},{"revision":null,"url":"assets/razor-CNLDkMZG.js"},{"revision":null,"url":"assets/raku-B1bQXN8T.js"},{"revision":null,"url":"assets/racket-CzouJOBO.js"},{"revision":null,"url":"assets/r-CwjWoCRV.js"},{"revision":null,"url":"assets/qss-DhMKtDLN.js"},{"revision":null,"url":"assets/qmldir-C8lEn-DE.js"},{"revision":null,"url":"assets/qml-D8XfuvdV.js"},{"revision":null,"url":"assets/python-DhUJRlN_.js"},{"revision":null,"url":"assets/purescript-Bg-kzb6g.js"},{"revision":null,"url":"assets/puppet-Cza_XSSt.js"},{"revision":null,"url":"assets/pug-CM9l7STV.js"},{"revision":null,"url":"assets/proto-zocC4JxJ.js"},{"revision":null,"url":"assets/prolog-BY-TUvya.js"},{"revision":null,"url":"assets/prisma-B48N-Iqd.js"},{"revision":null,"url":"assets/powershell-BIEUsx6d.js"},{"revision":null,"url":"assets/powerquery-CSHBycmS.js"},{"revision":null,"url":"assets/postcss-B3ZDOciz.js"},{"revision":null,"url":"assets/polar-DKykz6zU.js"},{"revision":null,"url":"assets/poimandres-CS3Unz2-.js"},{"revision":null,"url":"assets/po-BFLt1xDp.js"},{"revision":null,"url":"assets/plsql-LKU2TuZ1.js"},{"revision":null,"url":"assets/plastic-3e1v2bzS.js"},{"revision":null,"url":"assets/php-B5ebYQev.js"},{"revision":null,"url":"assets/perl-CHQXSrWU.js"},{"revision":null,"url":"assets/pascal-JqZropPD.js"},{"revision":null,"url":"assets/one-light-PoHY5YXO.js"},{"revision":null,"url":"assets/one-dark-pro-GBQ2dnAY.js"},{"revision":null,"url":"assets/ocaml-BNioltXt.js"},{"revision":null,"url":"assets/objective-cpp-BUEGK8hf.js"},{"revision":null,"url":"assets/objective-c-Deuh7S70.js"},{"revision":null,"url":"assets/nushell-D4Tzg5kh.js"},{"revision":null,"url":"assets/nord-Ddv68eIx.js"},{"revision":null,"url":"assets/nix-shcSOmrb.js"},{"revision":null,"url":"assets/nim-ZlGxZxc3.js"},{"revision":null,"url":"assets/night-owl-C39BiMTA.js"},{"revision":null,"url":"assets/nginx-D_VnBJ67.js"},{"revision":null,"url":"assets/nextflow-B0XVJmRM.js"},{"revision":null,"url":"assets/narrat-DLbgOhZU.js"},{"revision":null,"url":"assets/move-DB_GagMm.js"},{"revision":null,"url":"assets/monokai-D4h5O-jR.js"},{"revision":null,"url":"assets/mojo-Tz6hzZYG.js"},{"revision":null,"url":"assets/mipsasm-BC5c_5Pe.js"},{"revision":null,"url":"assets/min-light-CTRr51gU.js"},{"revision":null,"url":"assets/min-dark-CafNBF8u.js"},{"revision":null,"url":"assets/mermaid-Ci6OQyBP.js"},{"revision":null,"url":"assets/mdx-sdHcTMYB.js"},{"revision":null,"url":"assets/mdc-DB_EDNY_.js"},{"revision":null,"url":"assets/matlab-D9-PGadD.js"},{"revision":null,"url":"assets/material-theme-palenight-Csfq5Kiy.js"},{"revision":null,"url":"assets/material-theme-ocean-CyktbL80.js"},{"revision":null,"url":"assets/material-theme-lighter-B0m2ddpp.js"},{"revision":null,"url":"assets/material-theme-darker-BfHTSMKl.js"},{"revision":null,"url":"assets/material-theme-D5KoaKCx.js"},{"revision":null,"url":"assets/marko-z0MBrx5-.js"},{"revision":null,"url":"assets/markdown-UIAJJxZW.js"},{"revision":null,"url":"assets/make-Bvotw-X0.js"},{"revision":null,"url":"assets/luau-Du5NY7AG.js"},{"revision":null,"url":"assets/lua-CvWAzNxB.js"},{"revision":null,"url":"assets/logo-IuBKFhSY.js"},{"revision":null,"url":"assets/log-Cc5clBb7.js"},{"revision":null,"url":"assets/liquid-D3W5UaiH.js"},{"revision":null,"url":"assets/light-plus-B7mTdjB0.js"},{"revision":null,"url":"assets/less-BfCpw3nA.js"},{"revision":null,"url":"assets/lean-XBlWyCtg.js"},{"revision":null,"url":"assets/latex-C-cWTeAZ.js"},{"revision":null,"url":"assets/laserwave-DUszq2jm.js"},{"revision":null,"url":"assets/kusto-mebxcVVE.js"},{"revision":null,"url":"assets/kotlin-B5lbUyaz.js"},{"revision":null,"url":"assets/kanagawa-wave-DWedfzmr.js"},{"revision":null,"url":"assets/kanagawa-lotus-CfQXZHmo.js"},{"revision":null,"url":"assets/kanagawa-dragon-CkXjmgJE.js"},{"revision":null,"url":"assets/julia-BBuGR-5E.js"},{"revision":null,"url":"assets/jsx-BAng5TT0.js"},{"revision":null,"url":"assets/jssm-P4WzXJd0.js"},{"revision":null,"url":"assets/jsonnet-BfivnA6A.js"},{"revision":null,"url":"assets/jsonl-DREVFZK8.js"},{"revision":null,"url":"assets/jsonc-TU54ms6u.js"},{"revision":null,"url":"assets/json5-w8dY5SsB.js"},{"revision":null,"url":"assets/json-BQoSv7ci.js"},{"revision":null,"url":"assets/jison-BqZprYcd.js"},{"revision":null,"url":"assets/jinja-DGy0s7-h.js"},{"revision":null,"url":"assets/javascript-ySlJ1b_l.js"},{"revision":null,"url":"assets/java-xI-RfyKK.js"},{"revision":null,"url":"assets/ini-BjABl1g7.js"},{"revision":null,"url":"assets/index-DWIOf7rA.js"},{"revision":null,"url":"assets/index-BX7y_Qt3.css"},{"revision":null,"url":"assets/index-BHbx57gc.js"},{"revision":null,"url":"assets/index-B09doO8H.js"},{"revision":null,"url":"assets/imba-bv_oIlVt.js"},{"revision":null,"url":"assets/hy-BMj5Y0dO.js"},{"revision":null,"url":"assets/hxml-TIA70rKU.js"},{"revision":null,"url":"assets/http-FRrOvY1W.js"},{"revision":null,"url":"assets/html-derivative-CSfWNPLT.js"},{"revision":null,"url":"assets/html-C2L_23MC.js"},{"revision":null,"url":"assets/houston-DnULxvSX.js"},{"revision":null,"url":"assets/hlsl-ifBTmRxC.js"},{"revision":null,"url":"assets/hjson-T-Tgc4AT.js"},{"revision":null,"url":"assets/hcl-HzYwdGDm.js"},{"revision":null,"url":"assets/haxe-C5wWYbrZ.js"},{"revision":null,"url":"assets/haskell-BILxekzW.js"},{"revision":null,"url":"assets/handlebars-BQGss363.js"},{"revision":null,"url":"assets/haml-B2EZWmdv.js"},{"revision":null,"url":"assets/hack-D1yCygmZ.js"},{"revision":null,"url":"assets/groovy-DkBy-JyN.js"},{"revision":null,"url":"assets/graphql-cDcHW_If.js"},{"revision":null,"url":"assets/go-B1SYOhNW.js"},{"revision":null,"url":"assets/gnuplot-CM8KxXT1.js"},{"revision":null,"url":"assets/glsl-DBO2IWDn.js"},{"revision":null,"url":"assets/glimmer-ts-pgjy16dm.js"},{"revision":null,"url":"assets/glimmer-js-D-cwc0-E.js"},{"revision":null,"url":"assets/gleam-B430Bg39.js"},{"revision":null,"url":"assets/github-light-high-contrast-BfjtVDDH.js"},{"revision":null,"url":"assets/github-light-default-D7oLnXFd.js"},{"revision":null,"url":"assets/github-light-DAi9KRSo.js"},{"revision":null,"url":"assets/github-dark-high-contrast-E3gJ1_iC.js"},{"revision":null,"url":"assets/github-dark-dimmed-DH5Ifo-i.js"},{"revision":null,"url":"assets/github-dark-DHJKELXO.js"},{"revision":null,"url":"assets/github-dark-default-Cuk6v7N8.js"},{"revision":null,"url":"assets/git-rebase-B-v9cOL2.js"},{"revision":null,"url":"assets/git-commit-i4q6IMui.js"},{"revision":null,"url":"assets/gherkin--30QC5Em.js"},{"revision":null,"url":"assets/genie-ajMbGru0.js"},{"revision":null,"url":"assets/gdshader-SKMF96pI.js"},{"revision":null,"url":"assets/gdscript-DfxzS6Rs.js"},{"revision":null,"url":"assets/gdresource-BHYsBjWJ.js"},{"revision":null,"url":"assets/fsharp-XplgxFYe.js"},{"revision":null,"url":"assets/fortran-free-form-DKXYxT9g.js"},{"revision":null,"url":"assets/fortran-fixed-form-TqA4NnZg.js"},{"revision":null,"url":"assets/fluent-Dayu4EKP.js"},{"revision":null,"url":"assets/fish-w-ucz2PV.js"},{"revision":null,"url":"assets/fennel-bCA53EVm.js"},{"revision":null,"url":"assets/everforest-light-C8M2exoo.js"},{"revision":null,"url":"assets/everforest-dark-BgDCqdQA.js"},{"revision":null,"url":"assets/erlang-B-DoSBHF.js"},{"revision":null,"url":"assets/erb-BYTLMnw6.js"},{"revision":null,"url":"assets/emacs-lisp-BX77sIaO.js"},{"revision":null,"url":"assets/elm-CmHSxxaM.js"},{"revision":null,"url":"assets/elixir-CLiX3zqd.js"},{"revision":null,"url":"assets/edge-D5gP-w-T.js"},{"revision":null,"url":"assets/dream-maker-C-nORZOA.js"},{"revision":null,"url":"assets/dracula-soft-BXkSAIEj.js"},{"revision":null,"url":"assets/dracula-BzJJZx-M.js"},{"revision":null,"url":"assets/dotenv-BjQB5zDj.js"},{"revision":null,"url":"assets/docker-COcR7UxN.js"},{"revision":null,"url":"assets/diff-BgYniUM_.js"},{"revision":null,"url":"assets/desktop-DEIpsLCJ.js"},{"revision":null,"url":"assets/dax-ClGRhx96.js"},{"revision":null,"url":"assets/dart-B9wLZaAG.js"},{"revision":null,"url":"assets/dark-plus-C3mMm8J8.js"},{"revision":null,"url":"assets/d-BoXegm-a.js"},{"revision":null,"url":"assets/cypher-m2LEI-9-.js"},{"revision":null,"url":"assets/cue-DtFQj3wx.js"},{"revision":null,"url":"assets/csv-B0qRVHPH.js"},{"revision":null,"url":"assets/css-BPhBrDlE.js"},{"revision":null,"url":"assets/csharp-D9R-vmeu.js"},{"revision":null,"url":"assets/crystal-DtDmRg-F.js"},{"revision":null,"url":"assets/cpp-BksuvNSY.js"},{"revision":null,"url":"assets/coq-Dsg_Bt_b.js"},{"revision":null,"url":"assets/common-lisp-C7gG9l05.js"},{"revision":null,"url":"assets/commandTokenHighlight-aR071CNy.js"},{"revision":null,"url":"assets/coffee-dyiR41kL.js"},{"revision":null,"url":"assets/codeql-sacFqUAJ.js"},{"revision":null,"url":"assets/codeowners-Bp6g37R7.js"},{"revision":null,"url":"assets/cobol-PTqiYgYu.js"},{"revision":null,"url":"assets/cmake-DbXoA79R.js"},{"revision":null,"url":"assets/clojure-DxSadP1t.js"},{"revision":null,"url":"assets/clarity-BHOwM8T6.js"},{"revision":null,"url":"assets/catppuccin-mocha-LGGdnPYs.js"},{"revision":null,"url":"assets/catppuccin-macchiato-C-_shW-Y.js"},{"revision":null,"url":"assets/catppuccin-latte-DRW-0cLl.js"},{"revision":null,"url":"assets/catppuccin-frappe-CD_QflpE.js"},{"revision":null,"url":"assets/cairo--RitsXJZ.js"},{"revision":null,"url":"assets/cadence-DNquZEk8.js"},{"revision":null,"url":"assets/c-C3t2pwGQ.js"},{"revision":null,"url":"assets/bsl-Dgyn0ogV.js"},{"revision":null,"url":"assets/blade-a8OxSdnT.js"},{"revision":null,"url":"assets/bicep-DHo0CJ0O.js"},{"revision":null,"url":"assets/bibtex-xW4inM5L.js"},{"revision":null,"url":"assets/berry-3xVqZejG.js"},{"revision":null,"url":"assets/beancount-BwXTMy5W.js"},{"revision":null,"url":"assets/bat-fje9CFhw.js"},{"revision":null,"url":"assets/ballerina-Du268qiB.js"},{"revision":null,"url":"assets/ayu-dark-Cv9koXgw.js"},{"revision":null,"url":"assets/awk-eg146-Ew.js"},{"revision":null,"url":"assets/aurora-x-D-2ljcwZ.js"},{"revision":null,"url":"assets/astro-CqkE3fuf.js"},{"revision":null,"url":"assets/asm-Dhn9LcZ4.js"},{"revision":null,"url":"assets/asciidoc-BPT9niGB.js"},{"revision":null,"url":"assets/ara-7O62HKoU.js"},{"revision":null,"url":"assets/applescript-Bu5BbsvL.js"},{"revision":null,"url":"assets/apl-BBq3IX1j.js"},{"revision":null,"url":"assets/apex-COJ4H7py.js"},{"revision":null,"url":"assets/apache-Dn00JSTd.js"},{"revision":null,"url":"assets/angular-ts-CKsD7JZE.js"},{"revision":null,"url":"assets/angular-html-LfdN0zeE.js"},{"revision":null,"url":"assets/andromeeda-C3khCPGq.js"},{"revision":null,"url":"assets/agentExampleHighlight-Dws80em9.js"},{"revision":null,"url":"assets/ada-727ZlQH0.js"},{"revision":null,"url":"assets/actionscript-3-D_z4Izcz.js"},{"revision":null,"url":"assets/abap-DsBKuouk.js"},{"revision":"710f7c0577f8e2dd7288a06749b30908","url":"favicon-192.png"},{"revision":"1e1bc44ff474c3bf70c70d1d691b848a","url":"favicon-512.png"},{"revision":"d30adf27deefad03e3f0011fd636c33c","url":"favicon.png"},{"revision":"16c7052dce01618a890a3a0f0d16d5e1","url":"logo-header.png"},{"revision":"73823f5977e611854fa5c540c75162f8","url":"logo-splash.png"},{"revision":"db3ed099a1d362c3bf53ecf690caec39","url":"manifest.webmanifest"}]);q(({url:s})=>s.pathname.startsWith("/api/"),new _e({cacheName:"api-cache",plugins:[new Ae({maxEntries:50,maxAgeSeconds:60*5})]}));self.addEventListener("push",s=>{var o,h;let e={};try{e=((o=s.data)==null?void 0:o.json())??{}}catch{e={title:"Hammoc",body:((h=s.data)==null?void 0:h.text())||""}}const{title:t,body:n,icon:a,badge:i,tag:r,url:c}=e;s.waitUntil(self.registration.showNotification(t||"Hammoc",{body:n||"",icon:a||"/favicon-192.png",badge:i||"/favicon-192.png",tag:r||"hammoc-notification",data:{url:c}}))});self.addEventListener("notificationclick",s=>{var t;s.notification.close();const e=((t=s.notification.data)==null?void 0:t.url)||"/";s.waitUntil(self.clients.matchAll({type:"window",includeUncontrolled:!0}).then(n=>{for(const a of n)if(a.url.includes(self.location.origin)&&"focus"in a){a.focus(),e!=="/"&&a.navigate(e);return}return self.clients.openWindow(e)}))});
|
|
1
|
+
try{self["workbox:core:7.3.0"]&&_()}catch{}const G=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},z=G;class l extends Error{constructor(e,t){const n=z(e,t);super(n),this.name=e,this.details=t}}const d={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},E=s=>[d.prefix,s,d.suffix].filter(e=>e&&e.length>0).join("-"),J=s=>{for(const e of Object.keys(d))s(e)},x={updateDetails:s=>{J(e=>{typeof s[e]=="string"&&(d[e]=s[e])})},getGoogleAnalyticsName:s=>s||E(d.googleAnalytics),getPrecacheName:s=>s||E(d.precache),getPrefix:()=>d.prefix,getRuntimeName:s=>s||E(d.runtime),getSuffix:()=>d.suffix};function S(s,e){const t=e();return s.waitUntil(t),t}try{self["workbox:precaching:7.3.0"]&&_()}catch{}const X="__WB_REVISION__";function Y(s){if(!s)throw new l("add-to-cache-list-unexpected-type",{entry:s});if(typeof s=="string"){const r=new URL(s,location.href);return{cacheKey:r.href,url:r.href}}const{revision:e,url:t}=s;if(!t)throw new l("add-to-cache-list-unexpected-type",{entry:s});if(!e){const r=new URL(t,location.href);return{cacheKey:r.href,url:r.href}}const n=new URL(t,location.href),a=new URL(t,location.href);return n.searchParams.set(X,e),{cacheKey:n.href,url:a.href}}class Z{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:n})=>{if(e.type==="install"&&t&&t.originalRequest&&t.originalRequest instanceof Request){const a=t.originalRequest.url;n?this.notUpdatedURLs.push(a):this.updatedURLs.push(a)}return n}}}class ee{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:t,params:n})=>{const a=(n==null?void 0:n.cacheKey)||this._precacheController.getCacheKeyForURL(t.url);return a?new Request(a,{headers:t.headers}):t},this._precacheController=e}}let g;function te(){if(g===void 0){const s=new Response("");if("body"in s)try{new Response(s.body),g=!0}catch{g=!1}g=!1}return g}async function se(s,e){let t=null;if(s.url&&(t=new URL(s.url).origin),t!==self.location.origin)throw new l("cross-origin-copy-response",{origin:t});const n=s.clone(),r={headers:new Headers(n.headers),status:n.status,statusText:n.statusText},i=te()?n.body:await n.blob();return new Response(i,r)}const ne=s=>new URL(String(s),location.href).href.replace(new RegExp(`^${location.origin}`),"");function K(s,e){const t=new URL(s);for(const n of e)t.searchParams.delete(n);return t.href}async function ae(s,e,t,n){const a=K(e.url,t);if(e.url===a)return s.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),i=await s.keys(e,r);for(const o of i){const c=K(o.url,t);if(a===c)return s.match(o,n)}}class re{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}const j=new Set;async function ie(){for(const s of j)await s()}function F(s){return new Promise(e=>setTimeout(e,s))}try{self["workbox:strategies:7.3.0"]&&_()}catch{}function b(s){return typeof s=="string"?new Request(s):s}class oe{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new re,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const n of this._plugins)this._pluginStateMap.set(n,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let n=b(e);if(n.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const i=await t.preloadResponse;if(i)return i}const a=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const i of this.iterateCallbacks("requestWillFetch"))n=await i({request:n.clone(),event:t})}catch(i){if(i instanceof Error)throw new l("plugin-error-request-will-fetch",{thrownErrorMessage:i.message})}const r=n.clone();try{let i;i=await fetch(n,n.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const o of this.iterateCallbacks("fetchDidSucceed"))i=await o({event:t,request:r,response:i});return i}catch(i){throw a&&await this.runCallbacks("fetchDidFail",{error:i,event:t,originalRequest:a.clone(),request:r.clone()}),i}}async fetchAndCachePut(e){const t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){const t=b(e);let n;const{cacheName:a,matchOptions:r}=this._strategy,i=await this.getCacheKey(t,"read"),o=Object.assign(Object.assign({},r),{cacheName:a});n=await caches.match(i,o);for(const c of this.iterateCallbacks("cachedResponseWillBeUsed"))n=await c({cacheName:a,matchOptions:r,cachedResponse:n,request:i,event:this.event})||void 0;return n}async cachePut(e,t){const n=b(e);await F(0);const a=await this.getCacheKey(n,"write");if(!t)throw new l("cache-put-with-no-response",{url:ne(a.url)});const r=await this._ensureResponseSafeToCache(t);if(!r)return!1;const{cacheName:i,matchOptions:o}=this._strategy,c=await self.caches.open(i),h=this.hasCallback("cacheDidUpdate"),m=h?await ae(c,a.clone(),["__WB_REVISION__"],o):null;try{await c.put(a,h?r.clone():r)}catch(u){if(u instanceof Error)throw u.name==="QuotaExceededError"&&await ie(),u}for(const u of this.iterateCallbacks("cacheDidUpdate"))await u({cacheName:i,oldResponse:m,newResponse:r.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let a=e;for(const r of this.iterateCallbacks("cacheKeyWillBeUsed"))a=b(await r({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[n]=a}return this._cacheKeys[n]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const n=this._pluginStateMap.get(t);yield r=>{const i=Object.assign(Object.assign({},r),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){for(;this._extendLifetimePromises.length;){const e=this._extendLifetimePromises.splice(0),n=(await Promise.allSettled(e)).find(a=>a.status==="rejected");if(n)throw n.reason}}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(const a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}}class N{constructor(e={}){this.cacheName=x.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,n=typeof e.request=="string"?new Request(e.request):e.request,a="params"in e?e.params:void 0,r=new oe(this,{event:t,request:n,params:a}),i=this._getResponse(r,n,t),o=this._awaitComplete(i,r,n,t);return[i,o]}async _getResponse(e,t,n){await e.runCallbacks("handlerWillStart",{event:n,request:t});let a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new l("no-response",{url:t.url})}catch(r){if(r instanceof Error){for(const i of e.iterateCallbacks("handlerDidError"))if(a=await i({error:r,event:n,request:t}),a)break}if(!a)throw r}for(const r of e.iterateCallbacks("handlerWillRespond"))a=await r({event:n,request:t,response:a});return a}async _awaitComplete(e,t,n,a){let r,i;try{r=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:n,response:r}),await t.doneWaiting()}catch(o){o instanceof Error&&(i=o)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:n,response:r,error:i}),t.destroy(),i)throw i}}class p extends N{constructor(e={}){e.cacheName=x.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=e.fallbackToNetwork!==!1,this.plugins.push(p.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const n=await t.cacheMatch(e);return n||(t.event&&t.event.type==="install"?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let n;const a=t.params||{};if(this._fallbackToNetwork){const r=a.integrity,i=e.integrity,o=!i||i===r;n=await t.fetch(new Request(e,{integrity:e.mode!=="no-cors"?i||r:void 0})),r&&o&&e.mode!=="no-cors"&&(this._useDefaultCacheabilityPluginIfNeeded(),await t.cachePut(e,n.clone()))}else throw new l("missing-precache-entry",{cacheName:this.cacheName,url:e.url});return n}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();const n=await t.fetch(e);if(!await t.cachePut(e,n.clone()))throw new l("bad-precaching-response",{url:e.url,status:n.status});return n}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[n,a]of this.plugins.entries())a!==p.copyRedirectedCacheableResponsesPlugin&&(a===p.defaultPrecacheCacheabilityPlugin&&(e=n),a.cacheWillUpdate&&t++);t===0?this.plugins.push(p.defaultPrecacheCacheabilityPlugin):t>1&&e!==null&&this.plugins.splice(e,1)}}p.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:s}){return!s||s.status>=400?null:s}};p.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:s}){return s.redirected?await se(s):s}};class ce{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new p({cacheName:x.getPrecacheName(e),plugins:[...t,new ee({precacheController:this})],fallbackToNetwork:n}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){const t=[];for(const n of e){typeof n=="string"?t.push(n):n&&n.revision===void 0&&t.push(n.url);const{cacheKey:a,url:r}=Y(n),i=typeof n!="string"&&n.revision?"reload":"default";if(this._urlsToCacheKeys.has(r)&&this._urlsToCacheKeys.get(r)!==a)throw new l("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(r),secondEntry:a});if(typeof n!="string"&&n.integrity){if(this._cacheKeysToIntegrities.has(a)&&this._cacheKeysToIntegrities.get(a)!==n.integrity)throw new l("add-to-cache-list-conflicting-integrities",{url:r});this._cacheKeysToIntegrities.set(a,n.integrity)}if(this._urlsToCacheKeys.set(r,a),this._urlsToCacheModes.set(r,i),t.length>0){const o=`Workbox is precaching URLs without revision info: ${t.join(", ")}
|
|
2
|
+
This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(o)}}}install(e){return S(e,async()=>{const t=new Z;this.strategy.plugins.push(t);for(const[r,i]of this._urlsToCacheKeys){const o=this._cacheKeysToIntegrities.get(i),c=this._urlsToCacheModes.get(r),h=new Request(r,{integrity:o,cache:c,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:i},request:h,event:e}))}const{updatedURLs:n,notUpdatedURLs:a}=t;return{updatedURLs:n,notUpdatedURLs:a}})}activate(e){return S(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),n=await t.keys(),a=new Set(this._urlsToCacheKeys.values()),r=[];for(const i of n)a.has(i.url)||(await t.delete(i),r.push(i.url));return{deletedURLs:r}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new l("non-precached-url",{url:e});return n=>(n.request=new Request(e),n.params=Object.assign({cacheKey:t},n.params),this.strategy.handle(n))}}let k;const H=()=>(k||(k=new ce),k);try{self["workbox:routing:7.3.0"]&&_()}catch{}const q="GET",C=s=>s&&typeof s=="object"?s:{handle:s};class R{constructor(e,t,n=q){this.handler=C(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=C(e)}}class he extends R{constructor(e,t,n){const a=({url:r})=>{const i=e.exec(r.href);if(i&&!(r.origin!==location.origin&&i.index!==0))return i.slice(1)};super(a,t,n)}}class le{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const r=new Request(...a);return this.handleRequest({request:r,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const n=new URL(e.url,location.href);if(!n.protocol.startsWith("http"))return;const a=n.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:n});let o=i&&i.handler;const c=e.method;if(!o&&this._defaultHandlerMap.has(c)&&(o=this._defaultHandlerMap.get(c)),!o)return;let h;try{h=o.handle({url:n,request:e,event:t,params:r})}catch(u){h=Promise.reject(u)}const m=i&&i.catchHandler;return h instanceof Promise&&(this._catchHandler||m)&&(h=h.catch(async u=>{if(m)try{return await m.handle({url:n,request:e,event:t,params:r})}catch(v){v instanceof Error&&(u=v)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw u})),h}findMatchingRoute({url:e,sameOrigin:t,request:n,event:a}){const r=this._routes.get(n.method)||[];for(const i of r){let o;const c=i.match({url:e,sameOrigin:t,request:n,event:a});if(c)return o=c,(Array.isArray(o)&&o.length===0||c.constructor===Object&&Object.keys(c).length===0||typeof c=="boolean")&&(o=void 0),{route:i,params:o}}return{}}setDefaultHandler(e,t=q){this._defaultHandlerMap.set(t,C(e))}setCatchHandler(e){this._catchHandler=C(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new l("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new l("unregister-route-route-not-registered")}}let w;const ue=()=>(w||(w=new le,w.addFetchListener(),w.addCacheListener()),w);function I(s,e,t){let n;if(typeof s=="string"){const r=new URL(s,location.href),i=({url:o})=>o.href===r.href;n=new R(i,e,t)}else if(s instanceof RegExp)n=new he(s,e,t);else if(typeof s=="function")n=new R(s,e,t);else if(s instanceof R)n=s;else throw new l("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return ue().registerRoute(n),n}function de(s,e=[]){for(const t of[...s.searchParams.keys()])e.some(n=>n.test(t))&&s.searchParams.delete(t);return s}function*fe(s,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:n=!0,urlManipulation:a}={}){const r=new URL(s,location.href);r.hash="",yield r.href;const i=de(r,e);if(yield i.href,t&&i.pathname.endsWith("/")){const o=new URL(i.href);o.pathname+=t,yield o.href}if(n){const o=new URL(i.href);o.pathname+=".html",yield o.href}if(a){const o=a({url:r});for(const c of o)yield c.href}}class pe extends R{constructor(e,t){const n=({request:a})=>{const r=e.getURLsToCacheKeys();for(const i of fe(a.url,t)){const o=r.get(i);if(o){const c=e.getIntegrityForCacheKey(o);return{cacheKey:o,integrity:c}}}};super(n,e.strategy)}}function me(s){const e=H(),t=new pe(e,s);I(t)}function ge(s){H().precache(s)}function we(s,e){ge(s),me(e)}const ye={cacheWillUpdate:async({response:s})=>s.status===200||s.status===0?s:null};class _e extends N{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(ye),this._networkTimeoutSeconds=e.networkTimeoutSeconds||0}async _handle(e,t){const n=[],a=[];let r;if(this._networkTimeoutSeconds){const{id:c,promise:h}=this._getTimeoutPromise({request:e,logs:n,handler:t});r=c,a.push(h)}const i=this._getNetworkPromise({timeoutId:r,request:e,logs:n,handler:t});a.push(i);const o=await t.waitUntil((async()=>await t.waitUntil(Promise.race(a))||await i)());if(!o)throw new l("no-response",{url:e.url});return o}_getTimeoutPromise({request:e,logs:t,handler:n}){let a;return{promise:new Promise(i=>{a=setTimeout(async()=>{i(await n.cacheMatch(e))},this._networkTimeoutSeconds*1e3)}),id:a}}async _getNetworkPromise({timeoutId:e,request:t,logs:n,handler:a}){let r,i;try{i=await a.fetchAndCachePut(t)}catch(o){o instanceof Error&&(r=o)}return e&&clearTimeout(e),(r||!i)&&(i=await a.cacheMatch(t)),i}}class Re extends N{constructor(e={}){super(e),this._networkTimeoutSeconds=e.networkTimeoutSeconds||0}async _handle(e,t){let n,a;try{const r=[t.fetch(e)];if(this._networkTimeoutSeconds){const i=F(this._networkTimeoutSeconds*1e3);r.push(i)}if(a=await Promise.race(r),!a)throw new Error(`Timed out the network response after ${this._networkTimeoutSeconds} seconds.`)}catch(r){r instanceof Error&&(n=r)}if(!a)throw new l("no-response",{url:e.url,error:n});return a}}function V(s){s.then(()=>{})}const be=(s,e)=>e.some(t=>s instanceof t);let A,O;function Ce(){return A||(A=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function xe(){return O||(O=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const $=new WeakMap,U=new WeakMap,Q=new WeakMap,T=new WeakMap,M=new WeakMap;function Ee(s){const e=new Promise((t,n)=>{const a=()=>{s.removeEventListener("success",r),s.removeEventListener("error",i)},r=()=>{t(f(s.result)),a()},i=()=>{n(s.error),a()};s.addEventListener("success",r),s.addEventListener("error",i)});return e.then(t=>{t instanceof IDBCursor&&$.set(t,s)}).catch(()=>{}),M.set(e,s),e}function ke(s){if(U.has(s))return;const e=new Promise((t,n)=>{const a=()=>{s.removeEventListener("complete",r),s.removeEventListener("error",i),s.removeEventListener("abort",i)},r=()=>{t(),a()},i=()=>{n(s.error||new DOMException("AbortError","AbortError")),a()};s.addEventListener("complete",r),s.addEventListener("error",i),s.addEventListener("abort",i)});U.set(s,e)}let P={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return U.get(s);if(e==="objectStoreNames")return s.objectStoreNames||Q.get(s);if(e==="store")return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return f(s[e])},set(s,e,t){return s[e]=t,!0},has(s,e){return s instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in s}};function Te(s){P=s(P)}function De(s){return s===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){const n=s.call(D(this),e,...t);return Q.set(n,e.sort?e.sort():[e]),f(n)}:xe().includes(s)?function(...e){return s.apply(D(this),e),f($.get(this))}:function(...e){return f(s.apply(D(this),e))}}function Le(s){return typeof s=="function"?De(s):(s instanceof IDBTransaction&&ke(s),be(s,Ce())?new Proxy(s,P):s)}function f(s){if(s instanceof IDBRequest)return Ee(s);if(T.has(s))return T.get(s);const e=Le(s);return e!==s&&(T.set(s,e),M.set(e,s)),e}const D=s=>M.get(s);function Ue(s,e,{blocked:t,upgrade:n,blocking:a,terminated:r}={}){const i=indexedDB.open(s,e),o=f(i);return n&&i.addEventListener("upgradeneeded",c=>{n(f(i.result),c.oldVersion,c.newVersion,f(i.transaction),c)}),t&&i.addEventListener("blocked",c=>t(c.oldVersion,c.newVersion,c)),o.then(c=>{r&&c.addEventListener("close",()=>r()),a&&c.addEventListener("versionchange",h=>a(h.oldVersion,h.newVersion,h))}).catch(()=>{}),o}function Pe(s,{blocked:e}={}){const t=indexedDB.deleteDatabase(s);return e&&t.addEventListener("blocked",n=>e(n.oldVersion,n)),f(t).then(()=>{})}const Ne=["get","getKey","getAll","getAllKeys","count"],Ie=["put","add","delete","clear"],L=new Map;function W(s,e){if(!(s instanceof IDBDatabase&&!(e in s)&&typeof e=="string"))return;if(L.get(e))return L.get(e);const t=e.replace(/FromIndex$/,""),n=e!==t,a=Ie.includes(t);if(!(t in(n?IDBIndex:IDBObjectStore).prototype)||!(a||Ne.includes(t)))return;const r=async function(i,...o){const c=this.transaction(i,a?"readwrite":"readonly");let h=c.store;return n&&(h=h.index(o.shift())),(await Promise.all([h[t](...o),a&&c.done]))[0]};return L.set(e,r),r}Te(s=>({...s,get:(e,t,n)=>W(e,t)||s.get(e,t,n),has:(e,t)=>!!W(e,t)||s.has(e,t)}));try{self["workbox:expiration:7.3.0"]&&_()}catch{}const Me="workbox-expiration",y="cache-entries",B=s=>{const e=new URL(s,location.href);return e.hash="",e.href};class ve{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(y,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&Pe(this._cacheName)}async setTimestamp(e,t){e=B(e);const n={url:e,timestamp:t,cacheName:this._cacheName,id:this._getId(e)},r=(await this.getDb()).transaction(y,"readwrite",{durability:"relaxed"});await r.store.put(n),await r.done}async getTimestamp(e){const n=await(await this.getDb()).get(y,this._getId(e));return n==null?void 0:n.timestamp}async expireEntries(e,t){const n=await this.getDb();let a=await n.transaction(y).store.index("timestamp").openCursor(null,"prev");const r=[];let i=0;for(;a;){const c=a.value;c.cacheName===this._cacheName&&(e&&c.timestamp<e||t&&i>=t?r.push(a.value):i++),a=await a.continue()}const o=[];for(const c of r)await n.delete(y,c.id),o.push(c.url);return o}_getId(e){return this._cacheName+"|"+B(e)}async getDb(){return this._db||(this._db=await Ue(Me,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class Se{constructor(e,t={}){this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=t.maxEntries,this._maxAgeSeconds=t.maxAgeSeconds,this._matchOptions=t.matchOptions,this._cacheName=e,this._timestampModel=new ve(e)}async expireEntries(){if(this._isRunning){this._rerunRequested=!0;return}this._isRunning=!0;const e=this._maxAgeSeconds?Date.now()-this._maxAgeSeconds*1e3:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),n=await self.caches.open(this._cacheName);for(const a of t)await n.delete(a,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,V(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),n=Date.now()-this._maxAgeSeconds*1e3;return t!==void 0?t<n:!0}else return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}function Ke(s){j.add(s)}class Ae{constructor(e={}){this.cachedResponseWillBeUsed=async({event:t,request:n,cacheName:a,cachedResponse:r})=>{if(!r)return null;const i=this._isResponseDateFresh(r),o=this._getCacheExpiration(a);V(o.expireEntries());const c=o.updateTimestamp(n.url);if(t)try{t.waitUntil(c)}catch{}return i?r:null},this.cacheDidUpdate=async({cacheName:t,request:n})=>{const a=this._getCacheExpiration(t);await a.updateTimestamp(n.url),await a.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&Ke(()=>this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===x.getRuntimeName())throw new l("expire-custom-caches-only");let t=this._cacheExpirations.get(e);return t||(t=new Se(e,this._config),this._cacheExpirations.set(e,t)),t}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;const t=this._getDateHeaderTimestamp(e);if(t===null)return!0;const n=Date.now();return t>=n-this._maxAgeSeconds*1e3}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;const t=e.headers.get("date"),a=new Date(t).getTime();return isNaN(a)?null:a}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete();this._cacheExpirations=new Map}}self.skipWaiting();self.addEventListener("activate",()=>self.clients.claim());we([{"revision":"73823f5977e611854fa5c540c75162f8","url":"logo-splash.png"},{"revision":"16c7052dce01618a890a3a0f0d16d5e1","url":"logo-header.png"},{"revision":"13bacf37e0baf41068992f5a818da27e","url":"index.html"},{"revision":"d30adf27deefad03e3f0011fd636c33c","url":"favicon.png"},{"revision":"1e1bc44ff474c3bf70c70d1d691b848a","url":"favicon-512.png"},{"revision":"710f7c0577f8e2dd7288a06749b30908","url":"favicon-192.png"},{"revision":null,"url":"assets/zig-BVz_zdnA.js"},{"revision":null,"url":"assets/zenscript-HnGAYVZD.js"},{"revision":null,"url":"assets/yaml-CVw76BM1.js"},{"revision":null,"url":"assets/xychartDiagram-FW5EYKEG-CaJG8r0j.js"},{"revision":null,"url":"assets/xsl-Dd0NUgwM.js"},{"revision":null,"url":"assets/xml-e3z08dGr.js"},{"revision":null,"url":"assets/workbox-window.prod.es5-BIl4cyR9.js"},{"revision":null,"url":"assets/wolfram-C3FkfJm5.js"},{"revision":null,"url":"assets/wikitext-DCE3LsBG.js"},{"revision":null,"url":"assets/wgsl-CB0Krxn9.js"},{"revision":null,"url":"assets/wenyan-7A4Fjokl.js"},{"revision":null,"url":"assets/wasm-CG6Dc4jp.js"},{"revision":null,"url":"assets/wasm-C6j12Q_x.js"},{"revision":null,"url":"assets/wardleyDiagram-EHGQE667-DKvVEb3V.js"},{"revision":null,"url":"assets/vyper-nyqBNV6O.js"},{"revision":null,"url":"assets/vue-html-xdeiXROB.js"},{"revision":null,"url":"assets/vue-BuYVFjOK.js"},{"revision":null,"url":"assets/vitesse-light-CVO1_9PV.js"},{"revision":null,"url":"assets/vitesse-dark-D0r3Knsf.js"},{"revision":null,"url":"assets/vitesse-black-Bkuqu6BP.js"},{"revision":null,"url":"assets/viml-m4uW47V2.js"},{"revision":null,"url":"assets/vhdl-DYoNaHQp.js"},{"revision":null,"url":"assets/vesper-BEBZ7ncR.js"},{"revision":null,"url":"assets/verilog-CJaU5se_.js"},{"revision":null,"url":"assets/vennDiagram-L72KCM5P-TajEacPR.js"},{"revision":null,"url":"assets/vb-CdO5JTpU.js"},{"revision":null,"url":"assets/vala-BFOHcciG.js"},{"revision":null,"url":"assets/v-CAQ2eGtk.js"},{"revision":null,"url":"assets/typst-BVUVsWT6.js"},{"revision":null,"url":"assets/typespec-BpWG_bgh.js"},{"revision":null,"url":"assets/typescript-Dj6nwHGl.js"},{"revision":null,"url":"assets/twig-NC5TFiHP.js"},{"revision":null,"url":"assets/turtle-BMR_PYu6.js"},{"revision":null,"url":"assets/tsx-B6W0miNI.js"},{"revision":null,"url":"assets/tsv-B_m7g4N7.js"},{"revision":null,"url":"assets/ts-tags-CipyTH0X.js"},{"revision":null,"url":"assets/toml-CB2ApiWb.js"},{"revision":null,"url":"assets/tokyo-night-DBQeEorK.js"},{"revision":null,"url":"assets/timeline-definition-FHXFAJF6-CLzKR6_i.js"},{"revision":null,"url":"assets/tex-rYs2v40G.js"},{"revision":null,"url":"assets/terraform-BbSNqyBO.js"},{"revision":null,"url":"assets/templ-dwX3ZSMB.js"},{"revision":null,"url":"assets/tcl-DQ1-QYvQ.js"},{"revision":null,"url":"assets/tasl-CQjiPCtT.js"},{"revision":null,"url":"assets/talonscript-C1XDQQGZ.js"},{"revision":null,"url":"assets/systemd-CUnW07Te.js"},{"revision":null,"url":"assets/system-verilog-C7L56vO4.js"},{"revision":null,"url":"assets/synthwave-84-CbfX1IO0.js"},{"revision":null,"url":"assets/swimlanesDiagram-G3AALYLV-C0FDo-hf.js"},{"revision":null,"url":"assets/swimlanes-5IMT3BWC-BcR7uCTf.js"},{"revision":null,"url":"assets/swift-BSxZ-RaX.js"},{"revision":null,"url":"assets/svelte-MSaWC3Je.js"},{"revision":null,"url":"assets/stylus-BeQkCIfX.js"},{"revision":null,"url":"assets/stateDiagram-v2-6OUMAXLB-DLkUyWs6.js"},{"revision":null,"url":"assets/stateDiagram-2N3HPSRC-DoOeZoRP.js"},{"revision":null,"url":"assets/stata-DorPZHa4.js"},{"revision":null,"url":"assets/ssh-config-BknIz3MU.js"},{"revision":null,"url":"assets/sql-COK4E0Yg.js"},{"revision":null,"url":"assets/splunk-Cf8iN4DR.js"},{"revision":null,"url":"assets/sparql-bYkjHRlG.js"},{"revision":null,"url":"assets/soy-C-lX7w71.js"},{"revision":null,"url":"assets/solidity-C1w2a3ep.js"},{"revision":null,"url":"assets/solarized-light-L9t79GZl.js"},{"revision":null,"url":"assets/solarized-dark-DXbdFlpD.js"},{"revision":null,"url":"assets/snippetTokenHighlight-qXHxvlCE.js"},{"revision":null,"url":"assets/snazzy-light-Bw305WKR.js"},{"revision":null,"url":"assets/smalltalk-DkLiglaE.js"},{"revision":null,"url":"assets/slack-ochin-DqwNpetd.js"},{"revision":null,"url":"assets/slack-dark-BthQWCQV.js"},{"revision":null,"url":"assets/sizeCapture-X5ZJPWSS-DYuc-rzB.js"},{"revision":null,"url":"assets/shellsession-C_rIy8kc.js"},{"revision":null,"url":"assets/shellscript-atvbtKCR.js"},{"revision":null,"url":"assets/shaderlab-B7qAK45m.js"},{"revision":null,"url":"assets/sequenceDiagram-DBY2YBRQ-Da5YJcDJ.js"},{"revision":null,"url":"assets/sdbl-BLhTXw86.js"},{"revision":null,"url":"assets/scss-C31hgJw-.js"},{"revision":null,"url":"assets/scheme-BJGe-b2p.js"},{"revision":null,"url":"assets/scala-DQVVAn-B.js"},{"revision":null,"url":"assets/sass-BJ4Li9vH.js"},{"revision":null,"url":"assets/sas-BmTFh92c.js"},{"revision":null,"url":"assets/sankeyDiagram-HTMAVEWB--I_lSbCV.js"},{"revision":null,"url":"assets/rust-Be6lgOlo.js"},{"revision":null,"url":"assets/ruby-DeZ3UC14.js"},{"revision":null,"url":"assets/rst-4NLicBqY.js"},{"revision":null,"url":"assets/rose-pine-moon-CjDtw9vr.js"},{"revision":null,"url":"assets/rose-pine-dawn-Ds-gbosJ.js"},{"revision":null,"url":"assets/rose-pine-CmCqftbK.js"},{"revision":null,"url":"assets/riscv-QhoSD0DR.js"},{"revision":null,"url":"assets/requirementDiagram-TGXJPOKE-D209tlqv.js"},{"revision":null,"url":"assets/rel-DJlmqQ1C.js"},{"revision":null,"url":"assets/regexp-DWJ3fJO_.js"},{"revision":null,"url":"assets/reg-5LuOXUq_.js"},{"revision":null,"url":"assets/red-bN70gL4F.js"},{"revision":null,"url":"assets/razor-CNLDkMZG.js"},{"revision":null,"url":"assets/raku-B1bQXN8T.js"},{"revision":null,"url":"assets/railroadDiagram-RFXS5EU6-Bc-Q7iPs.js"},{"revision":null,"url":"assets/racket-CzouJOBO.js"},{"revision":null,"url":"assets/r-CwjWoCRV.js"},{"revision":null,"url":"assets/quadrantDiagram-ABIIQ3AL-FmTxRIlW.js"},{"revision":null,"url":"assets/qss-DhMKtDLN.js"},{"revision":null,"url":"assets/qmldir-C8lEn-DE.js"},{"revision":null,"url":"assets/qml-D8XfuvdV.js"},{"revision":null,"url":"assets/python-DhUJRlN_.js"},{"revision":null,"url":"assets/purescript-Bg-kzb6g.js"},{"revision":null,"url":"assets/puppet-Cza_XSSt.js"},{"revision":null,"url":"assets/pug-CM9l7STV.js"},{"revision":null,"url":"assets/proto-zocC4JxJ.js"},{"revision":null,"url":"assets/prolog-BY-TUvya.js"},{"revision":null,"url":"assets/prisma-B48N-Iqd.js"},{"revision":null,"url":"assets/powershell-BIEUsx6d.js"},{"revision":null,"url":"assets/powerquery-CSHBycmS.js"},{"revision":null,"url":"assets/postcss-B3ZDOciz.js"},{"revision":null,"url":"assets/polar-DKykz6zU.js"},{"revision":null,"url":"assets/poimandres-CS3Unz2-.js"},{"revision":null,"url":"assets/po-BFLt1xDp.js"},{"revision":null,"url":"assets/plsql-LKU2TuZ1.js"},{"revision":null,"url":"assets/plastic-3e1v2bzS.js"},{"revision":null,"url":"assets/pieDiagram-ENE6RG2P-DRDhpjxP.js"},{"revision":null,"url":"assets/php-B5ebYQev.js"},{"revision":null,"url":"assets/perl-CHQXSrWU.js"},{"revision":null,"url":"assets/pegDiagram-2B236MQR-4gKLzTqu.js"},{"revision":null,"url":"assets/PdfViewer-QCQEGvBO.css"},{"revision":null,"url":"assets/PdfViewer-C3Nymwn3.js"},{"revision":null,"url":"assets/pascal-JqZropPD.js"},{"revision":null,"url":"assets/ordinal-Cboi1Yqb.js"},{"revision":null,"url":"assets/one-light-PoHY5YXO.js"},{"revision":null,"url":"assets/one-dark-pro-GBQ2dnAY.js"},{"revision":null,"url":"assets/ocaml-BNioltXt.js"},{"revision":null,"url":"assets/objective-cpp-BUEGK8hf.js"},{"revision":null,"url":"assets/objective-c-Deuh7S70.js"},{"revision":null,"url":"assets/nushell-D4Tzg5kh.js"},{"revision":null,"url":"assets/nord-Ddv68eIx.js"},{"revision":null,"url":"assets/nix-shcSOmrb.js"},{"revision":null,"url":"assets/nim-ZlGxZxc3.js"},{"revision":null,"url":"assets/night-owl-C39BiMTA.js"},{"revision":null,"url":"assets/nginx-D_VnBJ67.js"},{"revision":null,"url":"assets/nextflow-B0XVJmRM.js"},{"revision":null,"url":"assets/narrat-DLbgOhZU.js"},{"revision":null,"url":"assets/move-DB_GagMm.js"},{"revision":null,"url":"assets/monokai-D4h5O-jR.js"},{"revision":null,"url":"assets/mojo-Tz6hzZYG.js"},{"revision":null,"url":"assets/mipsasm-BC5c_5Pe.js"},{"revision":null,"url":"assets/mindmap-definition-LN4V7U3C-zi30RPoJ.js"},{"revision":null,"url":"assets/min-light-CTRr51gU.js"},{"revision":null,"url":"assets/min-dark-CafNBF8u.js"},{"revision":null,"url":"assets/MermaidViewer-B-LwclIl.js"},{"revision":null,"url":"assets/mermaid.core-jAhLhPYr.js"},{"revision":null,"url":"assets/mermaid-Ci6OQyBP.js"},{"revision":null,"url":"assets/mdx-sdHcTMYB.js"},{"revision":null,"url":"assets/mdc-DB_EDNY_.js"},{"revision":null,"url":"assets/matlab-D9-PGadD.js"},{"revision":null,"url":"assets/material-theme-palenight-Csfq5Kiy.js"},{"revision":null,"url":"assets/material-theme-ocean-CyktbL80.js"},{"revision":null,"url":"assets/material-theme-lighter-B0m2ddpp.js"},{"revision":null,"url":"assets/material-theme-darker-BfHTSMKl.js"},{"revision":null,"url":"assets/material-theme-D5KoaKCx.js"},{"revision":null,"url":"assets/marko-z0MBrx5-.js"},{"revision":null,"url":"assets/markdown-UIAJJxZW.js"},{"revision":null,"url":"assets/map-Czzmt4hB.js"},{"revision":null,"url":"assets/make-Bvotw-X0.js"},{"revision":null,"url":"assets/luau-Du5NY7AG.js"},{"revision":null,"url":"assets/lua-CvWAzNxB.js"},{"revision":null,"url":"assets/logo-IuBKFhSY.js"},{"revision":null,"url":"assets/log-Cc5clBb7.js"},{"revision":null,"url":"assets/liquid-D3W5UaiH.js"},{"revision":null,"url":"assets/linear-Cnp1E9M4.js"},{"revision":null,"url":"assets/light-plus-B7mTdjB0.js"},{"revision":null,"url":"assets/less-BfCpw3nA.js"},{"revision":null,"url":"assets/lean-XBlWyCtg.js"},{"revision":null,"url":"assets/layout-DEXfKzaS.js"},{"revision":null,"url":"assets/latex-C-cWTeAZ.js"},{"revision":null,"url":"assets/laserwave-DUszq2jm.js"},{"revision":null,"url":"assets/kusto-mebxcVVE.js"},{"revision":null,"url":"assets/kotlin-B5lbUyaz.js"},{"revision":null,"url":"assets/katex-C5jXJg4s.js"},{"revision":null,"url":"assets/kanban-definition-HUTT4EX6-CHx3wOer.js"},{"revision":null,"url":"assets/kanagawa-wave-DWedfzmr.js"},{"revision":null,"url":"assets/kanagawa-lotus-CfQXZHmo.js"},{"revision":null,"url":"assets/kanagawa-dragon-CkXjmgJE.js"},{"revision":null,"url":"assets/julia-BBuGR-5E.js"},{"revision":null,"url":"assets/jsx-BAng5TT0.js"},{"revision":null,"url":"assets/jssm-P4WzXJd0.js"},{"revision":null,"url":"assets/jsonnet-BfivnA6A.js"},{"revision":null,"url":"assets/jsonl-DREVFZK8.js"},{"revision":null,"url":"assets/jsonc-TU54ms6u.js"},{"revision":null,"url":"assets/json5-w8dY5SsB.js"},{"revision":null,"url":"assets/json-BQoSv7ci.js"},{"revision":null,"url":"assets/journeyDiagram-5HDEW3XC-d20NzZAd.js"},{"revision":null,"url":"assets/jison-BqZprYcd.js"},{"revision":null,"url":"assets/jinja-DGy0s7-h.js"},{"revision":null,"url":"assets/javascript-ySlJ1b_l.js"},{"revision":null,"url":"assets/java-xI-RfyKK.js"},{"revision":null,"url":"assets/ishikawaDiagram-FXEZZL3T-CHhr5ioQ.js"},{"revision":null,"url":"assets/init-Gi6I4Gst.js"},{"revision":null,"url":"assets/ini-BjABl1g7.js"},{"revision":null,"url":"assets/infoDiagram-FWYZ7A6U-CqvwbXJn.js"},{"revision":null,"url":"assets/index-oBa2uNlv.css"},{"revision":null,"url":"assets/index-hTu6ZG2N.js"},{"revision":null,"url":"assets/index-CtMiUbMJ.js"},{"revision":null,"url":"assets/index-B09doO8H.js"},{"revision":null,"url":"assets/imba-bv_oIlVt.js"},{"revision":null,"url":"assets/hy-BMj5Y0dO.js"},{"revision":null,"url":"assets/hxml-TIA70rKU.js"},{"revision":null,"url":"assets/http-FRrOvY1W.js"},{"revision":null,"url":"assets/html-derivative-CSfWNPLT.js"},{"revision":null,"url":"assets/html-C2L_23MC.js"},{"revision":null,"url":"assets/houston-DnULxvSX.js"},{"revision":null,"url":"assets/hlsl-ifBTmRxC.js"},{"revision":null,"url":"assets/hjson-T-Tgc4AT.js"},{"revision":null,"url":"assets/hcl-HzYwdGDm.js"},{"revision":null,"url":"assets/haxe-C5wWYbrZ.js"},{"revision":null,"url":"assets/haskell-BILxekzW.js"},{"revision":null,"url":"assets/handlebars-BQGss363.js"},{"revision":null,"url":"assets/haml-B2EZWmdv.js"},{"revision":null,"url":"assets/hack-D1yCygmZ.js"},{"revision":null,"url":"assets/groovy-DkBy-JyN.js"},{"revision":null,"url":"assets/graphql-cDcHW_If.js"},{"revision":null,"url":"assets/graph-C9eacEi8.js"},{"revision":null,"url":"assets/go-B1SYOhNW.js"},{"revision":null,"url":"assets/gnuplot-CM8KxXT1.js"},{"revision":null,"url":"assets/glsl-DBO2IWDn.js"},{"revision":null,"url":"assets/glimmer-ts-pgjy16dm.js"},{"revision":null,"url":"assets/glimmer-js-D-cwc0-E.js"},{"revision":null,"url":"assets/gleam-B430Bg39.js"},{"revision":null,"url":"assets/github-light-high-contrast-BfjtVDDH.js"},{"revision":null,"url":"assets/github-light-default-D7oLnXFd.js"},{"revision":null,"url":"assets/github-light-DAi9KRSo.js"},{"revision":null,"url":"assets/github-dark-high-contrast-E3gJ1_iC.js"},{"revision":null,"url":"assets/github-dark-dimmed-DH5Ifo-i.js"},{"revision":null,"url":"assets/github-dark-DHJKELXO.js"},{"revision":null,"url":"assets/github-dark-default-Cuk6v7N8.js"},{"revision":null,"url":"assets/gitGraphDiagram-IHSO6WYX-BGi8Fdm2.js"},{"revision":null,"url":"assets/git-rebase-B-v9cOL2.js"},{"revision":null,"url":"assets/git-commit-i4q6IMui.js"},{"revision":null,"url":"assets/gherkin--30QC5Em.js"},{"revision":null,"url":"assets/genie-ajMbGru0.js"},{"revision":null,"url":"assets/gdshader-SKMF96pI.js"},{"revision":null,"url":"assets/gdscript-DfxzS6Rs.js"},{"revision":null,"url":"assets/gdresource-BHYsBjWJ.js"},{"revision":null,"url":"assets/ganttDiagram-NO4QXBWP-Ct_eFFcM.js"},{"revision":null,"url":"assets/fsharp-XplgxFYe.js"},{"revision":null,"url":"assets/fortran-free-form-DKXYxT9g.js"},{"revision":null,"url":"assets/fortran-fixed-form-TqA4NnZg.js"},{"revision":null,"url":"assets/fluent-Dayu4EKP.js"},{"revision":null,"url":"assets/flowDiagram-23GEKE2U-DAcW6mKJ.js"},{"revision":null,"url":"assets/fish-w-ucz2PV.js"},{"revision":null,"url":"assets/fennel-bCA53EVm.js"},{"revision":null,"url":"assets/everforest-light-C8M2exoo.js"},{"revision":null,"url":"assets/everforest-dark-BgDCqdQA.js"},{"revision":null,"url":"assets/erlang-B-DoSBHF.js"},{"revision":null,"url":"assets/erDiagram-Q63AITRT-B6T87-48.js"},{"revision":null,"url":"assets/erb-BYTLMnw6.js"},{"revision":null,"url":"assets/emacs-lisp-BX77sIaO.js"},{"revision":null,"url":"assets/elm-CmHSxxaM.js"},{"revision":null,"url":"assets/elixir-CLiX3zqd.js"},{"revision":null,"url":"assets/edge-D5gP-w-T.js"},{"revision":null,"url":"assets/ebnfDiagram-CCIWWBDH-DCHpt3qn.js"},{"revision":null,"url":"assets/dream-maker-C-nORZOA.js"},{"revision":null,"url":"assets/dracula-soft-BXkSAIEj.js"},{"revision":null,"url":"assets/dracula-BzJJZx-M.js"},{"revision":null,"url":"assets/dotenv-BjQB5zDj.js"},{"revision":null,"url":"assets/docker-COcR7UxN.js"},{"revision":null,"url":"assets/diff-BgYniUM_.js"},{"revision":null,"url":"assets/diagram-WEI45ONY-ZYebAZ93.js"},{"revision":null,"url":"assets/diagram-OA4YK3LP-DEEcMLgi.js"},{"revision":null,"url":"assets/diagram-NH7WQ7WH-Dulv0f1N.js"},{"revision":null,"url":"assets/diagram-G47NLZAW-B0EIk03o.js"},{"revision":null,"url":"assets/diagram-FQU43EPY-CmNAU8Nw.js"},{"revision":null,"url":"assets/desktop-DEIpsLCJ.js"},{"revision":null,"url":"assets/defaultLocale-DX6XiGOO.js"},{"revision":null,"url":"assets/dax-ClGRhx96.js"},{"revision":null,"url":"assets/dart-B9wLZaAG.js"},{"revision":null,"url":"assets/dark-plus-C3mMm8J8.js"},{"revision":null,"url":"assets/dagre-VKFMJZFB-DyZir42W.js"},{"revision":null,"url":"assets/d-BoXegm-a.js"},{"revision":null,"url":"assets/cytoscape.esm-DTSO7Bv0.js"},{"revision":null,"url":"assets/cypher-m2LEI-9-.js"},{"revision":null,"url":"assets/cynefinDiagram-TSTJHNR4-7zyUTflT.js"},{"revision":null,"url":"assets/cynefin-VYW2F7L2-BYlAJRcO.js"},{"revision":null,"url":"assets/cue-DtFQj3wx.js"},{"revision":null,"url":"assets/csv-B0qRVHPH.js"},{"revision":null,"url":"assets/css-BPhBrDlE.js"},{"revision":null,"url":"assets/csharp-D9R-vmeu.js"},{"revision":null,"url":"assets/crystal-DtDmRg-F.js"},{"revision":null,"url":"assets/cpp-BksuvNSY.js"},{"revision":null,"url":"assets/cose-bilkent-JH36ORCC-CQTNdQ-g.js"},{"revision":null,"url":"assets/coq-Dsg_Bt_b.js"},{"revision":null,"url":"assets/common-lisp-C7gG9l05.js"},{"revision":null,"url":"assets/commandTokenHighlight-DGP0RKx0.js"},{"revision":null,"url":"assets/coffee-dyiR41kL.js"},{"revision":null,"url":"assets/codeql-sacFqUAJ.js"},{"revision":null,"url":"assets/codeowners-Bp6g37R7.js"},{"revision":null,"url":"assets/cobol-PTqiYgYu.js"},{"revision":null,"url":"assets/cmake-DbXoA79R.js"},{"revision":null,"url":"assets/clojure-DxSadP1t.js"},{"revision":null,"url":"assets/classDiagram-v2-EOCWNBFH-C0PbC7Pi.js"},{"revision":null,"url":"assets/classDiagram-OUVF2IWQ-C0PbC7Pi.js"},{"revision":null,"url":"assets/clarity-BHOwM8T6.js"},{"revision":null,"url":"assets/chunk-XXDRQBXY-ENKV2O8a.js"},{"revision":null,"url":"assets/chunk-VR4S4FIN-7jDdkUpx.js"},{"revision":null,"url":"assets/chunk-V7JOEXUC-DjVgQpjl.js"},{"revision":null,"url":"assets/chunk-RYQCIY6F-LTDywRs7.js"},{"revision":null,"url":"assets/chunk-MOJQB5TN-7c-yriHe.js"},{"revision":null,"url":"assets/chunk-JWPE2WC7-B8nCyQAc.js"},{"revision":null,"url":"assets/chunk-EX3LRPZG-BDWPlBKO.js"},{"revision":null,"url":"assets/chunk-5VM5RSS4-WRNf-xsi.js"},{"revision":null,"url":"assets/chunk-32BRIVSS-JuzxS4QA.js"},{"revision":null,"url":"assets/chunk-2Q5K7J3B-4rW1da1Z.js"},{"revision":null,"url":"assets/channel-CPjlbdOo.js"},{"revision":null,"url":"assets/catppuccin-mocha-LGGdnPYs.js"},{"revision":null,"url":"assets/catppuccin-macchiato-C-_shW-Y.js"},{"revision":null,"url":"assets/catppuccin-latte-DRW-0cLl.js"},{"revision":null,"url":"assets/catppuccin-frappe-CD_QflpE.js"},{"revision":null,"url":"assets/cairo--RitsXJZ.js"},{"revision":null,"url":"assets/cadence-DNquZEk8.js"},{"revision":null,"url":"assets/c4Diagram-LMCZKHZV-CE7Tip-_.js"},{"revision":null,"url":"assets/c-C3t2pwGQ.js"},{"revision":null,"url":"assets/bsl-Dgyn0ogV.js"},{"revision":null,"url":"assets/blockDiagram-677ZJIJ3-D0D6ncaN.js"},{"revision":null,"url":"assets/blade-a8OxSdnT.js"},{"revision":null,"url":"assets/bicep-DHo0CJ0O.js"},{"revision":null,"url":"assets/bibtex-xW4inM5L.js"},{"revision":null,"url":"assets/berry-3xVqZejG.js"},{"revision":null,"url":"assets/beancount-BwXTMy5W.js"},{"revision":null,"url":"assets/bat-fje9CFhw.js"},{"revision":null,"url":"assets/ballerina-Du268qiB.js"},{"revision":null,"url":"assets/ayu-dark-Cv9koXgw.js"},{"revision":null,"url":"assets/awk-eg146-Ew.js"},{"revision":null,"url":"assets/aurora-x-D-2ljcwZ.js"},{"revision":null,"url":"assets/astro-CqkE3fuf.js"},{"revision":null,"url":"assets/asm-Dhn9LcZ4.js"},{"revision":null,"url":"assets/asciidoc-BPT9niGB.js"},{"revision":null,"url":"assets/architectureDiagram-ZJ3FMSHR-B4onXLm4.js"},{"revision":null,"url":"assets/arc-8nyjXGC3.js"},{"revision":null,"url":"assets/ara-7O62HKoU.js"},{"revision":null,"url":"assets/applescript-Bu5BbsvL.js"},{"revision":null,"url":"assets/apl-BBq3IX1j.js"},{"revision":null,"url":"assets/apex-COJ4H7py.js"},{"revision":null,"url":"assets/apache-Dn00JSTd.js"},{"revision":null,"url":"assets/angular-ts-CKsD7JZE.js"},{"revision":null,"url":"assets/angular-html-LfdN0zeE.js"},{"revision":null,"url":"assets/andromeeda-C3khCPGq.js"},{"revision":null,"url":"assets/agentExampleHighlight-CyhVLy0_.js"},{"revision":null,"url":"assets/ada-727ZlQH0.js"},{"revision":null,"url":"assets/actionscript-3-D_z4Izcz.js"},{"revision":null,"url":"assets/abnfDiagram-VRR7QNED-GfhY_hnV.js"},{"revision":null,"url":"assets/abap-DsBKuouk.js"},{"revision":"710f7c0577f8e2dd7288a06749b30908","url":"favicon-192.png"},{"revision":"1e1bc44ff474c3bf70c70d1d691b848a","url":"favicon-512.png"},{"revision":"d30adf27deefad03e3f0011fd636c33c","url":"favicon.png"},{"revision":"16c7052dce01618a890a3a0f0d16d5e1","url":"logo-header.png"},{"revision":"73823f5977e611854fa5c540c75162f8","url":"logo-splash.png"},{"revision":"db3ed099a1d362c3bf53ecf690caec39","url":"manifest.webmanifest"}]);I(({url:s})=>s.pathname.startsWith("/api/account")||s.pathname.startsWith("/api/auth"),new Re);I(({url:s})=>s.pathname.startsWith("/api/"),new _e({cacheName:"api-cache",plugins:[new Ae({maxEntries:50,maxAgeSeconds:60*5})]}));self.addEventListener("push",s=>{var c,h;let e={};try{e=((c=s.data)==null?void 0:c.json())??{}}catch{e={title:"Hammoc",body:((h=s.data)==null?void 0:h.text())||""}}const{title:t,body:n,icon:a,badge:r,tag:i,url:o}=e;s.waitUntil(self.registration.showNotification(t||"Hammoc",{body:n||"",icon:a||"/favicon-192.png",badge:r||"/favicon-192.png",tag:i||"hammoc-notification",data:{url:o}}))});self.addEventListener("notificationclick",s=>{var t;s.notification.close();const e=((t=s.notification.data)==null?void 0:t.url)||"/";s.waitUntil(self.clients.matchAll({type:"window",includeUncontrolled:!0}).then(n=>{for(const a of n)if(a.url.includes(self.location.origin)&&"focus"in a){a.focus(),e!=="/"&&a.navigate(e);return}return self.clients.openWindow(e)}))});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountController.d.ts","sourceRoot":"","sources":["../../src/controllers/accountController.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAc5C,6EAA6E;AAC7E,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"accountController.d.ts","sourceRoot":"","sources":["../../src/controllers/accountController.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAc5C,6EAA6E;AAC7E,wBAAsB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAY9E;AAED,+EAA+E;AAC/E,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA4D9E;AAED,qFAAqF;AACrF,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB9E"}
|
|
@@ -17,6 +17,14 @@ import { createLogger } from '../utils/logger.js';
|
|
|
17
17
|
const log = createLogger('accountController');
|
|
18
18
|
/** GET /api/accounts — list stored accounts (token-free) + active marker. */
|
|
19
19
|
export async function listAccounts(_req, res) {
|
|
20
|
+
// Opportunistic email back-fill: if the active account is still stored under an `account:<hash>`
|
|
21
|
+
// fallback key (the login captured it before an email resolved) but we now have a resolved email
|
|
22
|
+
// cached, re-key it so the list shows a real identity instead of `account:<hash>`. backfill is a
|
|
23
|
+
// no-op when the active account already has an email, so calling it on every list is safe.
|
|
24
|
+
const cachedEmail = accountInfoService.getCached().account?.email;
|
|
25
|
+
if (cachedEmail) {
|
|
26
|
+
await accountStorageService.backfillActiveEmail(cachedEmail).catch(() => { });
|
|
27
|
+
}
|
|
20
28
|
const accounts = await accountStorageService.listAccounts();
|
|
21
29
|
const activeKey = await accountStorageService.getActiveKey();
|
|
22
30
|
res.json({ accounts, activeKey });
|
|
@@ -33,22 +41,33 @@ export async function switchAccount(req, res) {
|
|
|
33
41
|
res.status(404).json({ error: { code: 'ACCOUNT_NOT_FOUND', message: 'Account not found' } });
|
|
34
42
|
return;
|
|
35
43
|
}
|
|
36
|
-
// The credential file
|
|
44
|
+
// The credential file AND the CLI's identity cache (`oauthAccount` in `~/.claude.json`) now
|
|
45
|
+
// hold the switched account (the storage service swaps both — the CLI reports identity from
|
|
46
|
+
// that cache, not the credential file). Still set the in-memory display directly from the
|
|
47
|
+
// stored identity: it is correct immediately, without waiting for a bootstrap query — and for
|
|
48
|
+
// accounts with no captured identity the CLI needs one launch to regenerate the cache.
|
|
37
49
|
rateLimitProbeService.invalidateTokenCache();
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
50
|
+
// Fire-and-forget: probe the NEW credential's usage and broadcast it to every tab now, so all
|
|
51
|
+
// clients converge within one round trip instead of waiting for the next poll tick (≤2 min).
|
|
52
|
+
// The generation stamp inside the probe guarantees a response from before this switch can no
|
|
53
|
+
// longer overwrite it (last-to-finish-wins race during rapid switching).
|
|
54
|
+
void rateLimitProbeService.probeAndBroadcast();
|
|
55
|
+
const activeKey = key;
|
|
56
|
+
const switchedEmail = result.account.email;
|
|
57
|
+
if (switchedEmail) {
|
|
58
|
+
accountInfoService.setActiveAccount({
|
|
59
|
+
email: switchedEmail,
|
|
60
|
+
subscriptionType: result.account.tier ?? undefined,
|
|
61
|
+
apiProvider: 'firstParty',
|
|
62
|
+
});
|
|
63
|
+
log.info(`switch: set active account from store → email=${switchedEmail}`);
|
|
46
64
|
}
|
|
47
|
-
|
|
48
|
-
log.warn(`switch:
|
|
65
|
+
else {
|
|
66
|
+
log.warn(`switch: stored account ${key} has no email; display stays stale until the CLI regenerates its identity cache`);
|
|
49
67
|
}
|
|
50
68
|
const accounts = await accountStorageService.listAccounts();
|
|
51
69
|
const active = accounts.find((a) => a.key === activeKey) ?? null;
|
|
70
|
+
const accountInfo = accountInfoService.getCached();
|
|
52
71
|
// Broadcast to all tabs (token-free, AC15).
|
|
53
72
|
try {
|
|
54
73
|
getIO().emit('account:switched', {
|
|
@@ -65,6 +84,7 @@ export async function switchAccount(req, res) {
|
|
|
65
84
|
activeKey,
|
|
66
85
|
reauthRequired: result.reauthRequired,
|
|
67
86
|
accounts,
|
|
87
|
+
accountInfo,
|
|
68
88
|
});
|
|
69
89
|
}
|
|
70
90
|
/** DELETE /api/accounts/:key — remove a stored account (not the active one, AC8). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountController.js","sourceRoot":"","sources":["../../src/controllers/accountController.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,GAAG,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC;AAE9C,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAa,EAAE,GAAa;IAC7D,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,YAAY,EAAE,CAAC;IAC5D,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,YAAY,EAAE,CAAC;IAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAgC,CAAC,CAAC;AAClE,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,GAAa;IAC7D,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC7F,OAAO;IACT,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"accountController.js","sourceRoot":"","sources":["../../src/controllers/accountController.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,5 +64,11 @@ export declare const fileSystemController: {
|
|
|
64
64
|
* Rename a file or directory within a project.
|
|
65
65
|
*/
|
|
66
66
|
renameEntry(req: Request, res: Response): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* POST /api/projects/:projectSlug/fs/html-preview
|
|
69
|
+
* Echo HTML content back with a relaxed CSP so external resources
|
|
70
|
+
* (Google Fonts, CDN scripts/stylesheets) load inside a sandboxed iframe.
|
|
71
|
+
*/
|
|
72
|
+
htmlPreview(req: Request, res: Response): Promise<void>;
|
|
67
73
|
};
|
|
68
74
|
//# sourceMappingURL=fileSystemController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileSystemController.d.ts","sourceRoot":"","sources":["../../src/controllers/fileSystemController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAK5C,eAAO,MAAM,oBAAoB;IAC/B;;;OAGG;kBACiB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC1D;;;OAGG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyE7D;;;OAGG;uBACsB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C/D;;;OAGG;2BAC0B,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CnE;;;OAGG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B7D;;;;;;;OAOG;mBACkB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4D3D;;;OAGG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD7D;;;OAGG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD7D;;;OAGG;mBACkB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgE3D;;;OAGG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6D7D;;;OAGG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"fileSystemController.d.ts","sourceRoot":"","sources":["../../src/controllers/fileSystemController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAK5C,eAAO,MAAM,oBAAoB;IAC/B;;;OAGG;kBACiB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC1D;;;OAGG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyE7D;;;OAGG;uBACsB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C/D;;;OAGG;2BAC0B,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CnE;;;OAGG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B7D;;;;;;;OAOG;mBACkB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4D3D;;;OAGG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD7D;;;OAGG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD7D;;;OAGG;mBACkB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgE3D;;;OAGG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6D7D;;;OAGG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA0D7D;;;;OAIG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAiC9D,CAAC"}
|
|
@@ -605,5 +605,39 @@ export const fileSystemController = {
|
|
|
605
605
|
});
|
|
606
606
|
}
|
|
607
607
|
},
|
|
608
|
+
/**
|
|
609
|
+
* POST /api/projects/:projectSlug/fs/html-preview
|
|
610
|
+
* Echo HTML content back with a relaxed CSP so external resources
|
|
611
|
+
* (Google Fonts, CDN scripts/stylesheets) load inside a sandboxed iframe.
|
|
612
|
+
*/
|
|
613
|
+
async htmlPreview(req, res) {
|
|
614
|
+
const content = req.body?.content;
|
|
615
|
+
if (typeof content !== 'string') {
|
|
616
|
+
res.status(400).json({ error: { code: 'INVALID_REQUEST', message: 'content field required' } });
|
|
617
|
+
return;
|
|
618
|
+
}
|
|
619
|
+
let result = content;
|
|
620
|
+
if (/<head[^>]*>/i.test(result)) {
|
|
621
|
+
result = result.replace(/(<head[^>]*>)/i, '$1<base target="_blank">');
|
|
622
|
+
}
|
|
623
|
+
result += `<script>
|
|
624
|
+
document.addEventListener('click', function(e) {
|
|
625
|
+
var el = e.target;
|
|
626
|
+
while (el && el.tagName !== 'A') el = el.parentElement;
|
|
627
|
+
if (!el || !el.href) return;
|
|
628
|
+
if (el.protocol === location.protocol && el.hostname === location.hostname
|
|
629
|
+
&& el.pathname === location.pathname) return;
|
|
630
|
+
e.preventDefault();
|
|
631
|
+
e.stopPropagation();
|
|
632
|
+
window.open(el.href, '_blank', 'noopener');
|
|
633
|
+
}, true);
|
|
634
|
+
</script>`;
|
|
635
|
+
res.setHeader('Content-Security-Policy', "default-src * 'unsafe-inline' 'unsafe-eval' data: blob:; " +
|
|
636
|
+
"font-src * data:; style-src * 'unsafe-inline'; " +
|
|
637
|
+
"img-src * data: blob:; script-src * 'unsafe-inline' 'unsafe-eval'");
|
|
638
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
639
|
+
res.setHeader('Cache-Control', 'no-store');
|
|
640
|
+
res.send(result);
|
|
641
|
+
},
|
|
608
642
|
};
|
|
609
643
|
//# sourceMappingURL=fileSystemController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileSystemController.js","sourceRoot":"","sources":["../../src/controllers/fileSystemController.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fileSystemController.js","sourceRoot":"","sources":["../../src/controllers/fileSystemController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectController.d.ts","sourceRoot":"","sources":["../../src/controllers/projectController.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAwB5C,eAAO,MAAM,iBAAiB;IAC5B;;;OAGG;cACa,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"projectController.d.ts","sourceRoot":"","sources":["../../src/controllers/projectController.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAwB5C,eAAO,MAAM,iBAAiB;IAC5B;;;OAGG;cACa,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CtD;;;;OAIG;gBACe,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CxD;;;OAGG;sBACqB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAe9D;;;OAGG;gBACe,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCxD;;;OAGG;mBACkB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD3D;;;;OAIG;sBACqB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B9D;;;OAGG;qBACoB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB7D;;;OAGG;wBACuB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAmEhE;;;OAGG;yBACwB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDjE;;;;OAIG;sBACqB,OAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAmE/D,CAAC"}
|
|
@@ -8,7 +8,7 @@ import { spawn } from 'child_process';
|
|
|
8
8
|
import { PROJECT_ERRORS, } from '@hammoc/shared';
|
|
9
9
|
import { validateBoardConfig } from '@hammoc/shared';
|
|
10
10
|
import { projectService } from '../services/projectService.js';
|
|
11
|
-
import { broadcastProjectSettingsChange } from '../handlers/websocket.js';
|
|
11
|
+
import { broadcastProjectSettingsChange, getActiveSessionCountsByProject } from '../handlers/websocket.js';
|
|
12
12
|
import { SECTION_COMMON, SECTION_SDK, SECTION_CLI, SECTION_BMAD, TEMPLATE_VARIABLES, buildSystemPrompt, resolveTemplateVariables } from '../services/workspaceContext.js';
|
|
13
13
|
import { preferencesService } from '../services/preferencesService.js';
|
|
14
14
|
import { createLogger } from '../utils/logger.js';
|
|
@@ -21,7 +21,9 @@ export const projectController = {
|
|
|
21
21
|
*/
|
|
22
22
|
async list(req, res) {
|
|
23
23
|
try {
|
|
24
|
-
|
|
24
|
+
// Projects with a running stream sort as "active now" — see scanProjects.
|
|
25
|
+
const activeSlugs = new Set(getActiveSessionCountsByProject().keys());
|
|
26
|
+
const projects = await projectService.scanProjects(activeSlugs);
|
|
25
27
|
const response = { projects };
|
|
26
28
|
res.json(response);
|
|
27
29
|
}
|