@superblocksteam/vite-plugin-file-sync 2.0.3-next.100
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/LICENSE.txt +87 -0
- package/dist/ai-service/artifacts/bolt.d.ts +8 -0
- package/dist/ai-service/artifacts/bolt.d.ts.map +1 -0
- package/dist/ai-service/artifacts/bolt.js +34 -0
- package/dist/ai-service/artifacts/bolt.js.map +1 -0
- package/dist/ai-service/const.d.ts +8 -0
- package/dist/ai-service/const.d.ts.map +1 -0
- package/dist/ai-service/const.js +9 -0
- package/dist/ai-service/const.js.map +1 -0
- package/dist/ai-service/eval/template-renderer.d.ts +13 -0
- package/dist/ai-service/eval/template-renderer.d.ts.map +1 -0
- package/dist/ai-service/eval/template-renderer.js +66 -0
- package/dist/ai-service/eval/template-renderer.js.map +1 -0
- package/dist/ai-service/index.d.ts +18 -0
- package/dist/ai-service/index.d.ts.map +1 -0
- package/dist/ai-service/index.js +140 -0
- package/dist/ai-service/index.js.map +1 -0
- package/dist/ai-service/integrations/const.d.ts +41 -0
- package/dist/ai-service/integrations/const.d.ts.map +1 -0
- package/dist/ai-service/integrations/const.js +76 -0
- package/dist/ai-service/integrations/const.js.map +1 -0
- package/dist/ai-service/integrations/from-prompt-context.d.ts +4 -0
- package/dist/ai-service/integrations/from-prompt-context.d.ts.map +1 -0
- package/dist/ai-service/integrations/from-prompt-context.js +56 -0
- package/dist/ai-service/integrations/from-prompt-context.js.map +1 -0
- package/dist/ai-service/integrations/to-sdk-prompt.d.ts +3 -0
- package/dist/ai-service/integrations/to-sdk-prompt.d.ts.map +1 -0
- package/dist/ai-service/integrations/to-sdk-prompt.js +47 -0
- package/dist/ai-service/integrations/to-sdk-prompt.js.map +1 -0
- package/dist/ai-service/integrations/types.d.ts +31 -0
- package/dist/ai-service/integrations/types.d.ts.map +1 -0
- package/dist/ai-service/integrations/types.js +2 -0
- package/dist/ai-service/integrations/types.js.map +1 -0
- package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.d.ts +2 -0
- package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.d.ts.map +1 -0
- package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.js +386 -0
- package/dist/ai-service/prompts/draft-subprompts/superblocks-api-draft.js.map +1 -0
- package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.d.ts +2 -0
- package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.d.ts.map +1 -0
- package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.js +219 -0
- package/dist/ai-service/prompts/draft-subprompts/superblocks-layouts-with-grid-examples.js.map +1 -0
- package/dist/ai-service/prompts/generated/index.d.ts +4 -0
- package/dist/ai-service/prompts/generated/index.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/index.js +6 -0
- package/dist/ai-service/prompts/generated/index.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbButtonPropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbCheckboxPropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbColumnPropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbContainerPropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbDatePickerPropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbDropdownPropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbIconPropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbImagePropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbInputPropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbKeyValuePropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbKeyValuePropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbKeyValuePropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbKeyValuePropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbModalPropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbPagePropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbSectionPropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbSlideoutPropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbSwitchPropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbTablePropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.js +6 -0
- package/dist/ai-service/prompts/generated/library-components/SbTextPropsDocs.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/index.d.ts +18 -0
- package/dist/ai-service/prompts/generated/library-components/index.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-components/index.js +20 -0
- package/dist/ai-service/prompts/generated/library-components/index.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-typedefs/Dim.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-typedefs/Dim.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-typedefs/Dim.js +6 -0
- package/dist/ai-service/prompts/generated/library-typedefs/Dim.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.d.ts +2 -0
- package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.js +6 -0
- package/dist/ai-service/prompts/generated/library-typedefs/SbEventFlow.js.map +1 -0
- package/dist/ai-service/prompts/generated/library-typedefs/index.d.ts +3 -0
- package/dist/ai-service/prompts/generated/library-typedefs/index.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/library-typedefs/index.js +5 -0
- package/dist/ai-service/prompts/generated/library-typedefs/index.js.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/index.d.ts +11 -0
- package/dist/ai-service/prompts/generated/subprompts/index.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/index.js +13 -0
- package/dist/ai-service/prompts/generated/subprompts/index.js.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-api.d.ts +2 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-api.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-api.js +6 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-api.js.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.d.ts +2 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.js +6 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-components-rules.js.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-custom-components.d.ts +2 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-custom-components.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-custom-components.js +6 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-custom-components.js.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.d.ts +2 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.js +6 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-event-flow.js.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.d.ts +2 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.js +6 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-layouts.js.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-page.d.ts +2 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-page.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-page.js +6 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-page.js.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-routes.d.ts +2 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-routes.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-routes.js +6 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-routes.js.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-state.d.ts +2 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-state.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-state.js +6 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-state.js.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-theming.d.ts +2 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-theming.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-theming.js +6 -0
- package/dist/ai-service/prompts/generated/subprompts/superblocks-theming.js.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/system.d.ts +2 -0
- package/dist/ai-service/prompts/generated/subprompts/system.d.ts.map +1 -0
- package/dist/ai-service/prompts/generated/subprompts/system.js +6 -0
- package/dist/ai-service/prompts/generated/subprompts/system.js.map +1 -0
- package/dist/ai-service/prompts/markdown-loader.d.ts +10 -0
- package/dist/ai-service/prompts/markdown-loader.d.ts.map +1 -0
- package/dist/ai-service/prompts/markdown-loader.js +65 -0
- package/dist/ai-service/prompts/markdown-loader.js.map +1 -0
- package/dist/ai-service/prompts/system.d.ts +2 -0
- package/dist/ai-service/prompts/system.d.ts.map +1 -0
- package/dist/ai-service/prompts/system.js +152 -0
- package/dist/ai-service/prompts/system.js.map +1 -0
- package/dist/ai-service/result-buffer/bolt.d.ts +15 -0
- package/dist/ai-service/result-buffer/bolt.d.ts.map +1 -0
- package/dist/ai-service/result-buffer/bolt.js +73 -0
- package/dist/ai-service/result-buffer/bolt.js.map +1 -0
- package/dist/ai-service/result-buffer/shared.d.ts +13 -0
- package/dist/ai-service/result-buffer/shared.d.ts.map +1 -0
- package/dist/ai-service/result-buffer/shared.js +7 -0
- package/dist/ai-service/result-buffer/shared.js.map +1 -0
- package/dist/ai-service/state-machine/clark-fsm.d.ts +158 -0
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -0
- package/dist/ai-service/state-machine/clark-fsm.js +62 -0
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -0
- package/dist/ai-service/state-machine/fsm.d.ts +42 -0
- package/dist/ai-service/state-machine/fsm.d.ts.map +1 -0
- package/dist/ai-service/state-machine/fsm.js +55 -0
- package/dist/ai-service/state-machine/fsm.js.map +1 -0
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts +3 -0
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -0
- package/dist/ai-service/state-machine/handlers/agent-planning.js +209 -0
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -0
- package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts +3 -0
- package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -0
- package/dist/ai-service/state-machine/handlers/awaiting-user.js +21 -0
- package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -0
- package/dist/ai-service/state-machine/handlers/idle.d.ts +3 -0
- package/dist/ai-service/state-machine/handlers/idle.d.ts.map +1 -0
- package/dist/ai-service/state-machine/handlers/idle.js +22 -0
- package/dist/ai-service/state-machine/handlers/idle.js.map +1 -0
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts +3 -0
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -0
- package/dist/ai-service/state-machine/handlers/llm-generating.js +123 -0
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -0
- package/dist/ai-service/state-machine/handlers/play-dead.d.ts +3 -0
- package/dist/ai-service/state-machine/handlers/play-dead.d.ts.map +1 -0
- package/dist/ai-service/state-machine/handlers/play-dead.js +11 -0
- package/dist/ai-service/state-machine/handlers/play-dead.js.map +1 -0
- package/dist/ai-service/state-machine/handlers/post-processing.d.ts +3 -0
- package/dist/ai-service/state-machine/handlers/post-processing.d.ts.map +1 -0
- package/dist/ai-service/state-machine/handlers/post-processing.js +50 -0
- package/dist/ai-service/state-machine/handlers/post-processing.js.map +1 -0
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts +3 -0
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.d.ts.map +1 -0
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.js +37 -0
- package/dist/ai-service/state-machine/handlers/runtime-reviewing.js.map +1 -0
- package/dist/ai-service/state-machine/helpers/metadata.d.ts +6 -0
- package/dist/ai-service/state-machine/helpers/metadata.d.ts.map +1 -0
- package/dist/ai-service/state-machine/helpers/metadata.js +11 -0
- package/dist/ai-service/state-machine/helpers/metadata.js.map +1 -0
- package/dist/ai-service/state-machine/helpers/peer.d.ts +5 -0
- package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -0
- package/dist/ai-service/state-machine/helpers/peer.js +7 -0
- package/dist/ai-service/state-machine/helpers/peer.js.map +1 -0
- package/dist/ai-service/state-machine/helpers/transition.d.ts +13 -0
- package/dist/ai-service/state-machine/helpers/transition.d.ts.map +1 -0
- package/dist/ai-service/state-machine/helpers/transition.js +6 -0
- package/dist/ai-service/state-machine/helpers/transition.js.map +1 -0
- package/dist/ai-service/state-machine/mocks.d.ts +7 -0
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -0
- package/dist/ai-service/state-machine/mocks.js +63 -0
- package/dist/ai-service/state-machine/mocks.js.map +1 -0
- package/dist/ai-service/state-machine/test-util.d.ts +5 -0
- package/dist/ai-service/state-machine/test-util.d.ts.map +1 -0
- package/dist/ai-service/state-machine/test-util.js +29 -0
- package/dist/ai-service/state-machine/test-util.js.map +1 -0
- package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.d.ts +21 -0
- package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.d.ts.map +1 -0
- package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.js +47 -0
- package/dist/ai-service/transform/add-metadata-to-api-yaml/transformer.js.map +1 -0
- package/dist/ai-service/transform/api-builder/shared.d.ts +11 -0
- package/dist/ai-service/transform/api-builder/shared.d.ts.map +1 -0
- package/dist/ai-service/transform/api-builder/shared.js +53 -0
- package/dist/ai-service/transform/api-builder/shared.js.map +1 -0
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts +27 -0
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -0
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +66 -0
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -0
- package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts +23 -0
- package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts.map +1 -0
- package/dist/ai-service/transform/api-builder/to-yaml-transformer.js +59 -0
- package/dist/ai-service/transform/api-builder/to-yaml-transformer.js.map +1 -0
- package/dist/ai-service/transform/remove-api-builder-imports/transformer.d.ts +19 -0
- package/dist/ai-service/transform/remove-api-builder-imports/transformer.d.ts.map +1 -0
- package/dist/ai-service/transform/remove-api-builder-imports/transformer.js +45 -0
- package/dist/ai-service/transform/remove-api-builder-imports/transformer.js.map +1 -0
- package/dist/ai-service/transform/shared.d.ts +20 -0
- package/dist/ai-service/transform/shared.d.ts.map +1 -0
- package/dist/ai-service/transform/shared.js +132 -0
- package/dist/ai-service/transform/shared.js.map +1 -0
- package/dist/ai-service/transform/workaround-missing-sbapi/transformer.d.ts +17 -0
- package/dist/ai-service/transform/workaround-missing-sbapi/transformer.d.ts.map +1 -0
- package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js +33 -0
- package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js.map +1 -0
- package/dist/ai-service/types.d.ts +65 -0
- package/dist/ai-service/types.d.ts.map +1 -0
- package/dist/ai-service/types.js +2 -0
- package/dist/ai-service/types.js.map +1 -0
- package/dist/binding-extraction/extract-control-block-identifiers.d.ts +4 -0
- package/dist/binding-extraction/extract-control-block-identifiers.d.ts.map +1 -0
- package/dist/binding-extraction/extract-control-block-identifiers.js +86 -0
- package/dist/binding-extraction/extract-control-block-identifiers.js.map +1 -0
- package/dist/binding-extraction/extract-embedded-identifiers.d.ts +16 -0
- package/dist/binding-extraction/extract-embedded-identifiers.d.ts.map +1 -0
- package/dist/binding-extraction/extract-embedded-identifiers.js +100 -0
- package/dist/binding-extraction/extract-embedded-identifiers.js.map +1 -0
- package/dist/binding-extraction/extract-identifiers.d.ts +8 -0
- package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -0
- package/dist/binding-extraction/extract-identifiers.js +150 -0
- package/dist/binding-extraction/extract-identifiers.js.map +1 -0
- package/dist/binding-extraction/extract-js-identifiers.d.ts +19 -0
- package/dist/binding-extraction/extract-js-identifiers.d.ts.map +1 -0
- package/dist/binding-extraction/extract-js-identifiers.js +161 -0
- package/dist/binding-extraction/extract-js-identifiers.js.map +1 -0
- package/dist/binding-extraction/extract-py-identifiers.d.ts +4 -0
- package/dist/binding-extraction/extract-py-identifiers.d.ts.map +1 -0
- package/dist/binding-extraction/extract-py-identifiers.js +161 -0
- package/dist/binding-extraction/extract-py-identifiers.js.map +1 -0
- package/dist/binding-extraction/shared.d.ts +225 -0
- package/dist/binding-extraction/shared.d.ts.map +1 -0
- package/dist/binding-extraction/shared.js +43 -0
- package/dist/binding-extraction/shared.js.map +1 -0
- package/dist/binding-extraction/template-strings.d.ts +9 -0
- package/dist/binding-extraction/template-strings.d.ts.map +1 -0
- package/dist/binding-extraction/template-strings.js +45 -0
- package/dist/binding-extraction/template-strings.js.map +1 -0
- package/dist/codegen.d.ts +26 -0
- package/dist/codegen.d.ts.map +1 -0
- package/dist/codegen.js +222 -0
- package/dist/codegen.js.map +1 -0
- package/dist/components-manager.d.ts +38 -0
- package/dist/components-manager.d.ts.map +1 -0
- package/dist/components-manager.js +177 -0
- package/dist/components-manager.js.map +1 -0
- package/dist/custom-components.d.ts +6 -0
- package/dist/custom-components.d.ts.map +1 -0
- package/dist/custom-components.js +51 -0
- package/dist/custom-components.js.map +1 -0
- package/dist/draft-interface.d.ts +11 -0
- package/dist/draft-interface.d.ts.map +1 -0
- package/dist/draft-interface.js +2 -0
- package/dist/draft-interface.js.map +1 -0
- package/dist/errors/error-handler.d.ts +35 -0
- package/dist/errors/error-handler.d.ts.map +1 -0
- package/dist/errors/error-handler.js +65 -0
- package/dist/errors/error-handler.js.map +1 -0
- package/dist/errors/make-server-error.d.ts +5 -0
- package/dist/errors/make-server-error.d.ts.map +1 -0
- package/dist/errors/make-server-error.js +21 -0
- package/dist/errors/make-server-error.js.map +1 -0
- package/dist/file-sync-vite-plugin.d.ts +4 -0
- package/dist/file-sync-vite-plugin.d.ts.map +1 -0
- package/dist/file-sync-vite-plugin.js +624 -0
- package/dist/file-sync-vite-plugin.js.map +1 -0
- package/dist/file-system-helpers.d.ts +7 -0
- package/dist/file-system-helpers.d.ts.map +1 -0
- package/dist/file-system-helpers.js +12 -0
- package/dist/file-system-helpers.js.map +1 -0
- package/dist/file-system-manager.d.ts +132 -0
- package/dist/file-system-manager.d.ts.map +1 -0
- package/dist/file-system-manager.js +1176 -0
- package/dist/file-system-manager.js.map +1 -0
- package/dist/generate.d.ts +8 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +7 -0
- package/dist/generate.js.map +1 -0
- package/dist/ids.d.ts +2 -0
- package/dist/ids.d.ts.map +1 -0
- package/dist/ids.js +21 -0
- package/dist/ids.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/injected-index.d.ts +12 -0
- package/dist/injected-index.d.ts.map +1 -0
- package/dist/injected-index.js +38 -0
- package/dist/injected-index.js.map +1 -0
- package/dist/lock-service/index.d.ts +93 -0
- package/dist/lock-service/index.d.ts.map +1 -0
- package/dist/lock-service/index.js +267 -0
- package/dist/lock-service/index.js.map +1 -0
- package/dist/parsing/bindings.d.ts +4 -0
- package/dist/parsing/bindings.d.ts.map +1 -0
- package/dist/parsing/bindings.js +17 -0
- package/dist/parsing/bindings.js.map +1 -0
- package/dist/parsing/computed/to-code-computed.d.ts +2 -0
- package/dist/parsing/computed/to-code-computed.d.ts.map +1 -0
- package/dist/parsing/computed/to-code-computed.js +39 -0
- package/dist/parsing/computed/to-code-computed.js.map +1 -0
- package/dist/parsing/computed/to-value-computed.d.ts +4 -0
- package/dist/parsing/computed/to-value-computed.d.ts.map +1 -0
- package/dist/parsing/computed/to-value-computed.js +13 -0
- package/dist/parsing/computed/to-value-computed.js.map +1 -0
- package/dist/parsing/dim/to-code-dimensions.d.ts +3 -0
- package/dist/parsing/dim/to-code-dimensions.d.ts.map +1 -0
- package/dist/parsing/dim/to-code-dimensions.js +22 -0
- package/dist/parsing/dim/to-code-dimensions.js.map +1 -0
- package/dist/parsing/dim/to-value-dimensions.d.ts +4 -0
- package/dist/parsing/dim/to-value-dimensions.d.ts.map +1 -0
- package/dist/parsing/dim/to-value-dimensions.js +39 -0
- package/dist/parsing/dim/to-value-dimensions.js.map +1 -0
- package/dist/parsing/entity/index.d.ts +8 -0
- package/dist/parsing/entity/index.d.ts.map +1 -0
- package/dist/parsing/entity/index.js +8 -0
- package/dist/parsing/entity/index.js.map +1 -0
- package/dist/parsing/entity/to-code-entity.d.ts +3 -0
- package/dist/parsing/entity/to-code-entity.d.ts.map +1 -0
- package/dist/parsing/entity/to-code-entity.js +41 -0
- package/dist/parsing/entity/to-code-entity.js.map +1 -0
- package/dist/parsing/entity/to-value-entity.d.ts +8 -0
- package/dist/parsing/entity/to-value-entity.d.ts.map +1 -0
- package/dist/parsing/entity/to-value-entity.js +120 -0
- package/dist/parsing/entity/to-value-entity.js.map +1 -0
- package/dist/parsing/events/to-code-events.d.ts +3 -0
- package/dist/parsing/events/to-code-events.d.ts.map +1 -0
- package/dist/parsing/events/to-code-events.js +86 -0
- package/dist/parsing/events/to-code-events.js.map +1 -0
- package/dist/parsing/events/to-value-events.d.ts +5 -0
- package/dist/parsing/events/to-value-events.d.ts.map +1 -0
- package/dist/parsing/events/to-value-events.js +157 -0
- package/dist/parsing/events/to-value-events.js.map +1 -0
- package/dist/parsing/ids.d.ts +17 -0
- package/dist/parsing/ids.d.ts.map +1 -0
- package/dist/parsing/ids.js +121 -0
- package/dist/parsing/ids.js.map +1 -0
- package/dist/parsing/imports.d.ts +6 -0
- package/dist/parsing/imports.d.ts.map +1 -0
- package/dist/parsing/imports.js +27 -0
- package/dist/parsing/imports.js.map +1 -0
- package/dist/parsing/jsx-utils.d.ts +9 -0
- package/dist/parsing/jsx-utils.d.ts.map +1 -0
- package/dist/parsing/jsx-utils.js +42 -0
- package/dist/parsing/jsx-utils.js.map +1 -0
- package/dist/parsing/jsx.d.ts +23 -0
- package/dist/parsing/jsx.d.ts.map +1 -0
- package/dist/parsing/jsx.js +329 -0
- package/dist/parsing/jsx.js.map +1 -0
- package/dist/parsing/page.d.ts +9 -0
- package/dist/parsing/page.d.ts.map +1 -0
- package/dist/parsing/page.js +156 -0
- package/dist/parsing/page.js.map +1 -0
- package/dist/parsing/properties.d.ts +5 -0
- package/dist/parsing/properties.d.ts.map +1 -0
- package/dist/parsing/properties.js +89 -0
- package/dist/parsing/properties.js.map +1 -0
- package/dist/parsing/scope.d.ts +81 -0
- package/dist/parsing/scope.d.ts.map +1 -0
- package/dist/parsing/scope.js +575 -0
- package/dist/parsing/scope.js.map +1 -0
- package/dist/parsing/template/to-code-template.d.ts +2 -0
- package/dist/parsing/template/to-code-template.d.ts.map +1 -0
- package/dist/parsing/template/to-code-template.js +5 -0
- package/dist/parsing/template/to-code-template.js.map +1 -0
- package/dist/parsing/template/to-value-template.d.ts +4 -0
- package/dist/parsing/template/to-value-template.d.ts.map +1 -0
- package/dist/parsing/template/to-value-template.js +19 -0
- package/dist/parsing/template/to-value-template.js.map +1 -0
- package/dist/parsing/theme.d.ts +3 -0
- package/dist/parsing/theme.d.ts.map +1 -0
- package/dist/parsing/theme.js +87 -0
- package/dist/parsing/theme.js.map +1 -0
- package/dist/parsing/type-parsing-registry.d.ts +18 -0
- package/dist/parsing/type-parsing-registry.d.ts.map +1 -0
- package/dist/parsing/type-parsing-registry.js +31 -0
- package/dist/parsing/type-parsing-registry.js.map +1 -0
- package/dist/parsing/util.d.ts +31 -0
- package/dist/parsing/util.d.ts.map +1 -0
- package/dist/parsing/util.js +322 -0
- package/dist/parsing/util.js.map +1 -0
- package/dist/plugin-options.d.ts +25 -0
- package/dist/plugin-options.d.ts.map +1 -0
- package/dist/plugin-options.js +14 -0
- package/dist/plugin-options.js.map +1 -0
- package/dist/refactor/blocks.d.ts +10 -0
- package/dist/refactor/blocks.d.ts.map +1 -0
- package/dist/refactor/blocks.js +214 -0
- package/dist/refactor/blocks.js.map +1 -0
- package/dist/refactor/javascript.d.ts +15 -0
- package/dist/refactor/javascript.d.ts.map +1 -0
- package/dist/refactor/javascript.js +182 -0
- package/dist/refactor/javascript.js.map +1 -0
- package/dist/refactor-jsx.d.ts +28 -0
- package/dist/refactor-jsx.d.ts.map +1 -0
- package/dist/refactor-jsx.js +77 -0
- package/dist/refactor-jsx.js.map +1 -0
- package/dist/rename-manager.d.ts +27 -0
- package/dist/rename-manager.d.ts.map +1 -0
- package/dist/rename-manager.js +140 -0
- package/dist/rename-manager.js.map +1 -0
- package/dist/routing.d.ts +6 -0
- package/dist/routing.d.ts.map +1 -0
- package/dist/routing.js +76 -0
- package/dist/routing.js.map +1 -0
- package/dist/sb-scope-manager.d.ts +102 -0
- package/dist/sb-scope-manager.d.ts.map +1 -0
- package/dist/sb-scope-manager.js +501 -0
- package/dist/sb-scope-manager.js.map +1 -0
- package/dist/socket-manager.d.ts +40 -0
- package/dist/socket-manager.d.ts.map +1 -0
- package/dist/socket-manager.js +174 -0
- package/dist/socket-manager.js.map +1 -0
- package/dist/source-tracker.d.ts +190 -0
- package/dist/source-tracker.d.ts.map +1 -0
- package/dist/source-tracker.js +967 -0
- package/dist/source-tracker.js.map +1 -0
- package/dist/sync-service/download.d.ts +15 -0
- package/dist/sync-service/download.d.ts.map +1 -0
- package/dist/sync-service/download.js +116 -0
- package/dist/sync-service/download.js.map +1 -0
- package/dist/sync-service/draft-helpers.d.ts +68 -0
- package/dist/sync-service/draft-helpers.d.ts.map +1 -0
- package/dist/sync-service/draft-helpers.js +362 -0
- package/dist/sync-service/draft-helpers.js.map +1 -0
- package/dist/sync-service/hash-cache.d.ts +15 -0
- package/dist/sync-service/hash-cache.d.ts.map +1 -0
- package/dist/sync-service/hash-cache.js +58 -0
- package/dist/sync-service/hash-cache.js.map +1 -0
- package/dist/sync-service/hash-dir-tree.d.ts +10 -0
- package/dist/sync-service/hash-dir-tree.d.ts.map +1 -0
- package/dist/sync-service/hash-dir-tree.js +53 -0
- package/dist/sync-service/hash-dir-tree.js.map +1 -0
- package/dist/sync-service/index.d.ts +134 -0
- package/dist/sync-service/index.d.ts.map +1 -0
- package/dist/sync-service/index.js +323 -0
- package/dist/sync-service/index.js.map +1 -0
- package/dist/sync-service/list-dir.d.ts +29 -0
- package/dist/sync-service/list-dir.d.ts.map +1 -0
- package/dist/sync-service/list-dir.js +66 -0
- package/dist/sync-service/list-dir.js.map +1 -0
- package/dist/sync-service/server-rpc/client.d.ts +13 -0
- package/dist/sync-service/server-rpc/client.d.ts.map +1 -0
- package/dist/sync-service/server-rpc/client.js +62 -0
- package/dist/sync-service/server-rpc/client.js.map +1 -0
- package/dist/sync-service/server-rpc/handlers.d.ts +3 -0
- package/dist/sync-service/server-rpc/handlers.d.ts.map +1 -0
- package/dist/sync-service/server-rpc/handlers.js +18 -0
- package/dist/sync-service/server-rpc/handlers.js.map +1 -0
- package/dist/sync-service/snapshot/take-snapshot.d.ts +38 -0
- package/dist/sync-service/snapshot/take-snapshot.d.ts.map +1 -0
- package/dist/sync-service/snapshot/take-snapshot.js +232 -0
- package/dist/sync-service/snapshot/take-snapshot.js.map +1 -0
- package/dist/sync-service/snapshot/types.d.ts +24 -0
- package/dist/sync-service/snapshot/types.d.ts.map +1 -0
- package/dist/sync-service/snapshot/types.js +3 -0
- package/dist/sync-service/snapshot/types.js.map +1 -0
- package/dist/sync-service/snapshot/upload-snapshot.d.ts +5 -0
- package/dist/sync-service/snapshot/upload-snapshot.d.ts.map +1 -0
- package/dist/sync-service/snapshot/upload-snapshot.js +63 -0
- package/dist/sync-service/snapshot/upload-snapshot.js.map +1 -0
- package/dist/traverse.d.ts +6 -0
- package/dist/traverse.d.ts.map +1 -0
- package/dist/traverse.js +7 -0
- package/dist/traverse.js.map +1 -0
- package/dist/util/generation-number-sequence.d.ts +7 -0
- package/dist/util/generation-number-sequence.d.ts.map +1 -0
- package/dist/util/generation-number-sequence.js +13 -0
- package/dist/util/generation-number-sequence.js.map +1 -0
- package/dist/util/logger.d.ts +22 -0
- package/dist/util/logger.d.ts.map +1 -0
- package/dist/util/logger.js +64 -0
- package/dist/util/logger.js.map +1 -0
- package/dist/util/operation-queue.d.ts +17 -0
- package/dist/util/operation-queue.d.ts.map +1 -0
- package/dist/util/operation-queue.js +27 -0
- package/dist/util/operation-queue.js.map +1 -0
- package/dist/util/tracing.d.ts +4 -0
- package/dist/util/tracing.d.ts.map +1 -0
- package/dist/util/tracing.js +19 -0
- package/dist/util/tracing.js.map +1 -0
- package/dist/util/with-resolvers.d.ts +10 -0
- package/dist/util/with-resolvers.d.ts.map +1 -0
- package/dist/util/with-resolvers.js +14 -0
- package/dist/util/with-resolvers.js.map +1 -0
- package/dist/util.d.ts +26 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +82 -0
- package/dist/util.js.map +1 -0
- package/package.json +126 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-tracker.js","sourceRoot":"","sources":["../src/source-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,CAAC,MAAM,cAAc,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,QAAQ,EACR,WAAW,EACX,mBAAmB,GAEpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,YAAY,GAOb,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iCAAiC,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,UAAU,EACV,SAAS,EACT,qBAAqB,EACrB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAe3D,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,iBAAiB;IACjB,YAAY;IACZ,gBAAgB;IAChB,UAAU;IACV,WAAW;IACX,oBAAoB;CACrB,CAAC,CAAC;AAEH,MAAM,iCAAiC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAwCnE,oBAAoB;AACpB,4EAA4E;AAC5E,iFAAiF;AACjF,kEAAkE;AAClE,kHAAkH;AAElH,MAAM,OAAO,aAAa;IAChB,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IACpC,cAAc,CAAkB;IAChC,iBAAiB,GAAsC,EAAE,CAAC;IAC1D,iBAAiB,GAA8B,EAAE,CAAC;IAClD,iBAAiB,GAA2B,EAAE,CAAC;IAC/C,sBAAsB,GAO1B,EAAE,CAAC;IAEC,eAAe,GAAG,CAAC,CAAC;IACpB,UAAU,GAOd,EAAE,CAAC;IAEC,YAAY,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE9C;QACE,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,kBAAkB,GAAG,KAAK,IAExB,EAAE;QACF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAI,CAAC,CAAC,IAAI,CAAC;YACtC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE;gBACvC,MAAM,EAAE,YAAY;aACrB,CAAC,CAAC;YACH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC/D,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IAIF,oBAAoB,CAAC,EAAc;QACjC,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC;QACpD,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAID,oBAAoB,CAAC,EAAc;QACjC,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC;QACpD,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,oBAAoB,CAAC,EAAa,EAAE,IAAoB;QACtD,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACpC,CAAC;IACD,oBAAoB,CAAC,EAAa,EAAE,QAAgB;QAClD,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;IACxC,CAAC;IAED,uBAAuB,CAAC,EAAa;QACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,uBAAuB,CAAC,EAAa;QACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,yBAAyB,CAAC,QAAgB;QACxC,MAAM,EAAE,eAAe,EAAE,GACvB,IAAI,CAAC,cAAc,CAAC,uCAAuC,CAAC;YAC1D,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACL,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,sBAAsB,CAAC,EAC7B,KAAK,GAGN;QACC,MAAM,UAAU,GAAsC,EAAE,CAAC;QAEzD,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE;wBACjC,UAAU,EAAE,QAAQ;wBACpB,cAAc,EAAE,QAAQ;wBACxB,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC;qBACrC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,SAAS,EAAE,CAAC,KAAK,CACf,8BAA8B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,EACtE,YAAY,CAAC,CAAC,CAAC,CAChB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,uBAAuB,GAAG,CAAC,EAAE,KAAK,EAAqC,EAAE,EAAE;QACzE,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACpE,QAAQ;YACR,IAAI;SACL,CAAC,CAAC,CAAC;QAEJ,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC;YAC7C,2DAA2D;YAC3D,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAClC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI;YACJ;gBACE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAE,CAAC,IAAI;gBACzD,GAAG;gBACH,OAAO,EAAE,qBAAqB,CAAC,GAAG,CAAC;aACpC;SACF,CAAC,CACH,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE;YACjD,gDAAgD;YAChD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAAC;oBACrC,QAAQ,EAAE,IAAI;oBACd,GAAG;oBACH,eAAe,EAAE,KAAK;iBACvB,CAAC,CAAC;gBAEH,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;oBACzB,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;oBAClC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;gBACpC,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,kCAAkC,GAAG,KAAK,EACxC,QAAgB,EAChB,YAAoB,EACpB,EAAE;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM;YAAE,OAAO;QAExD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC;gBACzC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;aAC1C,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG;gBAC1B,GAAG,EAAE,GAAG;gBACR,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,qBAAqB,CAAC,GAAG,CAAC;aACpC,CAAC;YACF,kDAAkD;YAClD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;iBACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAe,CAAC,CAAC;gBAC5D,IAAI,CAAC,QAAQ;oBAAE,OAAO,KAAK,CAAC;gBAC5B,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC,CAAC;iBACD,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;gBACjB,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAgB,CAAC,CAAC;gBAChD,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAgB,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEL,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC9D,8CAA8C;YAC9C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,MAAM,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAAC;oBACrC,QAAQ;oBACR,GAAG;oBACH,eAAe,EAAE,KAAK;iBACvB,CAAC,CAAC;gBACH,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;oBACzB,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;oBAClC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;gBACxC,CAAC,CAAC,CAAC;YACL,CAAC;YAED,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC,CAAC,CAAC;YACH,2BAA2B;YAC3B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,SAAS,EAAE,CAAC,KAAK,CAAC,iCAAiC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;IACH,CAAC,CAAC;IAEF,UAAU,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEjC,4BAA4B;QAC5B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YAC5D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAe,CAAC,CAAC;gBAC/C,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAe,CAAC,CAAC;YACjD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;YACxE,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;YACjE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,WAAW,GAAG,KAAK,EAAE,EACnB,IAAI,EACJ,EAAE,GAIH,EAAiB,EAAE;QAClB,IAAI,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE5D,iGAAiG;QACjG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC;YAChC,IACE,WAAW,CAAC,UAAU,IAAI,IAAI;gBAC9B,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,EAAE,EACtC,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC;QACvC,CAAC;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxD,iGAAiG;QACjG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC;YAC9B,IACE,SAAS,CAAC,UAAU,IAAI,IAAI;gBAC5B,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,EAAE,EACpC,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;QACnC,CAAC;QAED,IACE,WAAW,CAAC,IAAI,IAAI,IAAI;YACxB,WAAW,CAAC,IAAI,IAAI,IAAI;YACxB,SAAS,CAAC,IAAI,IAAI,IAAI;YACtB,SAAS,CAAC,IAAI,IAAI,IAAI,EACtB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,SAAS,EAAE,CAAC,KAAK,CACf,kCAAkC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,WAAW,EAAE,CAClE,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC;QACvD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,YAAY,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,SAAiC,CAAC;YACpD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAkB,CAAC;YAChD,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;YAEjC,IAAI,CAAC,mCAAmC,CAAC,SAAS,CAAC,CAAC;YAEpD,+CAA+C;YAC/C,MAAM,eAAe,GAAG,SAAS;iBAC9B,GAAG,CAAC,UAAU,CAAC;iBACf,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;YAE3C,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,iCAAiC;YACjC,iEAAiE;YACjE,WAAW,CAAC,MAAM,EAAE,CAAC;YAErB,IAAI,UAAU,GAA0B,IAAI,CAAC;YAC7C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACxE,UAAU,GAAG,YAAY,CAAC;YAC5B,CAAC;iBAAM,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;gBACxD,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACrE,UAAU,GAAG,YAAY,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAC/C,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACpD,UAAU,GAAG,YAAY,CAAC;YAC5B,CAAC;YAED,gEAAgE;YAChE,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC;YAE3D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,SAAS,EAAE,CAAC,KAAK,CACf,2CAA2C,EAC3C,YAAY,CAAC,CAAC,CAAC,CAChB,CAAC;YACF,MAAM,IAAI,KAAK,CACb,2CAA2C,GAAI,CAAW,CAAC,OAAO,CACnE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,GAAG,KAAK,EAAE,EACd,QAAQ,EACR,OAAO,GAIR,EAAE,EAAE;QACH,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,GAChD,IAAI,CAAC,cAAc,CAAC,uCAAuC,CAAC;YAC1D,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACL,IAAI,CAAC,eAAe,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,QAAQ,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CACrD,eAAe,CAAC,EAAE,EAClB;YACE,IAAI,EAAE,YAAY,CAAC,GAAG;YACtB,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,EAAE;SACf,CACF,CAAC;QACF,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,SAAS,GAAG,KAAK,EAAE,EACjB,QAAQ,EACR,OAAO,GAIR,EAAE,EAAE;QACH,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,GAChD,IAAI,CAAC,cAAc,CAAC,uCAAuC,CAAC;YAC1D,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACL,IAAI,CAAC,eAAe,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,QAAQ,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,QAAQ,GAAG,eAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,OAAO,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACzE,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,SAAS,GAAG,KAAK,EAAE,EACjB,OAAO,EACP,MAAM,GAQP,EAAE,EAAE;QACH,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzE,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,YAAY,GAAG,KAAK,EAAE,OAA4B,EAAE,EAAE;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,YAAY,GAAG,KAAK,EAAE,EAAE,QAAQ,EAA2B,EAAE,EAAE;QAC7D,MAAM,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAC1C,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAClD,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,YAAY,GAAG,KAAK,EAAE,EACpB,QAAQ,EACR,OAAO,EACP,OAAO,EACP,SAAS,GAMV,EAAE,EAAE;QACH,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC;YACxE,QAAQ;YACR,OAAO;YACP,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,QAAQ,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,QAAQ,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEjC,sEAAsE;QACtE,sDAAsD;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE5C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClE,IAAI,CAAC,gBAAgB,CAAC;oBACpB,OAAO;oBACP,OAAO;oBACP,QAAQ;oBACR,aAAa,EAAE,SAAS;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,UAAU;IACV,WAAW,GAAG,KAAK,EAAE,EACnB,aAAa,EACb,KAAK,GAIN,EAAE,EAAE;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC;QACvD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE3B,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,SAAS,EAAE,CAAC,KAAK,CAAC,qCAAqC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC,CAAC;IAEF,UAAU,GAAG,KAAK,EAAE,EAClB,aAAa,EACb,OAAO,EACP,UAAU,EACV,QAAQ,EACR,EAAE,EACF,SAAS,GACK,EAAkC,EAAE;QAClD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,wBAAwB,GAAG,IAAI,CAAC,oBAAoB,CACxD,aAAa,CAAC,MAAM,CAAC,EAAE,CACxB,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE1E,IAAI,CAAC,wBAAwB,IAAI,CAAC,cAAc,EAAE,CAAC;YACjD,MAAM,CAAC,KAAK,CACV,uCAAuC,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,wBAAwB,EAAE,QAAQ,EAAE,EAAE,CACzG,CAAC;YACF,MAAM,IAAI,KAAK,CACb,sCAAsC,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,CACjE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,EAAE,CAAC;YACpD,MAAM,CAAC,KAAK,CACV,uCAAuC,wBAAwB,CAAC,IAAI,IAAI,wBAAwB,CAAC,QAAQ,EAAE,EAAE,CAC9G,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,oBAAoB,GACxB,wBAAwB,CAAC,UAAkC,CAAC;QAC9D,IAAI,CAAC,oBAAoB,EAAE,YAAY,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CACV,uCAAuC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CACtE,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;YAClC,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBAC3B,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,GAChD,IAAI,CAAC,cAAc,CAAC,uCAAuC,CAAC;oBAC1D,UAAU,EAAE,SAAS;oBACrB,IAAI,EAAE,MAAM;iBACb,CAAC,CAAC;gBACL,IAAI,CAAC,eAAe,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvC,OAAO,CAAC,GAAG,CACT,8BAA8B,GAAG,SAAS,GAAG,sBAAsB,CACpE,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC;oBAClD,IAAI,aAAa,KAAK,cAAc,EAAE,CAAC;wBACrC,8DAA8D;wBAC9D,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;wBAEnE,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,CAAC;4BAC9D,iBAAiB;4BACjB,SAAS,CAAC;gCACR,UAAU,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC;gCACxD,UAAU,EAAE,eAAe;gCAC3B,IAAI,EAAE,wBAAwB;gCAC9B,KAAK,EAAE,GAAG,EAAE;oCACV,IAAI,CAAC,UAAU,CAAC,cAAc,CAAE,CAAC,OAAO,CAAC,eAAe,CAAC;wCACvD,IAAI,CAAC;gCACT,CAAC;6BACF,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBACD,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC;oBACvC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CACxD,SAAS,EACT,cAAwB,CACzB,CAAC;oBACF,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC9B,CAAC,CAAC,CAAC;oBACH,mGAAmG;oBACnG,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;wBACjE,IAAI,CAAC,cAAc,CAAC,iCAAiC,CAAC;4BACpD,eAAe,EAAE,oBAAoB;4BACrC,SAAS;4BACT,iBAAiB,EAAE,cAAc;yBAClC,CAAC,CAAC;wBACH,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,cAAc,EAAE,CAAC,CAAC;oBAC7D,CAAC;yBAAM,CAAC;wBACN,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC,UAAU,CACnC,GAAG,eAAe,IAAI,cAAc,EAAE,CACvC,CAAC;oBACJ,CAAC;oBACD,OAAO,UAAU,CAAC,IAAI,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,MAAM,UAAU,GAAG,kBAAkB,CAAC;gBACpC,EAAE;gBACF,OAAO;gBACP,UAAU;gBACV,QAAQ;aACT,CAAC,CAAC;YAEH,IAAI,CAAC,mCAAmC,CAAC,oBAAoB,CAAC,CAAC;YAE/D,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC;YAE5C,MAAM,eAAe,GAAG,oBAAoB;iBACzC,GAAG,CAAC,UAAU,CAAC;iBACf,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;YAE3C,IAAI,OAAO,GAA4B,IAAI,CAAC;YAC5C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,OAAO,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAC1E,CAAC;iBAAM,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;gBACxD,OAAO,GAAG,oBAAoB,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACvD,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YACD,sJAAsJ;YACtJ,IAAI,QAA+B,CAAC;YACpC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;gBACnB,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe;wBAAE,OAAO;oBACpD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3C,IAAI,CAAC,OAAO;wBAAE,OAAO;oBAErB,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,MAAM,EAAE,GACN,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;wBACzB,MAAM,qBAAqB,CACzB,cAAc,GAAG,IAAI,CAAC,eAAe,CACtC,EAAE,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;oBACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;oBACjC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;oBAClC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC;oBAC5C,QAAQ,GAAG,EAAE,CAAC;gBAChB,CAAC;aACF,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAChD,IAAI,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvC,MAAM,UAAU,GAAG,OAAO,CAAC,sBAAsB,CAC/C,OAAO,EACP,OAAO,CAAC,GAAG,EAAE,CACd,CAAC;gBACF,IAAI,UAAU,EAAE,CAAC;oBACf,SAAS,CAAC;wBACR,IAAI,EAAE,wBAAwB;wBAC9B,UAAU,EAAE,OAAO;wBACnB,UAAU;wBACV,eAAe,EAAE,IAAI;wBACrB,KAAK,EAAE,GAAG,EAAE;4BACV,IAAI,CAAC,UAAU,CAAC,cAAc,CAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;wBAC3D,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC;oBACR,IAAI,EAAE,wBAAwB;oBAC9B,UAAU,EAAE,OAAO;oBACnB,UAAU,EAAE,0BAA0B;oBACtC,KAAK,EAAE,GAAG,EAAE;wBACV,IAAI,CAAC,UAAU,CAAC,cAAc,CAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;oBAC3D,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;YAED,iFAAiF;YACjF,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC;gBAChD,UAAU;gBACV,QAAQ;aACT,CAAC,CAAC;YAEH,eAAe,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBACrC,SAAS,CAAC;oBACR,IAAI,EAAE,wBAAwB;oBAC9B,UAAU;oBACV,UAAU,EAAE,0BAA0B;oBACtC,KAAK,EAAE,GAAG,EAAE;wBACV,IAAI,CAAC,UAAU,CAAC,cAAc,CAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;oBAC9D,CAAC;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAEtC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,SAAS,EAAE,CAAC,KAAK,CACf,0CAA0C,EAC1C,YAAY,CAAC,CAAC,CAAC,CAChB,CAAC;YACF,MAAM,IAAI,KAAK,CACb,0CAA0C,GAAI,CAAW,CAAC,OAAO,CAClE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,aAAa,GAAG,KAAK,EAAE,EACrB,MAAM,EACN,SAAS,GAIV,EAAE,EAAE;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,uCAAuC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,IAAI,UAAU,CAAC,mBAAmB,EAAE,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC;YACrC,IAAI,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;gBAC3B,UAAU,GAAG,MAAM,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CACV,uDAAuD,MAAM,CAAC,EAAE,EAAE,CACnE,CAAC;gBACF,OAAO;YACT,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,mCAAmC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,UAAU,CAAC,IAAoB,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAA6C,EAAE,CAAC;QAC9D,UAAU,CAAC,QAAQ,CAAC;YAClB,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;gBACnB,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;gBACpE,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAoB,CAAC,CAAC;gBAC3D,IAAI,WAAW,EAAE,CAAC;oBAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEtD,IAAI,CAAC,wBAAwB,CAAC,UAAkC,CAAC,CAAC;QAElE,qDAAqD;QACrD,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,UAAU,CAAC,MAAM,EAAE,CAAC;QAEpB,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAC3D,SAAS,EACT,aAAa,CACd,CAAC;YACF,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,yCAAyC;QACzC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE;YACpD,IAAI,kBAAkB,IAAI,SAAS,EAAE,CAAC;gBACpC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAC3D,SAAS,EACT,kBAAkB,CACnB,CAAC;gBACF,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,4EAA4E;IACpE,wBAAwB,GAAG,CAAC,UAAgC,EAAE,EAAE;QACtE,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC;QAC5C,IAAI,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QAEjC,MAAM,UAAU,GACd,UAAU,CAAE,UAAU,CAAC,IAAqB,CAAC,cAAc,CAAC,IAAI,CAAC;YACjE,UAAU,CAAC;QACb,MAAM,WAAW,GACf,aAAa,CAAC,YAAY,EAAE;YAC5B,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;iBAClE,MAAM,KAAK,CAAC,CAAC;QAClB,MAAM,iBAAiB,GACrB,aAAa,CAAC,YAAY,EAAE;YAC5B,UAAU,CAAE,aAAa,CAAC,IAAqB,CAAC,cAAc,CAAC,IAAI,CAAC;gBAClE,WAAW,CAAC;QAEhB,IAAI,UAAU,IAAI,WAAW,IAAI,iBAAiB,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,cAAc,CAC9B,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACzC,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACzC,aAAa,CAAC,MAAM,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF;;;;;;;;;;;;OAYG;IACK,kBAAkB,GAAG,CAAC,EAC5B,UAAU,EACV,QAAQ,EACR,KAAK,EACL,IAAI,GAML,EAAE,EAAE;QACH,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAE7D,IAAI,UAAU,GAAG,UAAU;aACxB,GAAG,CAAC,YAAY,CAAC;aACjB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAE3E,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE;gBACrD,CAAC,CAAC,YAAY,CACZ,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EACvB,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CACjD;aACF,CAAC,CAAC;YACH,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,kEAAkE;QAClE,MAAM,mBAAmB,GAAG,UAAU,EAAE,GAAG,CACzC,OAAO,CAC8B,CAAC;QACxC,IACE,CAAC,mBAAmB;YACpB,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,EAC/C,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,WAAW,GAAmB,mBAAmB,CAAC,GAAG,CACzD,YAAY,CACN,CAAC;QAET,mBAAmB,CAAC;YAClB,IAAI,EAAE,WAAW;YACjB,KAAK;YACL,KAAK;YACL,IAAI;SACL,CAAC,CAAC;IACL,CAAC,CAAC;IAEM,YAAY,GAAG,CACrB,UAAuC,EACvC,QAAgB,EAChB,KAAyC,EACzC,IAA0B,EAC1B,EAAE;QACF,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,4EAA4E;YAC5E,IAAI,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,IAAI,IAAI,GAAG,UAAU;aAClB,GAAG,CAAC,YAAY,CAAC;aACjB,IAAI,CACH,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CACpE,CAAC;QAEJ,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE;gBAC5C,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;aAC/D,CAAC,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;QAED,4FAA4F;QAC5F,YAAY;QACZ,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;YACpD,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,QAAQ,cAAc,EAAE,CAAC;gBACvB,KAAK,QAAQ;oBACX,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACzB,MAAM;gBACR,KAAK,QAAQ;oBACX,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBACtB,MAAM;gBACR,KAAK,SAAS;oBACZ,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;oBACvB,MAAM;YACV,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAA2B,CAAC;QAE9D,MAAM,YAAY,GAAG,oBAAoB,CACvC,QAAQ,EACR,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAC1B,CAAC;QACF,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;YACvB,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;IAEM,eAAe,GAAG,CACxB,UAAuC,EACvC,QAAgB,EAChB,EAAE;QACF,MAAM,IAAI,GAAG,UAAU;aACpB,GAAG,CAAC,YAAY,CAAC;aACjB,IAAI,CACH,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CACpE,CAAC;QAEJ,IAAI,EAAE,MAAM,EAAE,CAAC;IACjB,CAAC,CAAC;IAEM,mCAAmC,GAAG,CAC5C,OAA6B,EAC7B,EAAE;QACF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACrD,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,cAAc,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,iBAAiB,CAC/C,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,WAAW,GAAG,KAAK,EAAE,EACnB,MAAM,EACN,QAAQ,EACR,KAAK,EACL,IAAI,GAML,EAAE,EAAE;QACH,MAAM,IAAI,CAAC,aAAa,CAAC;YACvB,MAAM;YACN,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;SACzC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,aAAa,GAAG,KAAK,EAAE,EACrB,MAAM,EACN,OAAO,GAIR,EAAiB,EAAE;QAClB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE9C,IAAI,CAAC;YACH,IAAI,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;gBAC/B,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CACV,kCAAkC,MAAM,CAAC,EAAE,IAAI,UAAU,EAAE,CAC5D,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAE9C,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,8BAA8B,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,6BAA6B,CAAC,CAAC;YACrE,CAAC;YAED,mEAAmE;YACnE,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7D,kFAAkF;gBAClF,6EAA6E;gBAE7E,MAAM,cAAc,GAAuC,KAAK,CAAC;gBACjE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CACpC,UAAU,EACV,GAAG,EACH,cAAc,EACd,IAAI,CACL,CAAC;gBACF,IAAI,IAAI,IAAI,iCAAiC,EAAE,CAAC;oBAC9C,MAAM,eAAe,GAAG,iCAAiC,CAAC,IAAI,CAAC,CAAC;oBAChE,IAAI,eAAe,EAAE,CAAC;wBACpB,KAAK,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,eAAe,EAAE,CAAC;4BACzD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gCACpD,SAAS,CAAC;oCACR,UAAU;oCACV,UAAU;oCACV,IAAI,EAAE,UAAU;oCAChB,KAAK,EAAE,GAAG,EAAE;wCACV,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;oCACxD,CAAC;iCACF,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,IAAI,KAAK,OAAO,IAAI,YAAY,EAAE,CAAC;oBACrC,MAAM,yBAAyB,GAAG,qBAAqB,CACrD,YAAY,EACZ,qBAAqB,CACtB,CAAC;oBACF,yBAAyB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;wBAC7C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAClD,SAAS,CAAC;gCACR,UAAU,EAAE,0BAA0B;gCACtC,UAAU,EAAE,QAAQ;gCACpB,IAAI,EAAE,UAAU;gCAChB,KAAK,EAAE,GAAG,EAAE;oCACV,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;gCACtD,CAAC;6BACF,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,iCAAiC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;oBACrE,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAC/C,MAAM,CAAC,EAAE,CACgB,CAAC;oBAC5B,MAAM,YAAY,GAChB,IAAI,CAAC,cAAc,CAAC,sCAAsC,CAAC;wBACzD,YAAY;wBACZ,YAAY,EAAE,QAAQ;wBACtB,eAAe;wBACf,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC,OAAO;qBACpD,CAAC,CAAC;oBACL,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE;wBAClD,SAAS,CAAC;4BACR,UAAU;4BACV,UAAU;4BACV,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,GAAG,EAAE;gCACV,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;4BACxD,CAAC;yBACF,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC;IAEF,gBAAgB,GAAG,KAAK,EAAE,EACxB,MAAM,EACN,UAAU,GAIX,EAAE,EAAE;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,IAAI,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;gBAC/B,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CACV,kCAAkC,MAAM,CAAC,EAAE,IAAI,UAAU,EAAE,CAC5D,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAE9C,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,8BAA8B,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,CAAC,EAAE,6BAA6B,CAAC,CAAC;YACrE,CAAC;YAED,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAClC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC;IAEF,eAAe,GAAG,KAAK,EAAE,EACvB,cAAc,EACd,OAAO,EACP,OAAO,EACP,SAAS,GAMV,EAAE,EAAE;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,UAAU,cAAc,YAAY,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;YAC/B,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,gBAAgB,GAAG,gBAAgB,CACvC,UAAU,CAAC,IAA2B,CACvC,CAAC;QAEF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC;gBAC5D,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBAC/C,OAAO;gBACP,SAAS;aACV,CAAC,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;YACvC,UAAU,EAAE,UAA2C;YACvD,OAAO;YACP,GAAG,EAAE,WAAW,CAAC,GAAG;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,gBAAgB,GAAG,CAAC,EAClB,OAAO,EACP,OAAO,EACP,QAAQ,EACR,aAAa,GAMd,EAAE,EAAE;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC;YACvC,OAAO;YACP,OAAO;YACP,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,aAAa;SACd,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF;;;;OAIG;IACH,UAAU,GAAG,KAAK,EAAE,EAClB,OAAO,EACP,QAAQ,GAIT,EAAE,EAAE;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAC3C,cAAc,CACW,CAAC;QAE5B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,8BAA8B,cAAc,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,UAAU,EAAE,IAAI,CAChC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAClE,CAAC;QAEF,SAAS,EAAE,WAAW,CACpB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAClE,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,oBAAoB,GAAG,CAAC,EACtB,UAAU,EACV,QAAQ,GACuC,EAAE,EAAE;QACnD,MAAM,kBAAkB,GAAG,CACzB,UAAuC,EAC7B,EAAE;YACZ,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;iBAC7B,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACpB,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC9B,OAAO,aAAa,CAAC;gBACvB,CAAC;gBACD,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAClC,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAChC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IACE,QAAQ,CAAC,IAAI,KAAK,QAAQ;oBAC1B,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;oBAClC,QAAQ,CAAC,KAAK,IAAI,IAAI,EACtB,CAAC;oBACD,gHAAgH;oBAChH,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CACzC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CACnD,cAAc,CAAC,KAAK,CAAC,CACtB,CACF,CAAC;oBACF,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAa,CAAC;QACjC,CAAC,CAAC;QAEF,MAAM,mBAAmB,GAAG,CAC1B,QAAmC,EACzB,EAAE;YACZ,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAChC,OAAO;oBACL,KAAK,CAAC,OAAO;oBACb,GAAG,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC;oBACvC,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC;iBACvC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,uBAAuB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAE/D,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,GAAG,CAAC,CAAC,GAAG,uBAAuB,EAAE,GAAG,wBAAwB,CAAC,CAAC,CACnE,CAAC;IACJ,CAAC,CAAC;CACH"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { HashCache } from "./hash-cache.js";
|
|
2
|
+
import type { StdISocketRPCClient } from "./server-rpc/client.js";
|
|
3
|
+
import type { DirectoryState } from "./snapshot/types.js";
|
|
4
|
+
export declare function getApplicationDirectoryHash(rpcClient: StdISocketRPCClient, applicationId: string, branch: string | undefined, localDirectoryPath: string): Promise<{
|
|
5
|
+
serverDirectoryHash: string;
|
|
6
|
+
localDirectoryState: DirectoryState;
|
|
7
|
+
}>;
|
|
8
|
+
export declare function downloadApplicationDirectory({ rpcClient, applicationId, branch, localDirectoryPath, hashCache, }: {
|
|
9
|
+
rpcClient: StdISocketRPCClient;
|
|
10
|
+
applicationId: string;
|
|
11
|
+
branch: string | undefined;
|
|
12
|
+
localDirectoryPath: string;
|
|
13
|
+
hashCache: HashCache;
|
|
14
|
+
}): Promise<string>;
|
|
15
|
+
//# sourceMappingURL=download.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/sync-service/download.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,qBAAqB,CAAC;AAQ7B,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,mBAAmB,EAC9B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,kBAAkB,EAAE,MAAM;;;GAmB3B;AAED,wBAAsB,4BAA4B,CAAC,EACjD,SAAS,EACT,aAAa,EACb,MAAM,EACN,kBAAkB,EAClB,SAAS,GACV,EAAE;IACD,SAAS,EAAE,mBAAmB,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBlB"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import * as fsp from "node:fs/promises";
|
|
2
|
+
import { hashLocalDirectory } from "./hash-dir-tree.js";
|
|
3
|
+
import { unwrapResponseDto } from "./server-rpc/client.js";
|
|
4
|
+
// TODO(code-mode): this is re-implemented in the sdk package
|
|
5
|
+
// because SDK depends on vite-plugin-file-sync, but can't be circular
|
|
6
|
+
export async function getApplicationDirectoryHash(rpcClient, applicationId, branch, localDirectoryPath) {
|
|
7
|
+
const [liveEditHashResponse, localDirectoryState] = await Promise.all([
|
|
8
|
+
unwrapResponseDto(rpcClient.call.v3.application.liveEditDirectoryContents.get({
|
|
9
|
+
applicationId,
|
|
10
|
+
branchName: branch,
|
|
11
|
+
})),
|
|
12
|
+
hashLocalDirectory(localDirectoryPath),
|
|
13
|
+
]);
|
|
14
|
+
const directoryHash = liveEditHashResponse.hash;
|
|
15
|
+
if (!directoryHash) {
|
|
16
|
+
throw new Error("No live edit hash found");
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
serverDirectoryHash: directoryHash,
|
|
20
|
+
localDirectoryState,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export async function downloadApplicationDirectory({ rpcClient, applicationId, branch, localDirectoryPath, hashCache, }) {
|
|
24
|
+
const { serverDirectoryHash, localDirectoryState } = await getApplicationDirectoryHash(rpcClient, applicationId, branch, localDirectoryPath);
|
|
25
|
+
await doDownloadApplicationDirectory(rpcClient, serverDirectoryHash, localDirectoryState, localDirectoryPath);
|
|
26
|
+
// Now that the directory has been downloaded, we know that all of its hashes are in the server,
|
|
27
|
+
// so we can add them to the hash cache
|
|
28
|
+
hashCache.add_directory_recursive(localDirectoryState);
|
|
29
|
+
return serverDirectoryHash;
|
|
30
|
+
}
|
|
31
|
+
async function doDownloadApplicationDirectory(rpcClient, directoryHash, localDirState, localDirectoryPath) {
|
|
32
|
+
// keep track of the hashes we need to get from the server and save locally
|
|
33
|
+
const hashesToGet = {};
|
|
34
|
+
const doRecursive = async (rpcClient, directoryHash, localDirState, localDirectoryPath, hashesToGet) => {
|
|
35
|
+
if (localDirState?.hash === directoryHash) {
|
|
36
|
+
// The directory is already up to date, we don't need to download anything
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
// FIXME: @joeyagreco - this is slow!
|
|
40
|
+
// FIXME: @joeyagreco - look into having this be a single call to the server beforehand or implement pagination of some sort
|
|
41
|
+
const directoryContentsResponse = await unwrapResponseDto(rpcClient.call.v1.dbfs.directoryContents.get({ hash: directoryHash }));
|
|
42
|
+
// Create a map of the local directory contents
|
|
43
|
+
// As we process the directory entries, we will be removing them from the map so that the entries left will
|
|
44
|
+
// correspond to files that have been deleted
|
|
45
|
+
const localDirMap = new Map(localDirState?.contents.map((entry) => [entry.name, entry]) ?? []);
|
|
46
|
+
for (const entry of directoryContentsResponse.contents) {
|
|
47
|
+
const localFilePath = `${localDirectoryPath}/${entry.name}`;
|
|
48
|
+
// The entry has been matched, remove it from the map, if it exists
|
|
49
|
+
let localEntry = localDirMap.get(entry.name);
|
|
50
|
+
localDirMap.delete(entry.name);
|
|
51
|
+
if (localEntry !== undefined && localEntry.type !== entry.type) {
|
|
52
|
+
// The file type has changed, the file is a regular file but the local file is not, so we need to delete the local file
|
|
53
|
+
// because we will not be able to overwrite it otherwise
|
|
54
|
+
await fsp.rm(localFilePath, { recursive: true });
|
|
55
|
+
localEntry = undefined;
|
|
56
|
+
}
|
|
57
|
+
// At this point, if `localEntry` is defined, it is guaranteed to have the same type as `entry`.
|
|
58
|
+
// TypeScript will not be able to infer this, so we need to cast it to the correct type in each case.
|
|
59
|
+
switch (entry.type) {
|
|
60
|
+
case "-": {
|
|
61
|
+
const localEntryTyped = localEntry;
|
|
62
|
+
if (localEntryTyped?.hash !== entry.hash) {
|
|
63
|
+
hashesToGet[entry.hash] = { localFilePath };
|
|
64
|
+
const fileContentsResponse = await unwrapResponseDto(rpcClient.call.v1.dbfs.fileContents.get({ hash: entry.hash }));
|
|
65
|
+
const fileContents = Buffer.from(fileContentsResponse.contents, "base64");
|
|
66
|
+
await fsp.writeFile(localFilePath, fileContents);
|
|
67
|
+
}
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
case "l": {
|
|
71
|
+
const localEntryTyped = localEntry;
|
|
72
|
+
if (localEntryTyped?.target !== entry.target) {
|
|
73
|
+
await fsp.symlink(entry.target, localFilePath);
|
|
74
|
+
}
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
case "d": {
|
|
78
|
+
const localEntryTyped = localEntry;
|
|
79
|
+
if (localEntryTyped === undefined) {
|
|
80
|
+
await fsp.mkdir(localFilePath, { recursive: true }); // don't fail if directory exists
|
|
81
|
+
}
|
|
82
|
+
const localSubDirState = localEntryTyped === undefined
|
|
83
|
+
? undefined
|
|
84
|
+
: {
|
|
85
|
+
hash: localEntryTyped.hash,
|
|
86
|
+
contents: localEntryTyped.contents,
|
|
87
|
+
};
|
|
88
|
+
await doRecursive(rpcClient, entry.hash, localSubDirState, localFilePath, hashesToGet);
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
default: {
|
|
92
|
+
throw new Error(`Unknown entry type: ${entry}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// Any remaining entries in the map are files/directories that have been deleted
|
|
97
|
+
for (const localEntry of localDirMap.values()) {
|
|
98
|
+
const localFilePath = `${localDirectoryPath}/${localEntry.name}`;
|
|
99
|
+
await fsp.rm(localFilePath, { recursive: true });
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
await doRecursive(rpcClient, directoryHash, localDirState, localDirectoryPath, hashesToGet);
|
|
103
|
+
// now that we have all the hashes, we can do the work in parallel batches
|
|
104
|
+
// NOTE: @joeyagreco - i do not know what a good number would be here, we can tweak as we see fit
|
|
105
|
+
const DOWNLOAD_BATCH_SIZE = 50;
|
|
106
|
+
const entries = Object.entries(hashesToGet);
|
|
107
|
+
for (let i = 0; i < entries.length; i += DOWNLOAD_BATCH_SIZE) {
|
|
108
|
+
const batch = entries.slice(i, i + DOWNLOAD_BATCH_SIZE);
|
|
109
|
+
await Promise.all(batch.map(async ([hash, { localFilePath }]) => {
|
|
110
|
+
const fileContentsResponse = await unwrapResponseDto(rpcClient.call.v1.dbfs.fileContents.get({ hash }));
|
|
111
|
+
const fileContents = Buffer.from(fileContentsResponse.contents, "base64");
|
|
112
|
+
await fsp.writeFile(localFilePath, fileContents);
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=download.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/sync-service/download.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAY3D,6DAA6D;AAC7D,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,SAA8B,EAC9B,aAAqB,EACrB,MAA0B,EAC1B,kBAA0B;IAE1B,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpE,iBAAiB,CACf,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,yBAAyB,CAAC,GAAG,CAAC;YAC1D,aAAa;YACb,UAAU,EAAE,MAAM;SACnB,CAAC,CACH;QACD,kBAAkB,CAAC,kBAAkB,CAAC;KACvC,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC;IAChD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO;QACL,mBAAmB,EAAE,aAAa;QAClC,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,EACjD,SAAS,EACT,aAAa,EACb,MAAM,EACN,kBAAkB,EAClB,SAAS,GAOV;IACC,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,GAChD,MAAM,2BAA2B,CAC/B,SAAS,EACT,aAAa,EACb,MAAM,EACN,kBAAkB,CACnB,CAAC;IACJ,MAAM,8BAA8B,CAClC,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,CACnB,CAAC;IACF,gGAAgG;IAChG,uCAAuC;IACvC,SAAS,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IACvD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,SAA8B,EAC9B,aAAqB,EACrB,aAAyC,EACzC,kBAA0B;IAE1B,2EAA2E;IAC3E,MAAM,WAAW,GAA8C,EAAE,CAAC;IAElE,MAAM,WAAW,GAAG,KAAK,EACvB,SAA8B,EAC9B,aAAqB,EACrB,aAAyC,EACzC,kBAA0B,EAC1B,WAAsD,EACvC,EAAE;QACjB,IAAI,aAAa,EAAE,IAAI,KAAK,aAAa,EAAE,CAAC;YAC1C,0EAA0E;YAC1E,OAAO;QACT,CAAC;QACD,qCAAqC;QACrC,4HAA4H;QAC5H,MAAM,yBAAyB,GAAG,MAAM,iBAAiB,CACvD,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CACtE,CAAC;QACF,+CAA+C;QAC/C,2GAA2G;QAC3G,6CAA6C;QAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAClE,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,yBAAyB,CAAC,QAAQ,EAAE,CAAC;YACvD,MAAM,aAAa,GAAG,GAAG,kBAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC5D,mEAAmE;YACnE,IAAI,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC/D,uHAAuH;gBACvH,wDAAwD;gBACxD,MAAM,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjD,UAAU,GAAG,SAAS,CAAC;YACzB,CAAC;YACD,gGAAgG;YAChG,qGAAqG;YACrG,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,MAAM,eAAe,GAAG,UAEX,CAAC;oBACd,IAAI,eAAe,EAAE,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;wBACzC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC;wBAC5C,MAAM,oBAAoB,GAAG,MAAM,iBAAiB,CAClD,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAC9D,CAAC;wBACF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAC9B,oBAAoB,CAAC,QAAQ,EAC7B,QAAQ,CACT,CAAC;wBACF,MAAM,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;oBACnD,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,MAAM,eAAe,GAAG,UAEX,CAAC;oBACd,IAAI,eAAe,EAAE,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;wBAC7C,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;oBACjD,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,MAAM,eAAe,GAAG,UAEX,CAAC;oBACd,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;wBAClC,MAAM,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,iCAAiC;oBACxF,CAAC;oBACD,MAAM,gBAAgB,GACpB,eAAe,KAAK,SAAS;wBAC3B,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC;4BACE,IAAI,EAAE,eAAe,CAAC,IAAI;4BAC1B,QAAQ,EAAE,eAAe,CAAC,QAAQ;yBACnC,CAAC;oBACR,MAAM,WAAW,CACf,SAAS,EACT,KAAK,CAAC,IAAI,EACV,gBAAgB,EAChB,aAAa,EACb,WAAW,CACZ,CAAC;oBACF,MAAM;gBACR,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;oBACR,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;QAED,gFAAgF;QAChF,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,MAAM,aAAa,GAAG,GAAG,kBAAkB,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACjE,MAAM,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,CACf,SAAS,EACT,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,WAAW,CACZ,CAAC;IAEF,0EAA0E;IAC1E,iGAAiG;IACjG,MAAM,mBAAmB,GAAG,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,mBAAmB,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC;QACxD,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE;YAC5C,MAAM,oBAAoB,GAAG,MAAM,iBAAiB,CAClD,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAClD,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAC9B,oBAAoB,CAAC,QAAQ,EAC7B,QAAQ,CACT,CAAC;YACF,MAAM,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a draft edit or addition based on the presence of an existing file.
|
|
3
|
+
* This makes the draft content visible to the build system while preserving the original.
|
|
4
|
+
*
|
|
5
|
+
* @param filePath - The absolute path to the file to edit or add.
|
|
6
|
+
* @param draftContent - The content of the draft edit or addition.
|
|
7
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
8
|
+
* @returns A promise that resolves to "edit" if the file already exists, or "add" if the file does not exist.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createDraft(filePath: string, draftContent: string | Buffer, appRootDirPath: string): Promise<"edit" | "add">;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a draft edit by copying the original file to the drafts directory and writing draft content to the original location.
|
|
13
|
+
* This makes the draft content visible to the build system while preserving the original.
|
|
14
|
+
* If a draft edit already exists, this will just update the draft content.
|
|
15
|
+
*
|
|
16
|
+
* @param filePath - The absolute path to the file to edit.
|
|
17
|
+
* @param draftContent - The content of the draft edit.
|
|
18
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
19
|
+
* @returns A promise that resolves when the draft edit is created.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createDraftEdit(filePath: string, draftContent: string | Buffer, appRootDirPath: string): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Creates a draft addition by writing new file content and creating a .sbswap.add marker.
|
|
24
|
+
* This makes the new file visible to the build system while marking it as a draft addition.
|
|
25
|
+
* If a draft addition already exists, this will just update the content.
|
|
26
|
+
*
|
|
27
|
+
* @param filePath - The absolute path where the new file should be created.
|
|
28
|
+
* @param content - The content of the new file.
|
|
29
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
30
|
+
* @returns A promise that resolves when the draft addition is created.
|
|
31
|
+
*/
|
|
32
|
+
export declare function createDraftAdd(filePath: string, content: string | Buffer, appRootDirPath: string): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Recursively checks if any draft files exist in the drafts directory.
|
|
35
|
+
* Looks for .sbswap.edit and .sbswap.add marker files.
|
|
36
|
+
*
|
|
37
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
38
|
+
* @returns A promise that resolves to true if any draft files are found, false otherwise.
|
|
39
|
+
*/
|
|
40
|
+
export declare function hasSwapFiles(appRootDirPath: string): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Discards all draft changes by restoring original files and removing draft additions.
|
|
43
|
+
* - For .sbswap.edit files: copies them back to the original location
|
|
44
|
+
* - For .sbswap.add markers: removes both the marker and the corresponding file
|
|
45
|
+
*
|
|
46
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
47
|
+
* @returns A promise that resolves when all drafts have been discarded.
|
|
48
|
+
*/
|
|
49
|
+
export declare function discardAllDrafts(appRootDirPath: string): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Commits all draft changes by removing .sbswap.edit and .sbswap.add markers.
|
|
52
|
+
* This leaves the current filesystem state as the committed state.
|
|
53
|
+
*
|
|
54
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
55
|
+
* @returns A promise that resolves when all drafts have been committed.
|
|
56
|
+
*/
|
|
57
|
+
export declare function commitAllDrafts(appRootDirPath: string): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Gets information about all draft files in the drafts directory.
|
|
60
|
+
*
|
|
61
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
62
|
+
* @returns A promise that resolves to information about draft files.
|
|
63
|
+
*/
|
|
64
|
+
export declare function getDraftInfo(appRootDirPath: string): Promise<{
|
|
65
|
+
edits: string[];
|
|
66
|
+
additions: string[];
|
|
67
|
+
}>;
|
|
68
|
+
//# sourceMappingURL=draft-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft-helpers.d.ts","sourceRoot":"","sources":["../../src/sync-service/draft-helpers.ts"],"names":[],"mappings":"AAqCA;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GAAG,MAAM,EAC7B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAgDzB;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GAAG,MAAM,EAC7B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CA+Cf;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW3E;AAqCD;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB5E;AAwED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3E;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;IAClE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC,CAiDD"}
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
import * as fsp from "node:fs/promises";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
const EDIT_EXT = ".sbswap.edit";
|
|
4
|
+
const ADD_EXT = ".sbswap.add";
|
|
5
|
+
/**
|
|
6
|
+
* Gets the marker file path for a given file path and app root directory.
|
|
7
|
+
* Marker files are stored in .superblocks/drafts/ with the same relative structure.
|
|
8
|
+
*
|
|
9
|
+
* @param filePath - The absolute path to the file.
|
|
10
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
11
|
+
* @param markerType - The type of marker file ('.sbswap.edit' or '.sbswap.add').
|
|
12
|
+
* @returns The absolute path to the marker file.
|
|
13
|
+
*/
|
|
14
|
+
function getMarkerFilePath(filePath, appRootDirPath, markerType) {
|
|
15
|
+
const relativePath = path.relative(appRootDirPath, filePath);
|
|
16
|
+
return path.join(getDraftsDirectoryPath(appRootDirPath), `${relativePath}${markerType}`);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Gets the drafts directory path for the app root.
|
|
20
|
+
*
|
|
21
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
22
|
+
* @returns The absolute path to the drafts directory.
|
|
23
|
+
*/
|
|
24
|
+
function getDraftsDirectoryPath(appRootDirPath) {
|
|
25
|
+
return path.join(appRootDirPath, ".superblocks", "drafts");
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Creates a draft edit or addition based on the presence of an existing file.
|
|
29
|
+
* This makes the draft content visible to the build system while preserving the original.
|
|
30
|
+
*
|
|
31
|
+
* @param filePath - The absolute path to the file to edit or add.
|
|
32
|
+
* @param draftContent - The content of the draft edit or addition.
|
|
33
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
34
|
+
* @returns A promise that resolves to "edit" if the file already exists, or "add" if the file does not exist.
|
|
35
|
+
*/
|
|
36
|
+
export async function createDraft(filePath, draftContent, appRootDirPath) {
|
|
37
|
+
const editMarkerPath = getMarkerFilePath(filePath, appRootDirPath, EDIT_EXT);
|
|
38
|
+
const addMarkerPath = getMarkerFilePath(filePath, appRootDirPath, ADD_EXT);
|
|
39
|
+
let state = "NEW";
|
|
40
|
+
try {
|
|
41
|
+
await fsp.access(filePath);
|
|
42
|
+
state = "FILE_EXISTS";
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
//
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
await fsp.access(editMarkerPath);
|
|
49
|
+
state = "EDIT_MARKER";
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
//
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
await fsp.access(addMarkerPath);
|
|
56
|
+
state = "ADD_MARKER";
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
//
|
|
60
|
+
}
|
|
61
|
+
switch (state) {
|
|
62
|
+
case "ADD_MARKER": {
|
|
63
|
+
// This is an iteration on an existing draft addition - just update content
|
|
64
|
+
await fsp.writeFile(filePath, draftContent);
|
|
65
|
+
return "add";
|
|
66
|
+
}
|
|
67
|
+
case "EDIT_MARKER": {
|
|
68
|
+
// This is an iteration on an existing draft edit - just update content
|
|
69
|
+
await fsp.writeFile(filePath, draftContent);
|
|
70
|
+
return "edit";
|
|
71
|
+
}
|
|
72
|
+
case "FILE_EXISTS": {
|
|
73
|
+
// This is a new draft edit
|
|
74
|
+
await createDraftEdit(filePath, draftContent, appRootDirPath);
|
|
75
|
+
return "edit";
|
|
76
|
+
}
|
|
77
|
+
case "NEW": {
|
|
78
|
+
// This is a new draft addition
|
|
79
|
+
await createDraftAdd(filePath, draftContent, appRootDirPath);
|
|
80
|
+
return "add";
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Creates a draft edit by copying the original file to the drafts directory and writing draft content to the original location.
|
|
86
|
+
* This makes the draft content visible to the build system while preserving the original.
|
|
87
|
+
* If a draft edit already exists, this will just update the draft content.
|
|
88
|
+
*
|
|
89
|
+
* @param filePath - The absolute path to the file to edit.
|
|
90
|
+
* @param draftContent - The content of the draft edit.
|
|
91
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
92
|
+
* @returns A promise that resolves when the draft edit is created.
|
|
93
|
+
*/
|
|
94
|
+
export async function createDraftEdit(filePath, draftContent, appRootDirPath) {
|
|
95
|
+
const editMarkerPath = getMarkerFilePath(filePath, appRootDirPath, EDIT_EXT);
|
|
96
|
+
// Check if original file exists
|
|
97
|
+
try {
|
|
98
|
+
await fsp.access(filePath);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
throw new Error(`Cannot create draft edit: original file does not exist: ${filePath}`);
|
|
102
|
+
}
|
|
103
|
+
// Check if draft already exists
|
|
104
|
+
try {
|
|
105
|
+
await fsp.access(editMarkerPath);
|
|
106
|
+
// If we get here, the marker file exists, which means draft already exists
|
|
107
|
+
// This is an iteration - just update the draft content
|
|
108
|
+
await fsp.writeFile(filePath, draftContent);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
// Marker file doesn't exist, proceed with normal draft creation
|
|
113
|
+
}
|
|
114
|
+
// Ensure the drafts directory structure exists
|
|
115
|
+
const editMarkerDir = path.dirname(editMarkerPath);
|
|
116
|
+
await fsp.mkdir(editMarkerDir, { recursive: true });
|
|
117
|
+
// Copy original file to .sbswap.edit marker in drafts directory
|
|
118
|
+
await fsp.copyFile(filePath, editMarkerPath);
|
|
119
|
+
// Write draft content to original location
|
|
120
|
+
await fsp.writeFile(filePath, draftContent);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Creates a draft addition by writing new file content and creating a .sbswap.add marker.
|
|
124
|
+
* This makes the new file visible to the build system while marking it as a draft addition.
|
|
125
|
+
* If a draft addition already exists, this will just update the content.
|
|
126
|
+
*
|
|
127
|
+
* @param filePath - The absolute path where the new file should be created.
|
|
128
|
+
* @param content - The content of the new file.
|
|
129
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
130
|
+
* @returns A promise that resolves when the draft addition is created.
|
|
131
|
+
*/
|
|
132
|
+
export async function createDraftAdd(filePath, content, appRootDirPath) {
|
|
133
|
+
const addMarkerPath = getMarkerFilePath(filePath, appRootDirPath, ".sbswap.add");
|
|
134
|
+
// Check if this is an iteration on an existing draft addition
|
|
135
|
+
try {
|
|
136
|
+
await fsp.access(addMarkerPath);
|
|
137
|
+
// Marker exists, this is an iteration - just update content
|
|
138
|
+
const dirPath = path.dirname(filePath);
|
|
139
|
+
await fsp.mkdir(dirPath, { recursive: true });
|
|
140
|
+
await fsp.writeFile(filePath, content);
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// Marker doesn't exist, proceed with normal draft addition creation
|
|
145
|
+
}
|
|
146
|
+
// Check if file already exists (and it's not a draft)
|
|
147
|
+
try {
|
|
148
|
+
await fsp.access(filePath);
|
|
149
|
+
// If we get here, the file exists, which is not allowed for new draft additions
|
|
150
|
+
throw new Error(`Cannot create draft add: file already exists: ${filePath}`);
|
|
151
|
+
}
|
|
152
|
+
catch (accessError) {
|
|
153
|
+
// If access fails, the file doesn't exist, which is what we want
|
|
154
|
+
if (accessError.message?.includes("Cannot create draft add")) {
|
|
155
|
+
throw accessError; // Re-throw our own error
|
|
156
|
+
}
|
|
157
|
+
// Otherwise, continue - the file doesn't exist, which is expected
|
|
158
|
+
}
|
|
159
|
+
// Ensure directory exists for the new file
|
|
160
|
+
const dirPath = path.dirname(filePath);
|
|
161
|
+
await fsp.mkdir(dirPath, { recursive: true });
|
|
162
|
+
// Ensure the drafts directory structure exists
|
|
163
|
+
const addMarkerDir = path.dirname(addMarkerPath);
|
|
164
|
+
await fsp.mkdir(addMarkerDir, { recursive: true });
|
|
165
|
+
// Write new file content
|
|
166
|
+
await fsp.writeFile(filePath, content);
|
|
167
|
+
// Create marker to indicate this is a draft addition
|
|
168
|
+
await fsp.writeFile(addMarkerPath, "");
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Recursively checks if any draft files exist in the drafts directory.
|
|
172
|
+
* Looks for .sbswap.edit and .sbswap.add marker files.
|
|
173
|
+
*
|
|
174
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
175
|
+
* @returns A promise that resolves to true if any draft files are found, false otherwise.
|
|
176
|
+
*/
|
|
177
|
+
export async function hasSwapFiles(appRootDirPath) {
|
|
178
|
+
const draftsDir = getDraftsDirectoryPath(appRootDirPath);
|
|
179
|
+
try {
|
|
180
|
+
await fsp.access(draftsDir);
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
// Drafts directory doesn't exist, so no draft files
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
return await hasSwapFilesInDirectory(draftsDir);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Helper function to recursively check for swap files in a directory.
|
|
190
|
+
*
|
|
191
|
+
* @param directoryPath - The path to the directory to scan for draft files.
|
|
192
|
+
* @returns A promise that resolves to true if any draft files are found, false otherwise.
|
|
193
|
+
*/
|
|
194
|
+
async function hasSwapFilesInDirectory(directoryPath) {
|
|
195
|
+
try {
|
|
196
|
+
const entries = await fsp.readdir(directoryPath, { withFileTypes: true });
|
|
197
|
+
for (const entry of entries) {
|
|
198
|
+
if (entry.isFile() &&
|
|
199
|
+
(entry.name.endsWith(EDIT_EXT) || entry.name.endsWith(ADD_EXT))) {
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
if (entry.isDirectory()) {
|
|
203
|
+
const subdirPath = path.join(directoryPath, entry.name);
|
|
204
|
+
if (await hasSwapFilesInDirectory(subdirPath)) {
|
|
205
|
+
return true;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
catch (_error) {
|
|
212
|
+
// If directory doesn't exist or can't be read, no draft files
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Discards all draft changes by restoring original files and removing draft additions.
|
|
218
|
+
* - For .sbswap.edit files: copies them back to the original location
|
|
219
|
+
* - For .sbswap.add markers: removes both the marker and the corresponding file
|
|
220
|
+
*
|
|
221
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
222
|
+
* @returns A promise that resolves when all drafts have been discarded.
|
|
223
|
+
*/
|
|
224
|
+
export async function discardAllDrafts(appRootDirPath) {
|
|
225
|
+
const draftsDir = getDraftsDirectoryPath(appRootDirPath);
|
|
226
|
+
try {
|
|
227
|
+
await fsp.access(draftsDir);
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
// Drafts directory doesn't exist, nothing to discard
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
await discardDraftsInDirectory(draftsDir, appRootDirPath);
|
|
234
|
+
// Clean up the entire drafts directory
|
|
235
|
+
try {
|
|
236
|
+
await fsp.rm(draftsDir, { recursive: true });
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
239
|
+
// Ignore cleanup errors
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Helper function to recursively discard drafts in a directory.
|
|
244
|
+
*
|
|
245
|
+
* @param directoryPath - The path to the directory to discard drafts from.
|
|
246
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
247
|
+
* @returns A promise that resolves when all drafts have been discarded.
|
|
248
|
+
*/
|
|
249
|
+
async function discardDraftsInDirectory(directoryPath, appRootDirPath) {
|
|
250
|
+
try {
|
|
251
|
+
const entries = await fsp.readdir(directoryPath, { withFileTypes: true });
|
|
252
|
+
for (const entry of entries) {
|
|
253
|
+
const fullPath = path.join(directoryPath, entry.name);
|
|
254
|
+
if (entry.isFile()) {
|
|
255
|
+
if (entry.name.endsWith(EDIT_EXT)) {
|
|
256
|
+
// Restore original file
|
|
257
|
+
const markerRelativePath = path.relative(getDraftsDirectoryPath(appRootDirPath), fullPath);
|
|
258
|
+
const originalRelativePath = markerRelativePath.slice(0, -EDIT_EXT.length);
|
|
259
|
+
const originalPath = path.join(appRootDirPath, originalRelativePath);
|
|
260
|
+
try {
|
|
261
|
+
// Remove current draft content
|
|
262
|
+
await fsp.unlink(originalPath);
|
|
263
|
+
}
|
|
264
|
+
catch {
|
|
265
|
+
// File might not exist, that's okay
|
|
266
|
+
}
|
|
267
|
+
// Copy original back from drafts directory
|
|
268
|
+
await fsp.copyFile(fullPath, originalPath);
|
|
269
|
+
}
|
|
270
|
+
else if (entry.name.endsWith(ADD_EXT)) {
|
|
271
|
+
// Remove draft addition
|
|
272
|
+
const markerRelativePath = path.relative(getDraftsDirectoryPath(appRootDirPath), fullPath);
|
|
273
|
+
const addedFileRelativePath = markerRelativePath.slice(0, -ADD_EXT.length);
|
|
274
|
+
const addedFilePath = path.join(appRootDirPath, addedFileRelativePath);
|
|
275
|
+
try {
|
|
276
|
+
await fsp.unlink(addedFilePath);
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
// File might not exist, that's okay
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (entry.isDirectory()) {
|
|
284
|
+
await discardDraftsInDirectory(fullPath, appRootDirPath);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
catch (_error) {
|
|
289
|
+
// Ignore errors reading the directory
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Commits all draft changes by removing .sbswap.edit and .sbswap.add markers.
|
|
294
|
+
* This leaves the current filesystem state as the committed state.
|
|
295
|
+
*
|
|
296
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
297
|
+
* @returns A promise that resolves when all drafts have been committed.
|
|
298
|
+
*/
|
|
299
|
+
export async function commitAllDrafts(appRootDirPath) {
|
|
300
|
+
const draftsDir = getDraftsDirectoryPath(appRootDirPath);
|
|
301
|
+
try {
|
|
302
|
+
await fsp.access(draftsDir);
|
|
303
|
+
}
|
|
304
|
+
catch {
|
|
305
|
+
// Drafts directory doesn't exist, nothing to commit
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
// Simply remove the entire drafts directory
|
|
309
|
+
try {
|
|
310
|
+
await fsp.rm(draftsDir, { recursive: true });
|
|
311
|
+
}
|
|
312
|
+
catch {
|
|
313
|
+
// Ignore deletion errors
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Gets information about all draft files in the drafts directory.
|
|
318
|
+
*
|
|
319
|
+
* @param appRootDirPath - The absolute path to the app root directory.
|
|
320
|
+
* @returns A promise that resolves to information about draft files.
|
|
321
|
+
*/
|
|
322
|
+
export async function getDraftInfo(appRootDirPath) {
|
|
323
|
+
const edits = [];
|
|
324
|
+
const additions = [];
|
|
325
|
+
const draftsDir = getDraftsDirectoryPath(appRootDirPath);
|
|
326
|
+
try {
|
|
327
|
+
await fsp.access(draftsDir);
|
|
328
|
+
}
|
|
329
|
+
catch {
|
|
330
|
+
// Drafts directory doesn't exist, no drafts
|
|
331
|
+
return { edits, additions };
|
|
332
|
+
}
|
|
333
|
+
async function scanDirectory(currentPath) {
|
|
334
|
+
try {
|
|
335
|
+
const entries = await fsp.readdir(currentPath, { withFileTypes: true });
|
|
336
|
+
for (const entry of entries) {
|
|
337
|
+
const fullPath = path.join(currentPath, entry.name);
|
|
338
|
+
if (entry.isFile()) {
|
|
339
|
+
if (entry.name.endsWith(EDIT_EXT)) {
|
|
340
|
+
const markerRelativePath = path.relative(draftsDir, fullPath);
|
|
341
|
+
const originalRelativePath = markerRelativePath.slice(0, -EDIT_EXT.length);
|
|
342
|
+
edits.push(originalRelativePath);
|
|
343
|
+
}
|
|
344
|
+
else if (entry.name.endsWith(ADD_EXT)) {
|
|
345
|
+
const markerRelativePath = path.relative(draftsDir, fullPath);
|
|
346
|
+
const addedFileRelativePath = markerRelativePath.slice(0, -ADD_EXT.length);
|
|
347
|
+
additions.push(addedFileRelativePath);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
if (entry.isDirectory()) {
|
|
351
|
+
await scanDirectory(fullPath);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
catch {
|
|
356
|
+
// Ignore errors reading directories
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
await scanDirectory(draftsDir);
|
|
360
|
+
return { edits, additions };
|
|
361
|
+
}
|
|
362
|
+
//# sourceMappingURL=draft-helpers.js.map
|